1、数据完整性
1.1、数据类型
数据类型详细参考:https://blog.csdn.net/anxpp/article/details/51284106
1.2、约束
- primary key 主键,代表该字段唯一非空。
- auto_increment 自动增长
- unsigned:代表无符号,不能存储负数
- not null 不可为空
- unique唯一:该字段的值不可重复
- default 默认,不填写时会使用默认值
== - foreign key 外键——后面补充==
1.3小结
数值类型
字符串
日期时间类型
2、表结构
2.1、创建表结构
create table 数据表名(字段 类型 约束)
create table students(
id int unsigned primary key auto_increment not null,
name varchar (10) not null,
age tinyint unsigned default 0,
gender enum("男","女","中性","保密") default "保密",
cls_id int unsigned not null
);
2.2、查看表结构
desc students;
2.3、修改表结构
1)插入
#add
alter table students add brithday datetime default "2011-11-11 11:11:11";
2)修改(不修改字段名字)
#modify
alter table students modify brithday date default "2011-11-11";
3)修改(修改字段名字)
#change,后面先跟原字段,再跟修改后的字段
alter table students change brithday brith date default "2011-11-11";
4)modify和change的区别,如何修改多个字段
逗号隔开
alter table students change age age_age tinyint unsigned default 1,modify cls_id tinyint unsigned not null;
3、 表数据–增删改查
3.1、插入数据
1)全列插入
–insert [into] 表名 values (值1,值2,…)
– 全列插入 值和表的字段的顺序一一对应
insert into students values (0,"haha",18,1,1);
#此处id填为0/default/null相当于占位,id会自动增长方式写入
2)指定列插入
– 值和列一一对应
– insert into 表名 (列1,…) values(值1,…)
insert into students (name,cls_id) value ("nienie",2);
3)多行插入 批量插入
– insert into 表名 (列1,…) values (值1,…),(值1,…),…
insert into students (name,cls_id) value ("闪电",3),("朱迪",4),("考拉",5);
3.2、修改数据
update
– where 表示修改的范围
– update 表名 set 列1=值1,列2=值2… where 条件
update students set name = "树懒" where id = 4;
–全表更新,不会用,无范围,对所有数据生效
update students set name = "树懒"
3.3、删除数据
delete from students where id = 4;
删除注意:若主键自动增加,删除该id数据后(或删除的为最后一条数据)。后面插入数据时,所删除的ID不会再被使用,因为要保持主键的唯一性)
还有一种删除当时,叫做逻辑删除。即假删除
isdelete为标记位