表:增,删,改,查,复制
字段:增,删,改,查
字段类型
字段约束:用于限制字段的数据的,从而保证数据一致,准确,可靠
???级连删除/ 级连滞空 (p148,37:30暂时没看)
表
增
//中间用空格隔开
create table 表名(
字段名 字段类型 字段约束,
字段名 字段类型 字段约束,
字段名 字段类型 字段约束
);
//中间用空格隔开,如果没有这个表名建设这个表名,防止代码报错
create table if not exists 表名(
字段名 字段类型 字段约束,
字段名 字段类型 字段约束,
字段名 字段类型 字段约束
);
删
drop table if exists 表名
改
//修改表名
alter table 旧表名
rename to
新表名
查
//查看表中有的字段
desc 表名
复制
//复制并新建表中字段
creat table 新表名 like 旧表名
//复制并新建表中字段+原来数据
creat table 新表名 select * from 旧表
字段
增
//添加字段
alter table 表名
add
column 字段名 字段类型 字段约束
删
//删除字段
alter table 表名
drop
column 字段名
改
//修改字段名,字段类型不能省
alter table 表名
change
column 旧字段名 新字段名 字段类型 字段约束
//修改字段类型
alter table 表名
modify
column 字段名 字段类型 字段约束
查
//查看字段,及类型限制
DESC 表名
SHOW COLUMNS FROM 表名
字段类型(数字类型,字符型,日期型,二进制型)
(一)数字类型
//数字类型
1.整型
(1)int
2.小数型
(1)人民币:decimal(5,2) //举例:最大是999.99,括号可以省略
(2)双精度:double(5,2) //举例:最大是999.99,括号可以省略
(3)单精度:float
(二)字符型
字符型 | 代码 | 备注 |
---|---|---|
长文本 | text | |
固定长度 | char(10) | 如果就两个字符的话,也会补齐8个空格,一般用于长度一致的内容时 |
可变长度 | varchar(10) |
(三)日期型
日期型格式 | 代码 | 备注 |
---|---|---|
yyyy-mm-dd | data | 没有小时,分钟,秒 |
hh:mm:ss | time | 只有小时,分钟,秒 |
yyyy-mm-dd hh:mm:ss | datatime | 时间跨度长,字节长,1900- 无穷 |
yyyy-mm-dd hh:mm:ss | timestamp | 时间跨度短,字节短,1970-2038 |
(四)二进制型:存储图片
//二进制类型:存储图片数据
blob
二进制类型:存储图片数据
tinyblob
字段约束:用于限制字段的数据的,从而保证数据一致,准确,可靠
单个字段的限制
1.not null
//必填
2.default "内容"
//输入值为null时,保存到数据库默认值"内容"
3.primary key
//主键
//字段的值为唯一
//字段默认不能为空
//一张表一个主键,可以为主键组合(可以设置多个字段加一起为主键,例如两个字段的值一样确定唯一性)
4.unique
//设置字段不能重复
//一张表多个唯一字段,内容可以为null
//(在sqlyog图形化软件中[索引]处设置)
5.check(条件)
//条件和 where中的条件一致,
//sqlyog图形化工具不能直接写,只能代码写
//mysql 不能用, 其他的能用
6.auto_increment
//自增长列,让其中一个值一直增长,配合dml新增数据使用,数据值写【null】
//字段类型为:数值型
//一个表内最多一个自增长列,一般为主键/唯一键
单个字段的限制与另一表中字段相关:外键
(1)代码操作
constraint 外键名
foreign key (表1字段名)
references 表2名(表2需要对应的主键字段名)
(2)数据库图形操作
[外部键]->[约束名:自定义]->[引用列:表1的xx]->[引用表:表2]->[引用列:表2的yy]
//表1的yy字段内容必须是表2xx字段内容
//表1字段,和表2字段的类型需要一致,代表的意义一致,字段名可以不一致
//
举例:
create table if not exists 表名(
字段名 字段类型 not null primary key ,
字段名 字段类型 字段约束,
字段名 字段类型 字段约束
//设置外键
constraint 外键名
foreign key (表1字段名)
references 表2名(表2需要对应的主键字段名)
);
//约束之间用空格隔开就行,可以加多个 ,
//前五种写在行内,最后的外键,写在最后