Mysql数据库,JDBC

Mysql数据库

-- 级联操作CASCADE
USE mydb_04;
SELECT * FROM emploee ;
SELECT * FROM dept ;
-- 为什么使用级联操作
-- 修改员工表(从表)的数据:dept_id
-- 不能直接修改/删除当前字段,除非当前这个表字段和主表的id字段没有关联关系,才能修改!
-- 删除员工表的id为9的人   (删除:先删除从表,在删除主表)
DELETE FROM emploee WHERE id = 9 ;
-- 删除部门 :删除4号部门
DELETE FROM dept WHERE id = 4;
-- 删除部门为3号部门
DELETE FROM dept WHERE id = 3 ;
-- Cannot delete or update a parent row: a foreign key constraint fails (`mydb_04`.`emploee`, CONSTRAINT `dept_emp_fk` FOREIGN KEY (`dept_id`) REFERENCES `dept` (`id`))
-- 结论:删除或者修改主表:不能操作的----必须先对从表数据进行删除或者修改!

-- 加入级联操作----修改或者删除主表 (从表的数据会随着主表的操作而变化!)
-- sql语句先将外键约束删除
ALTER TABLE emploee DROP  FOREIGN KEY dept_emp_fk;
-- 添加级联操作(级联修改和级联删除)
ALTER TABLE emploee ADD  

	CONSTRAINT dept_emp_fk FOREIGN KEY (dept_id) 
	REFERENCES dept(id) ON DELETE CASCADE  ON UPDATE CASCADE ;
-- 级联修改:
-- 需求:将1号部门变成5号部门 ,跟1号部门相关的员工的部门编号也会变化
UPDATE dept SET id = 5 WHERE id = 1 ;
-- 需求:删除2号部门,跟2号部门相关的员工也会被干掉
DELETE FROM dept WHERE id = 2 ;
SELECT * FROM dept ;
SELECT * FROM emploee ;
-- 当前员工表的dept_id(部门编号) 完全依赖于 部门表id




-- 数据库的备份和还原

-- 备份
-- 1)命令行的方式:进入dos
-- 备份的语法格式 mysqldump -u用户名 -p密码 数据库的名称 > 保存的路径
-- 2)使用推行界面化的方式来进行数据库的备份
-- 进入到sqlyog工具中--- 在数据库的上面右键---选择备份


-- 还原数据库
-- 1)进入dos之后:登录的msyql数据库中
-- 登录成功之后,删除当前mydb_04这个数据库
-- source 之前备份的sql文件路径-- 回车 

-- 2)图形界面化的方式
-- 在sqlyog中删除当前mydb_04数据库,然后右键选择 以sql的转存文件来导入...




-- 多表查询
-- 通过查询两张或者两张以上的表时使用的sql语句---多表查询

CREATE DATABASE mydb_05 ;
USE mydb_05;
# 创建部门表 
CREATE TABLE dept( 
	id INT PRIMARY KEY AUTO_INCREMENT,  -- 主键:部门编号
	NAME VARCHAR(20)  -- 部门名称
);
INSERT INTO dept (NAME) VALUES ('开发部'),('市场部'),('财务部');
# 创建员工表 
CREATE TABLE emp ( 
	id INT PRIMARY KEY AUTO_INCREMENT, 
	NAME VARCHAR(10),
	 gender CHAR(1), -- 性别 
	 salary DOUBLE, -- 工资 
	 join_date DATE, -- 入职日期 
	 dept_id INT, 	 -- 部门编号
	 FOREIGN KEY (dept_id) REFERENCES dept
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值