mysql基础---基本类型和约束
一.基本类型(常用)
1.数值: int float double
2.日期和时间: date (格式:YYYY-MM-DD) time (格式:HH:MM:SS)
3.字符串: char(n) 定长 varchar(n) 不定长
二.约束
1.主键约束 primary key 唯一且非空
如何添加主键:1.建表时直接添加
2.alter table 表名 add primary key(列名);
3.alter table 表名 modify 列名 primary key;
如何删除主键: alter table 表名 drop primary key;
2.自增约束 auto_increment 默认为1,从1开始递增,通常和主键一起使用,如下:
create table user(
id int primary key auto_increment,
name varchar(20)
);
插入: insert into user (name) values ('zhangsan'); ------这里id会自动设置为1,再次插入时会变为2
3.唯一约束 unique 约束修饰的字段值不可重复
如何添加唯一约束:1.建表时直接添加
2.alter table 表名 add unique(列名);
3.alter table 表名 modify 列名 unique;
如何删除唯一约束:alter table 表名 drop index 列名;
4.非空约束 not null 修饰的字段不能为空
5.默认约束 default 插入数据时,没有给该字段插入,这时该字段会使用默认值,如下:
create table user(
id int ,
name varchar(20),
age int default 10
);
插入数据:insert into user (id,name) values (1,'luohan');
显示的结果中age的值为10;
若插入时给age赋了值,则显示的插入的这个值
6.外键约束 foreign key(子表列名) references 父表名(父表列名) ,如下:
//创建班级表(父表)
create table classes(
id int primary key,
name varchar(20)
);
//查看表结构

//创建学生表(子表)
create table student(
id int primary key,
name varchar(20),
class_id int,
foreign key(class_id) references classes(id)
);
//查看表结构

//往班级表里插入值
insert into classes values (1,'一班');
insert into classes values (2,'二班');
insert into classes values (3,'三班');
insert into classes values (4,'四班');
//结果如下

//往学生表里插入数据
insert into student values (1001,'李白',1);
insert into student values (1002,'李白',2);
insert into student values (1003,'李白',3);
insert into student values (1004,'李白',4);
//查看结果

//此时若向学生表里插入一条班级ID为5的信息,则会报错
insert into student values (1001,'杜甫',5);

原因是学生表依附于班级表,而班级表里并没有id为5的信息,所以系统会报错
结论:1.父表中没有的数据,在子表中是不可以使用的
2.父表中的记录被子表引用时,是不可以被删除的

浙公网安备 33010602011771号