(1).查看数据库表:show tables
(2).创建表:
create table if not exists 表名(
属性名称 属性类型[完整性约束条件],
属性名称 属性类型[完整性约束条件],
属性名称 属性类型[完整性约束条件]
)engine=引擎类型,charset=字符编码集,comment=表备注;
(3)完整性约束条件表:
primary key 主键约束
foreign key 外键约束
unique 唯一约束
not null 不能为空
auto_increment 自增
default 默认值
(4)设置表主键:
create table 表名(
属性名称 属性类型 primary key,
属性名称 属性类型[完整性约束条件],
属性名称 属性类型[完整性约束条件]
)engine=引擎类型,charset=字符编码集;
多字段主键:
create table 表名(
属性名称 属性类型[完整性约束条件],
属性名称 属性类型[完整性约束条件],
primary key(属性1,属性2,...)
)engine=引擎类型,charset=字符编码集;
添加主键:
alter table 表名 add primary key(列名)
修改主键:
alter table 表名 change 列名 属性名称 属性类型[完整性约束条件]
删除主键:
alter table 表名 drop primary key
修改自增变量值:
alter table 表名 auto_increment = 从数字几开始.
(5)设置外键:
外键是表的一个特殊字段。如果字段id是一个表A的属性,且依赖于表B的主键.
那么,称表B为父表,表A为子表,id为表A的外键。通过id字段将父表B和子表A建立关联关系.
设置表的外键指在创建表设置某个字段为外键.
外键的好处:可以使得两张表关联,保证数据的一致性和实现一些级联操作.
级联操作:
on delete (在删除的时候) restrict(限制外表中的外键改动) cascade(跟随外键改动) set null(设置为空) set default(设置默认值) no action(无动作,默认的)
on update (在删除的时候) restrict(限制外表中的外键改动) cascade(跟随外键改动) set null(设置为空) set default(设置默认值) no action(无动作,默认的)
创建表时设置外键:
create table 表名(
属性名称 属性类型[完整性约束条件],
属性名称 属性类型[完整性约束条件],
constraint 外键名称 foreign key(主键表列属性(也就是本表列属性)) references 外键表名称(外键表列属性) on (update 级联操作 或 delete 级联操作)
)engine=引擎类型,charset=字符编码集;
单独设置外键:
alter table employee add constraint 外键名称 foreign key(外键表列属性(也就是本表列属性)) references department(主键表列属性) on (update 级联操作 或 delete 级联操作)
修改外键:
外键不支持修改
删除外键:
alter table 表名 drop foreign key 外键名称
(6).设置唯一约束:
创建唯一约束:
建表时创建:
create table 表名(
属性名称 属性类型[完整性约束条件],
constraint 唯一约束名称 unique key(列名)
)engine=引擎类型,charset=字符编码集;
建表后创建:
alter table 表名 add constraint 唯一约束名称 unique key(列名)
删除唯一约束:
alter table 表名 drop index 约束
修改唯一约束:
唯一约束不支持修改
(7).设置默认值:
建表时创建:
create table 表名(
属性名称 属性类型[完整性约束条件] default 默认值
)engine=引擎类型,charset=字符编码集;
建表后创建:
alter table 表名 alter column 列名 set default 默认值
删除默认值:
alter table 表名 alter column 列名 drop default
修改默认值:
同创建方式
(8).设置不为空值:
建表时创建:
create table 表名(
属性名称 属性类型[完整性约束条件] not null
)engine=引擎类型,charset=字符编码集;
建表后创建:
alter table 表名 change 列名 列名(属性名称) 属性类型[完整性约束条件]
修改不能为空值:
alter table 表名 modify 列名 属性类型[完整性约束条件] not null
删除空值:
(在实际意义上算是修改字段属性了) alter table 表名 change 列名 列名(属性名称) 属性类型[完整性约束条件]
(9).自增变量:
auto_increment 默认是从1开始递增
建表时创建:
create table 表名(
属性名称 属性类型[完整性约束条件] auto_increment
)engine=引擎类型,charset=字符编码集,(如果要改变自增变量起始值)auto_increment = 起始值;
建表后创建:
alter table 表名 modify 列名 int auto_increment (注意:自增的前提 此列必须为主键 或者 唯一约束)
alter table 表名 auto_increment = 起始值
删除自增:
alter table 表名 modify 列名 属性类型[完整性约束条件]
修改自增:
同建表后创建
(10).删除表:
drop if exists 表名
(11).清空表数据:
truncate 表名
(12).改变列名称:
alter table 表名 change 列名 列名(属性名称) 属性类型[完整性约束条件]
(13).改变列类型属性约束:
alter table 表名 modify 列名(属性名称) 属性类型[完整性约束条件]
(14).增加一列:
alter table 表名 add column 列名(属性名称) 属性类型[完整性约束条件]
(15).删除一列:
alter table 表名 drop column 列名
(16).表引擎:
创建时指定表引擎:
create table 表名(
属性名称 属性类型[完整性约束条件]
)engine=引擎类型;
修改表引擎:
alter table 表名 engine = 引擎名称
删除表引擎:
不存在
引擎类型:(存储机制,也称为表类型)
InnoDB
MyIsam
BDB
archive
Mermory
...
默认是innodb
(17).查看表状态:
show table status from 数据库名称 where name = '表名'
show table status
(18).查看一个表几行几列:
mysqlshow -u root -p 数据库名称 -v -v
(19).查看表列信息:
show columns from 表名 或者 show columns from 数据库.表名
(20).表备注:
创建表时:
create table if not exists 表名(
属性名称 属性类型[完整性约束条件],
属性名称 属性类型[完整性约束条件],
属性名称 属性类型[完整性约束条件]
)engine=引擎类型,charset=字符编码集,comment=表备注;
创建表后:
alter table 表名 comment = 备注信息
修改表备注:
同创建表后
删除表备注:
暂时未发现
(21).创建相似表:
create if not exists table 表名 like 存在表名 (注意:只是复制了表结构,数据不会复制)