热线电话:13121318867

登录
2022-10-20 阅读量: 385
mysql学习2-字段约束,主键约束,自增约束,非空约束,唯一约束,外键约束,默认约束
-- 5 创建数据表
create table dept( #创建dept部门表
deptno int primary key, #部门编号
dname varchar(10), #部门名称
loc varchar(15) #城市
);

create table emp( #创建emp员工表
empno int primary key auto_increment, #员工编号
ename varchar(10) unique key, #员工姓名
job varchar(15) not null, #职位
mgr int, #直属领导
hiredate date, #入职日期
sal decimal default 0, #工资
comm decimal, #提成
deptno int, #部门编号
foreign key(deptno) references dept(deptno)
);

-- 6 查看当前数据库中有哪些表
show tables;

-- 7 查看表结构
describe dept;
desc emp;

-- 8 删除数据表(慎用!)
# drop table dept; 删除表的全部
# truncate table emp; # 清空表的数据,但保留表结构。

-- 9 插入数据:
# 字段名与字段值的数据类型、个数、顺序必须一一对应
insert into dept(dname,deptno,loc) values ('accounting',10,'new york'),('research',20,'dallas');
# 与建表时的表结构字段顺序一一对应
insert into dept values (30,'sales','chicago'),(40,'operations','boston');

-- 10 查看表中的所有数据
select * from dept;
select * from emp;

-- 11 字段约束
#传入数据时受到字段约束
insert into emp values(1001,'a','operator',7369,'2021-02-01',8000,600,40); #符合约束条件可以传入
insert into emp(ename,job,sal,deptno) values('b','programmer',7000,40);#主键的自增约束分配了empno,如果无自增约束则报错触发主键约束
insert into emp(empno,ename,job,sal,deptno) values(1001,'c','acountant',6000,40);#报错:触发ename的主键约束
insert into emp(empno,ename,job,deptno) values(1003,'d','acountant',40);#默认约束,sal不输入时有默认值
insert into emp(empno,ename,job,sal,deptno) values(1004,'d','programmer',2100,40);#报错:触发唯一约束
insert into emp(empno,ename,sal,deptno) values(1005,'e',4000,40);#报错:触发非空约束, job要求非空,且无默认约束,所以必须给job传值
insert into emp(empno,ename,job,sal,deptno) values(106,'f','operator',3500,100);#报错:触发外键约束
insert into emp(empno,ename,job,sal,deptno) values(107,'g','operator','四千',40);#报错:数据类型不符


0.0000
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子