Mysql的基本操作和级联操作

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

一、数据库常用操作

1、创建数据库

create database school;

2、使用数据库

use database school;

3、显示所有数据库

show databases;

4、删除数据库

drop database school;

二、数据表常用操作

1、创建数据表

创建班级表CLASS_ID为主键;创建学生表STUDENT_ID为主键;
创建教师表TEACHER_ID 为主键;

# 创建班级表
CREATE TABLE class (

CLASS_ID INT(6) NOT NULL PRIMARY KEY AUTO_INCREMENT,
NAME  CHAR(6)

)
# 创建学生表
CREATE TABLE student (

STUDENT_ID INT(6) NOT NULL PRIMARY KEY AUTO_INCREMENT,
AGE INT(3),
NAME CHAR(4) NOT NULL ,
S_CLASS_ID INT(4),
SEX CHAR(2)

)
# 创建老师表
CREATE TABLE teacher (

TEACHER_ID INT(6) NOT NULL PRIMARY KEY AUTO_INCREMENT,
NAME CHAR(4) NOT NULL ,
T_CLASS_ID INT(4),
SEX CHAR(2)

)

2、增加数据

INSERT INTO class (CLASS_ID,NAME) VALUES (1,'一班');
INSERT INTO class (CLASS_ID,NAME) VALUES (2,'二班');
INSERT INTO class (CLASS_ID,NAME) VALUES (3,'三班');

INSERT INTO student (STUDENT_ID,AGE,NAME,S_CLASS_ID,SEX) VALUES (1,8,'张三',1,'男');
INSERT INTO student (STUDENT_ID,AGE,NAME,S_CLASS_ID,SEX) VALUES (2,10,'李四',1,'男');
INSERT INTO student (STUDENT_ID,AGE,NAME,S_CLASS_ID,SEX) VALUES (3,9,'牛三',1,'女');
INSERT INTO student (STUDENT_ID,AGE,NAME,S_CLASS_ID,SEX) VALUES (4,8,'王五',2,'男');
INSERT INTO student (STUDENT_ID,AGE,NAME,S_CLASS_ID,SEX) VALUES (5,8,'赵六',3,'男');

INSERT INTO teacher (TEACHER_ID,NAME,T_CLASS_ID,SEX) VALUES (1,'王蒙',1,'女');
INSERT INTO teacher (TEACHER_ID,NAME,T_CLASS_ID,SEX) VALUES (2,'韩梅梅',2,'女');
INSERT INTO teacher (TEACHER_ID,NAME,T_CLASS_ID,SEX) VALUES (3,'李虎',3,'男');

3、查询数据

SELECT * FROM class;

在这里插入图片描述

SELECT * FROM student;

在这里插入图片描述

SELECT * from teacher;

在这里插入图片描述

4、修改数据

UPDATE student SET SEX = '女' WHERE NAME = '李四';

SELECT * FROM student WHERE NAME = '李四';

在这里插入图片描述

5、删除数据

删除数据有三种方式:delete、truncate、drop
执行速度:drop > truncate >> delete
区别:delete删除的数据可以恢复;truncate 清空表,保留表的结构,数据不可以恢复;
drop 删除整个表,表不存在,数据不可恢复;

DELETE FROM student where NAME = '牛三';
SELECT * FROM student;

在这里插入图片描述

三、设置级联操作

-- 1. 添加级联操作
	语法:ALTER TABLE 表名 ADD CONSTRAINT 外键名称
		FOREIGN KEY (外键字段名称) REFERENCES 主表名称(主表列名称) 
		ON UPDATE CASCADE 
		ON DELETE CASCADE;
-- 2. 分类:
	1. 级联更新:ON UPDATE CASCADE
	2. 级联删除:ON DELETE CASCADE

在学生表里设置班级表的级联删除和更新,学生表的外键(S_CLASS_ID)连接班级表的(CLASS_ID);
在教师表里设置班级表的级联删除和更新,教师表的外键(T_CLASS_ID)连接班级表的(CLASS_ID);

ALTER TABLE student ADD CONSTRAINT s_c_classid
		FOREIGN KEY (S_CLASS_ID) REFERENCES class(CLASS_ID) 
		ON UPDATE CASCADE 
		ON DELETE CASCADE;
		
ALTER TABLE teacher ADD CONSTRAINT t_c_classid
		FOREIGN KEY (T_CLASS_ID) REFERENCES class(CLASS_ID) 
		ON UPDATE CASCADE 
		ON DELETE CASCADE;

查看效果

1、级联删除操作

eg:删除班表里三班的数据,学生表里三班的学生也跟着删除,教师表里三班的老师也跟着删除

SELECT * from student;
SELECT * from teacher;

在这里插入图片描述
在这里插入图片描述

DELETE from class where CLASS_ID=3;
SELECT * from student;
SELECT * from teacher;

在这里插入图片描述
在这里插入图片描述

2、级联更新操作

eg:将班级表里一班的id修改为6,学生表和老师表里S_CLASS_ID和T_CLASS_ID也会修改为6

UPDATE class set CLASS_ID = 6 where CLASS_ID=1;
SELECT * from student;
SELECT * from teacher;

在这里插入图片描述
在这里插入图片描述

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值