数据库 MySQL(三)
01. 表结构修改(alter
)
alter table 表名 rename to 新表名;
:修改表名mysql> alter table new_test rename to n_test; #将表new_test重命名为n_test
alter table 表名 change 原字段名 新字段名 新字段值类型;
:修改字段名及其类型mysql> alter table n_test change age new_age varchar(20); #将原字段age重命名为new_age,并将其类型改为varchar(20)
alter table 表名 modify 字段名 字段值类型;
:修改字段类型
字符类型的数值,可以转成数值类型(如’12’可以转成12)
数值类型可以转成字符类型(如12可以转成’12’)
字符类型的非数值,不可以转成数值类型(如’sas12’转不成数值)mysql> alter table n_test modify new_age int; #将new_age的类型修改为int
alter table 表名 add 字段名 字段值类型;
:添加字段mysql> alter table n_test add sex enum('b','g'); #新添加字段sex
alter table 表名 drop 字段名;
:删除字段mysql> alter table n_test drop sex; #删除字段sex
02. 约束条件
约束是一种限制,通过对表中的数据做出限制,来确保表中数据的完整性,唯一性
约束类型: | 默认 | 非空 | 唯一 | 自增长 | 主键 | 外键 | 注释 |
---|---|---|---|---|---|---|---|
关键字: | default | not null | unique key | auto_increment | primary key | foreign key | comment |
02_1. 默认约束(default
)
插入数据的时候,如果没有明确为字段赋值,则自动赋予默认值
(在没有设置默认值的情况下,默认值为NULL)
字段 类型 default 默认值
mysql> create table tb(
-> id int default 0, #id的默认值为0
-> name varchar(20)
-> );
mysql> insert into tb(id) values(1);
mysql> insert into tb(name) values('aa');
02_2. 非空约束(not null
)
限制一个字段的值不能为空,insert的时候就必须对该字段赋值
(空字符’'不等于NULL)
当没有给非空字段保存数据时,会报错
字段 类型 not null
mysql> create table tb(
-> id int not null,
-> name varchar(20)
-> );
02_3. 唯一约束(unique key
)
限制一个字段的值重复,该字段的数据不能重复出现的
(确保字段中值的唯一)
字段 类型 unique key
mysql> create table tb3(
-> id int unique key, #id中的数据不能重复
-> name varchar(20)
-> );
mysql> insert into tb3 values(1,'aa'),(1,'bb');
#会报错,因为id中的数据不能重复
02_4. 主键约束(primary key
)
通常每张表都需要一个主键来体现唯一性,每张表里面只能有一个主键
(主键 = 非空 + 唯一)
字段 类型 primart key
mysql> create table tb4(
-> id int primary key,
-> name varchar(20)
-> );
mysql> insert into tb4 values
-> (1,'aa'),
-> (2,'bb');
mysq