首页 > 编程语言 >程序员世界大冒险d45Ⅱ

程序员世界大冒险d45Ⅱ

时间:2024-10-26 23:11:41浏览次数:4  
标签:dep name dept -- 程序员 emp id d45 大冒险

设置外键约束如下:
-- 创建表emp员工表
create table emp(
id int primary key,
name varchar(50) not null unique,
age int,
dep_id int
);
select * from emp;
-- 创建表dept部门表
create table dept(
id int primary key,
dep_name varchar(50) unique,
address varchar(50)
);
select * from dept;
-- 删除表emp和表dept
drop table emp;
drop table dept;

create table emp(
id int primary key,
name varchar(50) not null unique,
age int,
dep_id int,
-- 添加外键dep_id,关联dept表的id主键
CONSTRAINT fk_emp_dept FOREIGN KEY(dep_id) REFERENCES dep(id)

);
-- 要先创建部门表和部门数据再创建员工表和员工数据 即:
create table dept(
id int primary key auto_increment,
dep_name varchar(50) unique,
address varchar(50)
);
insert into dept(id,dep_name,address)values(1,'研发部','广州');
insert into dept(id,dep_name,address)values(2,'技术部','深圳');
select * from dept;

create table emp(
id int PRIMARY KEY auto_increment,
name varchar(50) ,
age int,
dep_id int,
-- 添加外键dep_id,关联dept表的id主键
CONSTRAINT fk_emp_dept FOREIGN KEY(dep_id) REFERENCES dept(id)
);
select * from emp;
insert into emp(id,name,age,dep_id)values(1,'张三',18,1);
insert into emp(id,name,age,dep_id)values(null,'赵四',19,1);
insert into emp(id,name,age,dep_id)values(null,'王五',20,2);
insert into emp(id,name,age,dep_id)values(null,'李六',18,1);
insert into emp(id,name,age,dep_id)values(null,'孙七',17,2);
insert into emp(id,name,age,dep_id)values(null,'朱八',21,2);
-- 删除外键
alter table emp drop FOREIGN key fk_emp_dept;
-- 建立完成表后添加外键
alter table emp add CONSTRAINT fk_emp_dept FOREIGN key(dep_id) REFERENCES dept(id);

-- ------------------以上创建的表为多对一关系的表
-- 而要创建多对多关系的表则需要额外创建一个中间表
类似于(订单和货物表,一个订单可以有多个货物,而一个货物也可以被多个订单所购买):
-- 订单商品表
-- 订单表
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)
);
insert into tb_order(id,payment,payment_type,status)values(1,7376.00,'微信支付',1);
insert into tb_order(id,payment,payment_type,status)values(59880.00,'支付宝支付',0);
-- 订单商品中间表
create table tb_order_goods(
id int primary key auto_increment,
order_id int,-- 订单id
goods_id int,-- 货物id
-- 一般会添加一个购买数量
count int not null
);
-- 建立完成表后添加外键
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);

-- 子查询
select * from emp;
select * from emp where age<20;
-- 相当于是嵌套查询,而括号内的是子查询
select * from emp where age<(select age from emp where id=3);

select * from emp,dept;
-- 查询技术部的员工信息(单行单列)
select * from emp where dep_id=1;
-- 查询年龄在18到20的员工(多行单列)
select* from emp where age in(18,19,20);
-- 查询员工信息和部门信息(多行多列)
select * from (select * from emp where age>19) t1,dept where t1.dep_id=dept.id;

create table cnt(
id int primary key auto_increment,
name varchar(10) unique,
count double(10,2)
);
insert into cnt(id,name,count)values(1,'张三',1000);
insert into cnt(id,name,count)values(null,'李四',1000);

-- 转账操作
-- 开启事务
BEGIN;
-- 李四金额-500
update cnt set count=count-500 where name='李四';
-- 张三金额+500
update cnt set count=count+500 where name='张三';
-- 提交事务
COMMIT;
-- 回滚事务
ROLLBACK;
select * from cnt;
update cnt set count=1000;
-- 两种提交方式
-- 1.默认自动提交
select @@autocommit;
-- 2.添加下面这个就是手动提交
set @@autocommit=0;
update cnt set count=count+500 where name='李四';

-- 默认自动提交相当于在这里有一个commit,而手动提交则要在这里写commit才能够提交
commit;

标签:dep,name,dept,--,程序员,emp,id,d45,大冒险
From: https://www.cnblogs.com/3012193641qq/p/18505302

相关文章

  • 2024.10.22(程序员的修炼之道)
    要是我们真能这样控制质量就好了。但现实世界不会让我们生产出太多真正完美的产品,尤其是完全没有Bug的软件。时间、技术、急躁合力对抗着我们。然而,莫要太沮丧。如《IEEE软件》杂志上一篇由爱德华·尤登写的文章《够好即可的软件就是最好的》[You95]所述,你能训练自己写出够好即可......
  • 35岁大龄程序员的何去何从
    35岁对于很多职业来说,意味着丰富的经验和更高的薪资。然而,在程序员这个快节奏、高竞争的行业,35岁往往被视为一道门槛,一种“职业生涯的分水岭”。许多人甚至戏称为“35岁魔咒”,认为大龄程序员会面临更高的压力和被淘汰的风险。那么,35岁的大龄程序员在职业生涯中究竟该如何应......
  • 程序员世界大冒险d45
    读书笔记一:编程的心态与职业发展在《程序员修炼之道:从小工到专家》一书的开篇,作者强调了编程的心态对于职业发展的重要性。初入职场的程序员,往往被各种技术和任务所淹没,急于完成工作,缺乏长远思考。作者提出,务必要培养一种积极向上的学习和成长心态,将编程视为一种修炼,而不是单纯的......
  • 1024程序员节——我的程序员之路,Passion
    #1024程序员节|征文#时光飞逝,又到了一年一度的1024程序员节。大学毕业,步入社会,转眼间已经工作快7年了,总结下自己这些年来的经历与程序之路。踏入社会2018年,我从某普通二本毕业,学的是信息与计算科学,一个所学之广涉及数学,计算机,金融的专业(本来是冲着计算机读的该专业)。......
  • 为什么大多数程序员都喜欢猫咪?
    #1024程序员节|#征文在技术领域,程序员与猫咪之间的深厚情感并不罕见。这种看似奇特的联系可以归结为几个因素,使得猫咪成为长时间编程的理想伴侣。下面我们来探讨三个关键原因,解释这一现象。1.独立性猫咪以其独立性而闻名。与需要持续关注和陪伴的狗不同,猫咪可以自得......
  • Awesome Tools,程序员常用高效实用工具、软件资源精选,办公效率提升利器!
    ✨前言在当今这个技术日新月异的时代,开发者只有持续学习,才能紧跟时代的浪潮。为了助力开发者在高效学习与工作中实现平衡(告别996的束缚),众多卓越且实用的开发工具应运而生,它们如同强大的助力器,极大地提升了我们的工作效率与创造力。GtiHub开源地址(欢迎关注持续更新):https://......
  • 程序员修炼之道读书笔记
    《程序员修炼之道:从小工到专家》的第三章主要聚焦于“注重实效的途径”这一主题。在这一章中,作者强调了“务实”在编程工作中的重要性。面对复杂多变的编程任务,我们不能只拘泥于理论和传统的方法。作者提出,要关注新技术,但不盲目跟风。新技术常常能带来效率的提升和创新的可能性,......
  • 《程序员修炼之道:从小工到专家》之持续学习
    在《程序员修炼之道:从小工到专家》中,作者们对持续学习的重要性进行了深入的探讨。他们认为,技术的发展日新月异,程序员必须不断学习新知识、新技能,以保持自己的竞争力。这一观点让我深有感触。书中提到,持续学习不仅仅是学习新的编程语言或框架,更重要的是学习解决问题的方法和思维方......
  • 《程序员修炼之道:从小工到专家》之代码质量
    在《程序员修炼之道:从小工到专家》中,作者们对代码质量的讨论给我留下了深刻的印象。书中指出,代码质量是程序员工作的核心,它直接关系到软件的稳定性、可维护性和扩展性。作者们通过丰富的实例和建议,向我们展示了如何提升代码质量。首先,书中提到了代码的可读性。一个优秀的程序员应......
  • 程序员修炼之道——从小工到专家读书笔记3
    第七章:软件工艺——追求卓越这一章深入探讨了软件工艺的核心价值,强调程序员应当追求卓越,将编程工作上升至艺术的高度。软件工艺不仅仅是一种技术层面的追求,更是一种态度上的体现。作为专业的程序员,应当以工匠的精神对待每一行代码,致力于编写高质量、易于维护的程序。在精益求精......