c++知识点合集已经完成欢迎前往主页查看,点点赞点点关注不迷路哦
MYSQL第一章节DDL数据定义语言的操作----点我进入
MYSQL第二章节DDL-数据库操作语言 DQL-数据查询语言----点我进入
MYSQL第三章节DCL-管理用户,控制权限----点我进入
MYSQL第四章节常用函数说明----点我进入
概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。
目的:保证数据库中数据的正确、有效性和完整性。
分类:
根据需求完成下表的创建
- CREATE TABLE user(
- id int PRIMARY KEY auto_increment,
- name varchar(10) not null unique ,
- age int check (age>0&&age<=120),
- status char(1) default '1',
- gender char(1)
- );
概念:外键用来让两张表的数据之间建立连接,从而保证数据的一致性和完整性。
- -- 方法一 --
- CREATE TABLE 表名(
-
- 字段名 数据类型,
- ...
- [CONSTRAINT] [外键名字] FOREIGN KEY(外键字段名) REFERENCES 主表(主表列名)
-
- );
-
-
- -- 方法二 --
-
- ALTER TABLE 表名 ADD CONSTRAINT 外键名 FOREIGN KEY(外键字段名) REFERENCES 主表(主表列名);
-
-
数据准备
- CREATE TABLE user(
- id int PRIMARY KEY auto_increment,
- name varchar(10) not null unique ,
- age int check (age>0&&age<=120),
- status char(1) default '1',
- gender char(1)
- );
- desc user
-
- insert into user(name,age,status,gender) values ('Tom1',19,'1','男'),('Tom2',25,'0','男');
- insert into user(name,age,status,gender) values ('Tom3',19,'1','男');
-
- insert into user(name,age,status,gender) values (null,19,'1','男');
- insert into user(name,age,status,gender) values ('Tom3',19,'1','男');
-
- insert into user(name,age,status,gender) values ('Tom4',80,'1','男');
- insert into user(name,age,status,gender) values ('Tom5',-1,'1','男');
- insert into user(name,age,status,gender) values ('Tom5',121,'1','男');
-
- insert into user(name,age,gender) values ('Tom5',120,'男');
-
- create table dept(
- id int auto_increment comment 'ID' primary key,
- name varchar(50) not null comment '部门名称'
- )comment '部门表';
- INSERT INTO dept (id, name) VALUES (1, '研发部'), (2, '市场部'),(3, '财务部'), (4, '销售部'), (5, '总经办');
-
- create table emp(
- id int auto_increment comment 'ID' primary key,
- name varchar(50) not null comment '姓名',
- age int comment '年龄',
- job varchar(20) comment '职位',
- salary int comment '薪资',
- entrydate date comment '入职时间',
- managerid int comment '直属领导ID',
- dept_id int comment '部门ID'
- )comment '员工表';
-
- INSERT INTO emp (id, name, age, job,salary, entrydate, managerid, dept_id) VALUES
- (1, '金庸', 66, '总裁',20000, '2000-01-01', null,5),(2, '张无忌', 20, '项目经理',12500, '2005-12-05', 1,1),
- (3, '杨逍', 33, '开发', 8400,'2000-11-03', 2,1),(4, '韦一笑', 48, '开发',11000, '2002-02-05', 2,1),
- (5, '常遇春', 43, '开发',10500, '2004-09-07', 3,1),(6, '小昭', 19, '程序员鼓励师',6600, '2004-10-12', 2,1);
ALTER TABLE emp ADD CONSTRAINT fk_emp_dept foreign key (dept_id) references dept(id);
ALTER TABLE 表名 DROP FOREIGN KEY 外键名字;
ALTER TABLE 表名 ADD CONSTRAINT (外键字段) REFERENCES 主表名(主表字段名) ON UPDATE CASCADE ON DELETE CASCADE;