From 09ed469b3b0f615d3f038bae39f3406bbff73bce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=BE=89?= <11764079+elrianode@user.noreply.gitee.com> Date: Wed, 6 Sep 2023 15:18:14 +0000 Subject: [PATCH 1/4] =?UTF-8?q?=E6=96=B0=E5=BB=BA=2001=20=E5=BC=A0?= =?UTF-8?q?=E8=BE=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- "01 \345\274\240\350\276\211/.keep" | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 "01 \345\274\240\350\276\211/.keep" diff --git "a/01 \345\274\240\350\276\211/.keep" "b/01 \345\274\240\350\276\211/.keep" new file mode 100644 index 0000000..e69de29 -- Gitee From 45c0438cae8a5d79cd1ec2a49c5c7b23806485c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=BE=89?= <11764079+elrianode@user.noreply.gitee.com> Date: Wed, 6 Sep 2023 15:45:19 +0000 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 张辉 <11764079+elrianode@user.noreply.gitee.com> --- ...02\350\257\276\345\277\203\345\276\227.md" | 1 + .../20230906 SQL\350\257\255\345\217\245.sql" | 257 ++++++++++++++++++ ...345\205\263\347\263\273_ER\345\233\276.md" | 11 + .../20230906/ER\345\233\276.png" | Bin 0 -> 41751 bytes 4 files changed, 269 insertions(+) create mode 100644 "01 \345\274\240\350\276\211/20230905 \347\254\254\344\270\200\345\240\202\350\257\276\345\277\203\345\276\227.md" create mode 100644 "01 \345\274\240\350\276\211/20230906/20230906 SQL\350\257\255\345\217\245.sql" create mode 100644 "01 \345\274\240\350\276\211/20230906/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273_ER\345\233\276.md" create mode 100644 "01 \345\274\240\350\276\211/20230906/ER\345\233\276.png" diff --git "a/01 \345\274\240\350\276\211/20230905 \347\254\254\344\270\200\345\240\202\350\257\276\345\277\203\345\276\227.md" "b/01 \345\274\240\350\276\211/20230905 \347\254\254\344\270\200\345\240\202\350\257\276\345\277\203\345\276\227.md" new file mode 100644 index 0000000..fd36f36 --- /dev/null +++ "b/01 \345\274\240\350\276\211/20230905 \347\254\254\344\270\200\345\240\202\350\257\276\345\277\203\345\276\227.md" @@ -0,0 +1 @@ +脚踏实地,认真完成每一个目标,别再拖沓,保持自信 \ No newline at end of file diff --git "a/01 \345\274\240\350\276\211/20230906/20230906 SQL\350\257\255\345\217\245.sql" "b/01 \345\274\240\350\276\211/20230906/20230906 SQL\350\257\255\345\217\245.sql" new file mode 100644 index 0000000..88448d8 --- /dev/null +++ "b/01 \345\274\240\350\276\211/20230906/20230906 SQL\350\257\255\345\217\245.sql" @@ -0,0 +1,257 @@ +# 心得 + +```text + +``` + +# 代码 + +```mysql +SET NAMES utf8mb4; +SET FOREIGN_KEY_CHECKS = 0; + +-- Table structure for class + +DROP TABLE IF EXISTS `class`; +CREATE TABLE `class` ( + `cid` int(11) NOT NULL AUTO_INCREMENT, + `cName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `sid` int(11) NULL DEFAULT NULL, + `cr_id` int(11) NULL DEFAULT NULL, + PRIMARY KEY (`cid`) USING BTREE, + INDEX `sid`(`sid`) USING BTREE, + INDEX `cr_id`(`cr_id`) USING BTREE, + CONSTRAINT `class_ibfk_1` FOREIGN KEY (`sid`) REFERENCES `major` (`sid`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `class_ibfk_2` FOREIGN KEY (`cr_id`) REFERENCES `classroom` (`cr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC; + +-- Records of class + +-- ---------------------------- + +INSERT INTO `class` VALUES (1, '一班', 1, 1); +INSERT INTO `class` VALUES (2, '二班', 1, 2); +INSERT INTO `class` VALUES (3, '三班', 2, 3); +INSERT INTO `class` VALUES (4, '四班', 2, 4); +INSERT INTO `class` VALUES (5, '五班', 3, 1); +INSERT INTO `class` VALUES (6, '六班', 3, 2); + +-- ---------------------------- + +-- Table structure for classroom + +-- ---------------------------- + +DROP TABLE IF EXISTS `classroom`; +CREATE TABLE `classroom` ( + `cr_id` int(11) NOT NULL AUTO_INCREMENT, + `address` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`cr_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- + +-- Records of classroom + +-- ---------------------------- + +INSERT INTO `classroom` VALUES (1, '教室101'); +INSERT INTO `classroom` VALUES (2, '教室102'); +INSERT INTO `classroom` VALUES (3, '教室103'); +INSERT INTO `classroom` VALUES (4, '教室104'); + +-- ---------------------------- + +-- Table structure for course + +-- ---------------------------- + +DROP TABLE IF EXISTS `course`; +CREATE TABLE `course` ( + `cou_id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`cou_id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- + +-- Records of course + +-- ---------------------------- + +INSERT INTO `course` VALUES (1, '语文'); +INSERT INTO `course` VALUES (2, '数学'); +INSERT INTO `course` VALUES (3, '英语'); +INSERT INTO `course` VALUES (4, '计算机'); + +-- ---------------------------- + +-- Table structure for coursetable + +-- ---------------------------- + +DROP TABLE IF EXISTS `coursetable`; +CREATE TABLE `coursetable` ( + `ct_id` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `cr_id` int(11) NULL DEFAULT NULL, + PRIMARY KEY (`ct_id`) USING BTREE, + INDEX `cr_id`(`cr_id`) USING BTREE, + CONSTRAINT `coursetable_ibfk_1` FOREIGN KEY (`cr_id`) REFERENCES `classroom` (`cr_id`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- + +-- Records of coursetable + +-- ---------------------------- + +INSERT INTO `coursetable` VALUES (1, '语文', 1); +INSERT INTO `coursetable` VALUES (2, '数学', 2); +INSERT INTO `coursetable` VALUES (3, '英语', 3); +INSERT INTO `coursetable` VALUES (4, '计算机', 4); + +-- ---------------------------- + +-- Table structure for department + +-- ---------------------------- + +DROP TABLE IF EXISTS `department`; +CREATE TABLE `department` ( + `did` int(11) NOT NULL AUTO_INCREMENT, + `dName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`did`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- + +-- Records of department + +-- ---------------------------- + +INSERT INTO `department` VALUES (1, '软件工程学院'); + +-- ---------------------------- + +-- Table structure for major + +-- ---------------------------- + +DROP TABLE IF EXISTS `major`; +CREATE TABLE `major` ( + `sid` int(11) NOT NULL AUTO_INCREMENT, + `sName` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `did` int(11) NOT NULL, + PRIMARY KEY (`sid`) USING BTREE, + INDEX `did`(`did`) USING BTREE, + CONSTRAINT `major_ibfk_1` FOREIGN KEY (`did`) REFERENCES `department` (`did`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- + +-- Records of major + +-- ---------------------------- + +INSERT INTO `major` VALUES (1, '前端', 1); +INSERT INTO `major` VALUES (2, '后端', 1); +INSERT INTO `major` VALUES (3, '新媒体', 1); + +-- ---------------------------- + +-- Table structure for selectcourse + +-- ---------------------------- + +DROP TABLE IF EXISTS `selectcourse`; +CREATE TABLE `selectcourse` ( + `se_id` int(11) NOT NULL AUTO_INCREMENT, + `stu_id` int(11) NULL DEFAULT NULL, + `cou_id` int(11) NULL DEFAULT NULL, + PRIMARY KEY (`se_id`) USING BTREE, + INDEX `stu_id`(`stu_id`) USING BTREE, + INDEX `cou_id`(`cou_id`) USING BTREE, + CONSTRAINT `selectcourse_ibfk_1` FOREIGN KEY (`stu_id`) REFERENCES `student` (`stu_id`) ON DELETE RESTRICT ON UPDATE RESTRICT, + CONSTRAINT `selectcourse_ibfk_2` FOREIGN KEY (`cou_id`) REFERENCES `course` (`cou_id`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- + +-- Records of selectcourse + +-- ---------------------------- + +INSERT INTO `selectcourse` VALUES (1, 1, 1); +INSERT INTO `selectcourse` VALUES (2, 2, 2); +INSERT INTO `selectcourse` VALUES (3, 3, 3); +INSERT INTO `selectcourse` VALUES (4, 4, 4); +INSERT INTO `selectcourse` VALUES (5, 5, 1); +INSERT INTO `selectcourse` VALUES (6, 6, 2); + +-- ---------------------------- + +-- Table structure for student + +-- ---------------------------- + +DROP TABLE IF EXISTS `student`; +CREATE TABLE `student` ( + `stu_id` int(11) NOT NULL AUTO_INCREMENT, + `id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `cid` int(11) NULL DEFAULT NULL, + PRIMARY KEY (`stu_id`) USING BTREE, + INDEX `cid`(`cid`) USING BTREE, + CONSTRAINT `student_ibfk_1` FOREIGN KEY (`cid`) REFERENCES `class` (`cid`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- + +-- Records of student + +-- ---------------------------- + +INSERT INTO `student` VALUES (1, '1', '梦泪', 1); +INSERT INTO `student` VALUES (2, '2', '蜗壳', 2); +INSERT INTO `student` VALUES (3, '3', '杰鸽', 3); +INSERT INTO `student` VALUES (4, '4', '王毛毛', 4); +INSERT INTO `student` VALUES (5, '5', '郑绿灰', 5); +INSERT INTO `student` VALUES (6, '6', '郑蓝黑', 6); + +-- ---------------------------- + +-- Table structure for teacher + +-- ---------------------------- + +DROP TABLE IF EXISTS `teacher`; +CREATE TABLE `teacher` ( + `tid` int(11) NOT NULL AUTO_INCREMENT, + `name` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `cou_id` int(11) NULL DEFAULT NULL, + PRIMARY KEY (`tid`) USING BTREE, + INDEX `cou_id`(`cou_id`) USING BTREE, + CONSTRAINT `teacher_ibfk_1` FOREIGN KEY (`cou_id`) REFERENCES `course` (`cou_id`) ON DELETE RESTRICT ON UPDATE RESTRICT +) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = DYNAMIC; + +-- ---------------------------- + +-- Records of teacher + +-- ---------------------------- + +INSERT INTO `teacher` VALUES (1, '郑弘辉', 1); +INSERT INTO `teacher` VALUES (2, '陈姐', 2); +INSERT INTO `teacher` VALUES (3, '张飞', 3); +INSERT INTO `teacher` VALUES (4, '林吮吸', 4); + +SET FOREIGN_KEY_CHECKS = 1; +``` + +# 查询 + +```MySQL +select student.`name` as '学生姓名',class.cName AS '班级' from student,class where student.cid=class.cid and student.`name`='梦泪'; +``` + diff --git "a/01 \345\274\240\350\276\211/20230906/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273_ER\345\233\276.md" "b/01 \345\274\240\350\276\211/20230906/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273_ER\345\233\276.md" new file mode 100644 index 0000000..0662e72 --- /dev/null +++ "b/01 \345\274\240\350\276\211/20230906/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273_ER\345\233\276.md" @@ -0,0 +1,11 @@ +数据库设计——表之间的关系 + +1. 一对一:将其中任一表中的主键,放到另一个表当外键(一放一,任意) + +2. 一对多:将一所有的表的主键,放到多的表当外键(一放多) + +3. 多对多:必须新建第三张表,将前面两个表的主键放进来当外键 + + + +ER图:实体关系图 \ No newline at end of file diff --git "a/01 \345\274\240\350\276\211/20230906/ER\345\233\276.png" "b/01 \345\274\240\350\276\211/20230906/ER\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..b7b79d0b1b49c8ceadce6db725ac43d8b6ce9855 GIT binary patch literal 41751 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 Date: Wed, 6 Sep 2023 15:45:47 +0000 Subject: [PATCH 3/4] =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8D=2001=20?= =?UTF-8?q?=E5=BC=A0=E8=BE=89/20230906=20=E4=B8=BA=2001=20=E5=BC=A0?= =?UTF-8?q?=E8=BE=89/20230906=20=E8=A1=A8=E4=B9=8B=E9=97=B4=E7=9A=84?= =?UTF-8?q?=E5=85=B3=E7=B3=BBER=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../20230906 SQL\350\257\255\345\217\245.sql" | 0 ...2\204\345\205\263\347\263\273_ER\345\233\276.md" | 0 .../ER\345\233\276.png" | Bin 3 files changed, 0 insertions(+), 0 deletions(-) rename "01 \345\274\240\350\276\211/20230906/20230906 SQL\350\257\255\345\217\245.sql" => "01 \345\274\240\350\276\211/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273ER\345\233\276/20230906 SQL\350\257\255\345\217\245.sql" (100%) rename "01 \345\274\240\350\276\211/20230906/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273_ER\345\233\276.md" => "01 \345\274\240\350\276\211/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273ER\345\233\276/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273_ER\345\233\276.md" (100%) rename "01 \345\274\240\350\276\211/20230906/ER\345\233\276.png" => "01 \345\274\240\350\276\211/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273ER\345\233\276/ER\345\233\276.png" (100%) diff --git "a/01 \345\274\240\350\276\211/20230906/20230906 SQL\350\257\255\345\217\245.sql" "b/01 \345\274\240\350\276\211/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273ER\345\233\276/20230906 SQL\350\257\255\345\217\245.sql" similarity index 100% rename from "01 \345\274\240\350\276\211/20230906/20230906 SQL\350\257\255\345\217\245.sql" rename to "01 \345\274\240\350\276\211/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273ER\345\233\276/20230906 SQL\350\257\255\345\217\245.sql" diff --git "a/01 \345\274\240\350\276\211/20230906/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273_ER\345\233\276.md" "b/01 \345\274\240\350\276\211/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273ER\345\233\276/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273_ER\345\233\276.md" similarity index 100% rename from "01 \345\274\240\350\276\211/20230906/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273_ER\345\233\276.md" rename to "01 \345\274\240\350\276\211/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273ER\345\233\276/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273_ER\345\233\276.md" diff --git "a/01 \345\274\240\350\276\211/20230906/ER\345\233\276.png" "b/01 \345\274\240\350\276\211/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273ER\345\233\276/ER\345\233\276.png" similarity index 100% rename from "01 \345\274\240\350\276\211/20230906/ER\345\233\276.png" rename to "01 \345\274\240\350\276\211/20230906 \350\241\250\344\271\213\351\227\264\347\232\204\345\205\263\347\263\273ER\345\233\276/ER\345\233\276.png" -- Gitee From ee139b14ee101ee3a7b7e3848a47d261af0f2cdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=BE=89?= <11764079+elrianode@user.noreply.gitee.com> Date: Fri, 8 Sep 2023 03:46:08 +0000 Subject: [PATCH 4/4] =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 张辉 <11764079+elrianode@user.noreply.gitee.com> --- .../20230907 \350\214\203\345\274\217.md" | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 "01 \345\274\240\350\276\211/20230907 \350\214\203\345\274\217.md" diff --git "a/01 \345\274\240\350\276\211/20230907 \350\214\203\345\274\217.md" "b/01 \345\274\240\350\276\211/20230907 \350\214\203\345\274\217.md" new file mode 100644 index 0000000..70c6c4b --- /dev/null +++ "b/01 \345\274\240\350\276\211/20230907 \350\214\203\345\274\217.md" @@ -0,0 +1,7 @@ +# 笔记 + +数据库设计的三大范式(项目小偷懒用反范式) + +1. 第一范式:每个属性,也就是字段要求**不可再分割**,也就要求有原子性 +2. 第二范式:在满足第一范式的基础上,要求非主键字段要完全依赖主键(有联合主键时,非主键要同时完全依赖这两个主键,而不能部分依赖) +3. 第三范式:在满足第二范式的基础上,要求非主键字段要直接依赖于主键(建多个表) \ No newline at end of file -- Gitee