一、表操作
1、删除表
drop table 表名;
2、对表进行重命名
alter table 原表名 rename to 新表名;
3、添加字段
alter table 表名 add 列名 类型;
4、删除字段
alter table 表名 drop 列名;
5、修改字段的类型
alter table 表名 change 原名 新名 类型及约束;
6、修改字段的类型
alter table 表名 modify 列名 类型及约束;
二、MySQL数据类型
1、使用原则:够用就行,尽量使用取值范围小的,节省存储空间
2、数据类型:
- 整数:int,bit
- 小数:decimal
- 字符串:varchar,char
类型 | 字符串的多种类型说明 | 使用场景 |
---|---|---|
CHAR | 固定长度(最大255字符),存入的数据不够由空格代替,查询速度较快,但占用空间较大 | 身份证号、手机号、电话、密码 |
VARCHAR | 可变长度(最大65535字符),占用空间较小,但查询速度较慢 | 姓名、地址、品牌、型号 |
TEXT | 可变长度,字符个数大于4000 | 存储小型文章或新闻 |
LONGTEXT | 可变长度,极大型文本数据 | 存储极大型文本数据时间类型 |
- 日期时间:data,time,datatime
类型 | 字节大小 | 示例 |
---|---|---|
DATA | 4 | '2021-01-01' |
TIME | 3 | '12:29:59' |
DATATIME | 8 | '2021-01-01 12:29:59' |
YEAR | 1 | '2021' |
TIMESTAMP | 4 | '1970-01-01 00:00:01'UTC~'2038-01-01 00:00:01'UTC |
-
枚举类型(enum)
一旦使用枚举类型,那么插入数据时只能选择枚举的内容,选择一个
- 集合类型 (set)
可以多选
create table beautiful_girl(
-> id int primary key auto_increment,
-> name varchar(32),
-> age int,
-> boy_friend set('姓名1','姓名2','姓名3','姓名4'),
-> husband enum('姓名5','姓名6','姓名7')
-> );
三、字段类型约束
1、主键约束
primary key
用来保证数据完整性
唯一、非空
2、非空
not null
3、默认值
default
默认约束指定某列的默认值。
语法: 字段 类型 default 默认值
4、唯一约束
unique
唯一性约束要求该列唯一,允许为空,但是只能出现一个空值。唯一约束可以保证一列或者
几列不出现重复值
。
5、无符号整型
unsigned
6、自增
auto_increment
设置自增起始数
表尾 insert into 表名 values(数据)auto_increment=起始值;
修改 alter table 表名 auto_increment=起始值;
7、外键
foreign key
作用:
保持数据的有效性和一致性
注意:
外键的类型必须和主表的主键类型一致
添加数据时,先添加主表的数据
添加方式:
alter table 子表名 add foreign key(子表列名)
references 主表(主键)
创表的时候添加,最后加:
foreign key(列名)
references 主表(主键)
删除外键约束
--
需要先获取外键约束名称,
该名称系统会自动生成,可以通过查看表创建语句来获取名称
show create table teacher;
-- 获取名称之后就可以根据名称来删除外键约束
alter table 表名 drop foreign key 外键名;