显示表结构
Show create table 表名
Show columns from 表名
修改数据表
添加单列:
Alter table tbl_names ADD [column] col_name column_definition [first|after col_name]
添加多列:
Alter table tbl_name ADD 【column】 (col_name coumn_definition,...)
注:不可以选择位置。只添加在最后
删除列:
Alter table tbl_name drop [column] col_name
删除多列:
Alter table tbl_name drop [column] col_name,drop [column] col_name,....
删除的同时添加
Alter table tbl_name drop [column] col_name,add [column] col_name column_definition [first|after col_name]
添加主键约束:
Alter table tbl_name add [constraint [symbol]] primary key [index_type] (index_col_names,....)
添加唯一约束
Alter table tbl_name add [constraint [symbol]] unique [index|key] [index_name][index_type] (index_col_name,....)
添加删除默认约束
Alter table tbl_name alter 【column】 col_name {set default literal | drop default}
数据表的修改操作:无非就是添加列,删除列,添加约束,删除约束。用的是ALTER,而INSERT是对数据表添加插入记录用的。
1.添加主键约束
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY [index_type] (index_col_name,...)
e.g:ALTER TABLE users ADD CONSTRAINT PK_users_id PRIMARY KEY (id);
2.添加唯一约束
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] UNIQUE [INDEX|KEY] [index_name] [index_type] (index_col_name,...)
e.g:ALTER TABLE users ADD UNIQUE (username);
3.添加外键约束
添加外键约束
要求同之前相同
(1)相同的存储引擎
(2)数字的数据类型相同,本节中均为SMALLINT ,符号为UNSIGNED
因为参照列中存在PRIMARY KEY,有索引,所以外键列会自动创建索引格式
ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] FOREIGN KEY index_name reference_definition
e.g:ALTER TABLE users ADD FOREIGN KEY (pid) REFERENCES provinces (id)
4.添加/删除默认约束 DEFAULT
ALTER TABLE tbl_name ALTER [COLUMN] col_name {SET DEFAULT literal | DROP DEFAULT}
e.g:
ALTER TABLE users ADD age TINYINT UNSIGNED NOT NULL;
ALTER TABLE users ALTER age SET DEFAULT 15;
ALTER TABLE users ALTER age DROP DEFAULT;
查看key和索引: show indexes from 表名 [\G] // 可以查看key_name (和字段名相同)
查看外键: show create table 表名
删除主键约束 ALTER TABLE tbl_name DROP PRIMARY KEY; // 唯一所以不用key_name
删除唯一约束 ALTER TABLE tbl_name DROP {INDEX|KEY} key_name; // 唯一约束有多个, 需要具体的名字
删除外键约束 ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol // fk_symbol是外键约束的名字.系统会自动给外键列创建名称,通过SHOW CREATE TABLE 表名 来查看其中CONSTRAINT后加注的字段名称
修改列定义:modify,change:
- ALTER TABLE 表名 MODIFY 列名 数据类型 其他属性
举例:ALTER TABLE users2 MODIFY id SMALLINT UNSIDNED FIRST; - ALTER TABLE 表名 CHANGE 列名 新列名 数据类型 其他属性
举例:ALTER TABLE users2 CAHNGE pid p_id SMALLINT UNSINGED NOT NULL;
表重命名的两种方法:rename和rename to - ALTER TABLE 表名 RENAME [TO|AS] 新表名
举例:ALTER TABLE users2 RENAME users3; - RENAME TABLE 表名 TO 新表名;
举例:RENAME TABLE users3 TO users2;
本节知识点
约束:
按功能划分:not null ,primary key, unique key,default,foreign key
按数据列的数目化为:表级约束,列级约束
修改数据表:
针对字段的操作:添加\删除字段、修改列定义、修改列名称等
针对约束的操作:添加\删除各种约束
针对数据表的操作:数据表更名(两种方式)