<>MySql基础篇

<>多表设计:

在存储不同的一类信息时
减少数据冗余

表与表之间如何关联
数据库设计范式: 1.列的原子性(不可再分) 2.要有主键(唯一的标识列),表中其他信息都依赖于主键 3.一张表存储一类信息,关联其他表,消除数据冗余
学生信息表: 学号,姓名,性别,生日,手机号,年级ID,注册时间 年级表: 年级ID,年级名称 -- 老师信息表 工号,姓名,性别,年级ID 课程信息表 --
创建年级表 CREATE TABLE grade(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10))
-- 创建学生表 CREATE TABLE student( num INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(
10) NOT NULL, sex CHAR(1), birthday DATE, phone CHAR(11), grade_id INT, -- 外键约束
reg_timeDATETIME ) -- 弱关系,在表与表关联时,没有任何约束 -- 强关系,表与表之间存在约束关系 -- 修改表,添加年级外键约束 --
外键约束:外键与另一个表中的主键对应的 ALTER TABLE student ADD CONSTRAINT grade_fk FOREIGN KEY(
grade_id) REFERENCES grade(id) /* 表与表之间的联系关系 一对一:一个人有一个学号,一个学号对应一个人
一对多:一个人属于一个年级 多对一:多名学生属于一个年级 多对多:一个人可以选多门课程,一个课程可以被多名学生选 */ CREATE TABLE course(
idINT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10) ) -- 多对多设计一个关系表来存储学生与课程关系
CREATE TABLE student_course( stu_num INT, course_id INT, CONSTRAINT stu_fk
FOREIGN KEY(stu_num) REFERENCES student(num), CONSTRAINT course_fk FOREIGN KEY(
course_id) REFERENCES course(id) )
<>子查询
-- 子查询:出现在其他语句(insert update delete select) 中的select语句,成为子查询或内查询 --
外部的查询语句,称为主查询或外查询 -- 在insert语句中使用子查询 INSERT INTO stu SELECT * FROM student --
在update中使用子查询 UPDATE student SET sex='男' WHERE num IN (SELECT num FROM stu WHERE
score>80) -- 在delete语句中使用子查询 DELETE FROM student WHERE num IN(SELECT num FROM
stuWHERE score>=90) -- 查询语句中使用子查询 -- select后面:仅仅支持标量子查询(一行一列) SELECT ( SELECT ts
.num FROM student ts WHERE ts.num = t.num ),t.name FROM student t --
在where后面使用列子查询 SELECT * FROM student WHERE score IN (SELECT score FROM student
WHERE score>60) -- 在where后面使用行子查询 同时满足多个条件 SELECT * FROM student WHERE (num,
score)=( SELECT MIN(num),MAX(score) FROM student ) -- 在from后使用子查询 只支持表子查询(多行多列)
-- 把一个查询出来的结果,可以当一只那个临时表 SELECT * FROM( SELECT COUNT(*)c ,sex FROM student GROUP
BY sex) t WHERE t.c >= 2

技术
©2019-2020 Toolsou All rights reserved,
css中上下左右居中的几种实现方法[CISCN 2019 初赛]Love Mathc/c++语言实现登陆界面Unity3D 人称设置(第一人称视角、第三人称视角)Fastadmin框架自定义搜索操作流程2021最新Python自动化软件测试笔试题(含答案)黑客帝国装逼的代码雨mysql数据库设置字符集配置修改my.ini文件(windows)python之panda模块1Python学习笔记:基础+进阶10道练习题