From 9e71f626b5e270e6096dc5ce24929d35aa654308 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E5=B1=95?= <1742965070@qq.com> Date: Wed, 6 Sep 2023 12:00:19 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=B0=E5=BB=BA=2003=E6=9E=97=E5=B1=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "03\346\236\227\345\261\225/.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "03\346\236\227\345\261\225/.keep" diff --git "a/03\346\236\227\345\261\225/.keep" "b/03\346\236\227\345\261\225/.keep" new file mode 100644 index 0000000..e69de29 -- Gitee From 3cd9f7bf9365035d1652c057a7ff498769d1b3a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E5=B1=95?= <1742965070@qq.com> Date: Wed, 6 Sep 2023 12:01:47 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=E6=9E=97=E5=B1=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 林展 <1742965070@qq.com> --- .../20230904/20230904.md" | 19 ++ .../20230905 \344\275\234\344\270\232.md" | 182 ++++++++++++++++++ .../20230905/20230905.md" | 21 ++ .../20230905/\345\233\276\347\211\2071.png" | Bin 0 -> 8931 bytes 4 files changed, 222 insertions(+) create mode 100644 "03\346\236\227\345\261\225/20230904/20230904.md" create mode 100644 "03\346\236\227\345\261\225/20230905 \344\275\234\344\270\232.md" create mode 100644 "03\346\236\227\345\261\225/20230905/20230905.md" create mode 100644 "03\346\236\227\345\261\225/20230905/\345\233\276\347\211\2071.png" diff --git "a/03\346\236\227\345\261\225/20230904/20230904.md" "b/03\346\236\227\345\261\225/20230904/20230904.md" new file mode 100644 index 0000000..54c2b5a --- /dev/null +++ "b/03\346\236\227\345\261\225/20230904/20230904.md" @@ -0,0 +1,19 @@ +# 新学期新目标 + +一 + +MySQL 高级进阶 + +二 + +js进阶 (Spring系列) + +三 + +MVC + + + +奇奇怪怪的东西 + +盘搜搜,会员破解,GitHub \ No newline at end of file diff --git "a/03\346\236\227\345\261\225/20230905 \344\275\234\344\270\232.md" "b/03\346\236\227\345\261\225/20230905 \344\275\234\344\270\232.md" new file mode 100644 index 0000000..5ddd9ce --- /dev/null +++ "b/03\346\236\227\345\261\225/20230905 \344\275\234\344\270\232.md" @@ -0,0 +1,182 @@ +```MySQL +CREATE DATABASE School CHARSET utf8; +USE School; + +-- 院系 +CREATE TABLE Department( + Did INT PRIMARY KEY,-- 院系id + `NAME` VARCHAR(10)-- 院系名称 +); + +INSERT INTO `department` (`Did`, `NAME`) VALUES (1, '后端'); +INSERT INTO `department` (`Did`, `NAME`) VALUES (2, '新媒体'); +INSERT INTO `department` (`Did`, `NAME`) VALUES (3, '前端'); + + +-- 专业 +CREATE TABLE speciality( + sid INT PRIMARY KEY,-- 专业id + `NAME` VARCHAR(10),-- 专业名称 + Did INT,-- 院系id 外键链接院系表 + FOREIGN KEY (Did)REFERENCES Department(Did) +); + +INSERT INTO `speciality` (`sid`, `NAME`, `Did`) VALUES (1, 'MySQL', 1); +INSERT INTO `speciality` (`sid`, `NAME`, `Did`) VALUES (2, 'PS', 2); +INSERT INTO `speciality` (`sid`, `NAME`, `Did`) VALUES (3, 'HTML', 3); +INSERT INTO `speciality` (`sid`, `NAME`, `Did`) VALUES (4, 'Java', 1); +INSERT INTO `speciality` (`sid`, `NAME`, `Did`) VALUES (5, '抖音', 2); +INSERT INTO `speciality` (`sid`, `NAME`, `Did`) VALUES (6, 'voe', 3); + +-- 班级 +CREATE TABLE class( + Cid int PRIMARY KEY,-- 班级id + `name` VARCHAR(10),-- 班级名字 + Did INT,-- 院系id 外键链接院系表 + FOREIGN KEY (Did) REFERENCES Department(Did) +); + +INSERT INTO `class` (`Cid`, `name`, `Did`) VALUES (1, '一班', 1); +INSERT INTO `class` (`Cid`, `name`, `Did`) VALUES (2, '二班', 1); +INSERT INTO `class` (`Cid`, `name`, `Did`) VALUES (3, '三班', 2); +INSERT INTO `class` (`Cid`, `name`, `Did`) VALUES (4, '四班', 2); +INSERT INTO `class` (`Cid`, `name`, `Did`) VALUES (5, '五班', 3); + + +-- 老师 +CREATE TABLE teacher( + Tid INT PRIMARY KEY,-- 老师编号 + `name` VARCHAR(10),-- 老师名字 + sex char,-- 老师性别 + Did INT,-- 院系id 外键链接院系表 + FOREIGN KEY (Did) REFERENCES Department(Did) +); + +INSERT INTO `teacher` (`Tid`, `name`, `sex`, `Did`) VALUES (1, '张伟', '男', 1); +INSERT INTO `teacher` (`Tid`, `name`, `sex`, `Did`) VALUES (2, '李伟', '男', 1); +INSERT INTO `teacher` (`Tid`, `name`, `sex`, `Did`) VALUES (3, '王伟', '男', 2); +INSERT INTO `teacher` (`Tid`, `name`, `sex`, `Did`) VALUES (4, '王芳', '女', 2); +INSERT INTO `teacher` (`Tid`, `name`, `sex`, `Did`) VALUES (5, '李娜', '女', 3); + + +-- 学生 +CREATE TABLE student ( + Sid int PRIMARY KEY,-- 学生id + `name` VARCHAR(10),-- 学生姓名 + sex char,-- 学生性别 + class INT,-- 班级id 外键链接班级表 + FOREIGN KEY (class) REFERENCES class(Cid) +); + +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (1, '李敏', '女', 1); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (2, '张磊', '男', 1); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (3, '李强', '男', 1); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (4, '张杰', '男', 1); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (5, '李明', '男', 1); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (6, '刘伟', '男', 2); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (7, '张强', '男', 2); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (8, '王磊', '男', 2); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (9, '李勇', '男', 2); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (10, '李红', '女', 2); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (11, '张军', '男', 3); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (12, '张涛', '男', 3); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (13, '王刚', '男', 3); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (14, '李静', '女', 3); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (15, '张婷', '女', 3); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (16, '李宇', '男', 4); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (17, '王鹏', '男', 4); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (18, '张鑫', '男', 4); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (19, '李阳', '男', 4); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (20, '王丽', '女', 4); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (21, '张宇', '男', 5); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (22, '李晓', '男', 5); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (23, '张健', '男', 5); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (24, '李欣', '女', 5); +INSERT INTO `student` (`Sid`, `name`, `sex`, `class`) VALUES (25, '张晓明', '男', 5); + +-- 成绩表 +CREATE TABLE fraction( + Sid int,-- 学号 外键链接学生表 + FOREIGN KEY (Sid) REFERENCES student(Sid), + speid INT,-- 专业代号 外键链接专业表 + FOREIGN KEY (speid) REFERENCES speciality(sid), + achievement INT-- 成绩 +); + +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (1, 1, 60); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (1, 4, 90); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (2, 1, 70); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (2, 4, 80); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (3, 1, 88); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (3, 4, 77); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (4, 1, 90); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (4, 4, 100); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (5, 1, 55); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (5, 4, 79); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (6, 1, 80); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (6, 4, 77); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (7, 1, 88); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (7, 4, 98); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (8, 1, 77); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (8, 4, 90); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (9, 1, 79); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (9, 4, 67); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (10, 1, 77); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (10, 4, 99); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (11, 2, 70); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (11, 5, 90); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (12, 2, 88); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (12, 5, 99); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (13, 2, 77); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (13, 5, 98); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (14, 2, 88); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (14, 5, 98); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (15, 2, 66); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (15, 5, 89); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (16, 2, 77); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (16, 5, 98); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (17, 2, 98); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (17, 5, 70); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (18, 2, 89); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (18, 5, 78); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (19, 2, 99); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (19, 5, 100); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (20, 2, 88); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (20, 5, 55); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (21, 3, 75); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (21, 6, 44); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (22, 3, 90); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (22, 6, 89); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (23, 3, 77); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (23, 6, 90); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (24, 3, 79); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (24, 6, 88); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (25, 3, 100); +INSERT INTO `fraction` (`Sid`, `speid`, `achievement`) VALUES (25, 6, 100); + + +-- 查找一班所有人的成绩 +SELECT + s.`name`, + achievement +FROM + ( + SELECT + student.Sid, + student.`name` + FROM + class + INNER JOIN student + WHERE + class.Cid = student.class + AND class.`name` = '一班' + ) s + INNER JOIN fraction +WHERE + s.Sid = fraction.Sid + + + + +``` + diff --git "a/03\346\236\227\345\261\225/20230905/20230905.md" "b/03\346\236\227\345\261\225/20230905/20230905.md" new file mode 100644 index 0000000..8913a7a --- /dev/null +++ "b/03\346\236\227\345\261\225/20230905/20230905.md" @@ -0,0 +1,21 @@ +# 数据库设计 + + + +在多表多属性的数据库中,表中的元素关系类别 + +一对一:一个人对一个身份证,相互独立且唯一,联表时可以任意一个表的主键联系到另一个表做外键 + + + +一对多:一个教室对多个人,联表时可以以“一”的表中的主键联系到另一个表做外键 + + + +多对多:学生对各个科的成绩,联表时需要第三个表来联系两个表的主键 + + + +使用E-R图表来表明各个表的联系 + +![图片1](F:\MySQL 高级\20230905/图片1.png) \ No newline at end of file diff --git "a/03\346\236\227\345\261\225/20230905/\345\233\276\347\211\2071.png" "b/03\346\236\227\345\261\225/20230905/\345\233\276\347\211\2071.png" new file mode 100644 index 0000000000000000000000000000000000000000..a6bbc8798293b39891f7b6dfd7cfc7ee40bb7887 GIT binary patch literal 8931 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