首页 > 其他分享 >3月31号总结

3月31号总结

时间:2023-03-31 21:59:39浏览次数:39  
标签:总结 11 -- 31 外键 emp TABLE id

DROP TABLE IF EXISTS emp;

-- 员工表
CREATE TABLE emp (
  id INT PRIMARY KEY auto_increment, -- 员工id,主键且自增长
  ename VARCHAR(50) NOT NULL UNIQUE, -- 员工姓名,非空并且唯一
  joindate DATE NOT NULL , -- 入职日期,非空
  salary DOUBLE(7,2) NOT NULL , -- 工资,非空
  bonus DOUBLE(7,2) DEFAULT 0 -- 奖金,如果没有奖金默认为0
  
);



INSERT INTO emp(id,ename,joindate,salary,bonus) values(1,'张三','1999-11-11',8800,5000);

-- 演示主键约束:非空且唯一
INSERT INTO emp(id,ename,joindate,salary,bonus) values(null,'张三','1999-11-11',8800,5000);

INSERT INTO emp(id,ename,joindate,salary,bonus) values(1,'张三','1999-11-11',8800,5000);

INSERT INTO emp(id,ename,joindate,salary,bonus) values(2,'李四','1999-11-11',8800,5000);

-- 演示非空约束
INSERT INTO emp(id,ename,joindate,salary,bonus) values(3,null,'1999-11-11',8800,5000);

-- 演示唯一约束
INSERT INTO emp(id,ename,joindate,salary,bonus) values(3,'李四','1999-11-11',8800,5000);

-- 演示默认约束
INSERT INTO emp(id,ename,joindate,salary) values(3,'王五','1999-11-11',8800);

INSERT INTO emp(id,ename,joindate,salary,bonus) values(4,'赵六','1999-11-11',8800,null);


-- 演示自动增长:auto_increment:当列是数字类型并且 唯一约束

INSERT INTO emp(ename,joindate,salary,bonus) values('赵六','1999-11-11',8800,null);
INSERT INTO emp(id,ename,joindate,salary,bonus) values(null,'赵六2','1999-11-11',8800,null);
INSERT INTO emp(id,ename,joindate,salary,bonus) values(null,'赵六3','1999-11-11',8800,null);


SELECT * from emp;
/*
    外键约束:
        * 外键用来让两个表的数据之间建立链接,保证数据的一致性和完整性

    
    -- 创建表时添加外键约束
    CREATE TABLE 表名(
         列名 数据类型,
         …
         [CONSTRAINT] [外键名称] FOREIGN KEY(外键列名) REFERENCES 主表(主表列名) 
    ); 


    -- 建完表后添加外键约束
    ALTER TABLE 表名 ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称);


    -- 删除约束
    ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;
    
    
*/
-- 删除表
DROP TABLE IF EXISTS emp;
DROP TABLE IF EXISTS dept;


-- 部门表
CREATE TABLE dept(
    id int primary key auto_increment,
    dep_name varchar(20),
    addr varchar(20)
);
-- 员工表 
CREATE TABLE emp(
    id int primary key auto_increment,
    name varchar(20),
    age int,
    dep_id int,

    -- 添加外键 dep_id,关联 dept 表的id主键
    CONSTRAINT fk_emp_dept FOREIGN KEY(dep_id) REFERENCES dept(id)
        
);
-- 添加 2 个部门
insert into dept(dep_name,addr) values
('研发部','广州'),('销售部', '深圳');

-- 添加员工,dep_id 表示员工所在的部门
INSERT INTO emp (NAME, age, dep_id) VALUES 
('张三', 20, 1),
('李四', 20, 1),
('王五', 20, 1),
('赵六', 20, 2),
('孙七', 22, 2),
('周八', 18, 2);

-- ------------------
select * from emp;


-- 删除外键
alter table emp drop FOREIGN key fk_emp_dept;



-- 建完表后,添加外键

alter table emp add CONSTRAINT fk_emp_dept FOREIGN key(dep_id) REFERENCES dept(id);
/*
    多对多:
        * 如:订单 和 商品
        * 一个商品对应多个订单,一个订单包含多个商品

    实现方式:建立第三张中间表,中间表至少包含两个外键,分别关联两方主键


    
*/
-- 删除表
DROP TABLE IF EXISTS tb_order_goods;
DROP TABLE IF EXISTS tb_order;
DROP TABLE IF EXISTS tb_goods;


-- 订单表
CREATE TABLE tb_order(
    id int primary key auto_increment,
    payment double(10,2),
    payment_type TINYINT,
    status TINYINT
);

-- 商品表
CREATE TABLE tb_goods(
    id int primary key auto_increment,
    title varchar(100),
    price double(10,2)
);

-- 订单商品中间表
CREATE TABLE tb_order_goods(
    id int primary key auto_increment,
    order_id int,
    goods_id int,
    count int
);

-- 建完表后,添加外键
alter table tb_order_goods add CONSTRAINT fk_order_id FOREIGN key(order_id) REFERENCES tb_order(id);
alter table tb_order_goods add CONSTRAINT fk_goods_id FOREIGN key(goods_id) REFERENCES tb_goods(id);

 

标签:总结,11,--,31,外键,emp,TABLE,id
From: https://www.cnblogs.com/liucaizhi/p/17277559.html

相关文章

  • 3月31日课后总结
    3/31课后总结死锁现象(了解)""" 死锁是指两个或者两个以上的进程互相抢占资源而导致互相等待的过程 单进程和单线程不会出现死锁"""importtimefromthreadingimportThread,Lock,RLock#RLock就是递归锁""" 连续赋值下两把锁其实是同一把锁,如果是普通锁会报错,因为......
  • 3.31每日总结
    PHP命名空间(namespace)是在PHP5.3中加入的,目的是解决重名问题,PHP中不允许两个函数或者类出现相同的名字,否则会产生一个致命的错误。PHP命名空间可以解决以下两类问题:用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。为很长的标识符名称(通常......
  • 03操作系统发展历史3.31
    操作系统发展历史手工操作系统:用户独占全机cpu等待人工操作增加了外存,先把要处理的数据存到外存中,减少CPU等待时间,提高工作效率也称脱机操作方式一次只能执行一个程序批处理阶段:单道批处理:自动,顺序排队进入监督程序,然后依次运行内存中只能一个程序运行,一......
  • 202031607330-杨雯丽 实验一 软件工程准备—认识软件工程
    实验一:软件工程准备项目内容班级课程博客链接20级卓越班此次作业链接实验一软件工程准备我的课程学习目标(1)学习博客园软件开发者学习社区使用技巧和经验。(2)了解Github的基本操作。本次作业在哪些方面帮我实现学习目标(1)了解与掌握了博客园的基本使用(2)熟练了......
  • 软件构造规约设计知识点总结
    已经开始做软件构造实验二了,但做了几天还是感觉不太对,有种无从下手的感觉,我还是来复习一下本次实验所要用到的知识点吧,至于前面的知识呢,先别急,虽然也用的上,但在本次实验不是重点,之后再进行复习。知识点概要:规约设计测试用例ADT的泛化型ADT的抽象函数(AF)、......
  • 关于SQLsever2012报错的一些经验总结
    问题描述:数据库连接实例时出现报错情况;问题截图:  故障软件:SQLsever2012操作系统:windowssever2022R2数据中心期望结果:可以打开之前的实例 总结经验: 上面这张图是1月15号出现的,距离今天已经过去了40天,当时查询了n多资料也没有解决的这个问题,由于过年和其他事务的出现,以至于在......
  • 202031607334-贾小萌 实验一 软件工程准备 初步认识软件工程
    项目内容班级博客链接20级卓越班本次作业要求链接实验一软件工程准备我的课程学习目标学习博客园软件开发者学习社区使用技巧和经验;了解Github基本操作本次作业在哪方面帮我实现学习目标初步了解博客园软件和Github的基本操作;初步认识软件工程实验内容......
  • 202031705119-张倩 实验一 软件工程准备——初步认识软件工程
    一.博文开头项目内容班级博客链接2023春软件工程(2020级计算机科学与技术)本次作业要求链接实验一软件工程准备我的课程学习目标1.学会使用博客园的基本功能2.学会使用Github的基本功能3.阅读《现代软件工程——构建之法》并解决提出的问题本次作业在哪些......
  • 2023.3.31每日总结
    今天学习了textarea实现输入框随着文字的输入增长<%@pagecontentType="text/html;charset=UTF-8"language="java"%><html><head><title>学生作业提交页面</title><styletype="text/css">.txt{......
  • 《无》2023.3.31
    还年少时,我们心底所有的阴霾都会消逝,尽情释放内心的狂野。当我们直面恐惧时,从眼泪中汲取教训,深知这些回忆是我们抹不去的曾经。——《TheNights》,Avicii 今天是2023年3月的最后一天。先谈这个月比较重要的两个点:2023.3.4CSP-J,并且成绩还算看得过去,SD金牌。2023.3.23通过......