DDL 语句详解
创建表
1.直接创建:
CREATE TABLE [IF NOT EXISTS] 'tbl_name' (col1 type1 修饰符, col2 type2 修饰符, ...)
#字段信息
col type1
PRIMARY KEY(col1,...)
INDEX(col1, ...)
UNIQUE KEY(col1, ...)
#表选项:
ENGINE [=] engine_name
ROW_FORMAT [=] {DEFAULT|DYNAMIC|FIXED|COMPRESSED|REDUNDANT|COMPACT}
#同一个数据库中的表建议使用同一种存储引擎类型。
范例,创建student信息表:
CREATE TABLE student (
id int UNSIGNED AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
age tinyint UNSIGNED,
gender ENUM('M','F') default 'M'
)ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
范例,创建时间类型表:
CREATE TABLE testdate (
id int AUTO_INCREMENT PRIMARY KEY,
date timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL);
2.通过查询现存表创建
CREATE TABLE user SELECT user,host FROM mysql.user;
3.通过复制现存的表的表结构创建,但不复制数据
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name { LIKE old_tbl_name | (LIKE
old_tbl_name) }
查看表
查看表:
SHOW TABLES [FROM db_name]
查看表创建命令:
SHOW CREATE TABLE tbl_name
查看表结构:
DESC [db_name.]tb_name
SHOW COLUMNS FROM [db_name.]tb_name
查看表状态:
SHOW TABLE STATUS LIKE 'tbl_name'\G
SHOW TABLE STATUS FROM db_name
查看支持的engine类型:
SHOW ENGINES
修改表
ALTER TABLE 'tbl_name'
#字段:
#添加字段:add
ADD col1 data_type [FIRST|AFTER col_name]
#删除字段:drop
#修改字段:
alter(默认值), change(字段名), modify(字段属性)
修改表名:
ALTER TABLE students RENAME stu;
在某个字段后添加字段:
ALTER TABLE stu ADD phone varchar(11) AFTER name;
修改字段的数据类型:
ALTER TABLE stu MODIFY phone int;
修改字段名称和类型:
ALTER TABLE stu CHANGE COLUMN phone mobile char(11);
删除字段:
ALTER TABLE stu DROP COLUMN mobile;
修改字符集:
ALTER TABLE stu CHARACTER SET utf8mb4;
修改字段名和类型:
ALTER TABLE stu CHANGE stuid id int UNSIGNED NOT NULL;
添加主键(一个表只能有一个主键):
ALTER TABLE stu add primary key (id);
删除主键:
ALTER TABLE stu DROP primary key;
删除表
DROP TABLE [IF EXISTS] 'tbl_name';