소스 검색

修复了部分文档和代码中的bug

jackfrued 6 년 전
부모
커밋
fe71d2781d
5개의 변경된 파일148개의 추가작업 그리고 44개의 파일을 삭제
  1. 1 2
      Day01-15/Day04/code/for1.py
  2. 1 0
      Day16-20/Python语言进阶.md
  3. 1 1
      Day36-40/code/SRS_create_and_init.sql
  4. 144 40
      Day36-40/code/学校选课系统.spf
  5. 1 1
      Day36-40/关系型数据库MySQL.md

+ 1 - 2
Day01-15/Day04/code/for1.py

@@ -8,6 +8,5 @@ Date: 2018-03-01
 
 sum = 0
 for x in range(1, 101):
-    if x % 2 == 0:
-        sum += x
+    sum += x
 print(sum)

+ 1 - 0
Day16-20/Python语言进阶.md

@@ -555,6 +555,7 @@
 
      ```Python
      from functools import wraps
+     from threading import Lock
      
      
      def singleton(cls):

+ 1 - 1
Day36-40/code/SRS_create_and_init.sql

@@ -216,7 +216,7 @@ select stuname as 姓名, year(now())-year(stubirth) as 年龄 from tb_student w
 );
 
 -- 查询选了两门以上的课程的学生姓名(子查询/分组条件/集合运算)
-select stuname from tb_student where stuid=(
+select stuname from tb_student where stuid in (
 	select stuid from tb_score group by stuid having count(stuid)>2
 )
 

+ 144 - 40
Day36-40/code/学校选课系统.spf

@@ -10,8 +10,6 @@
 	<dict>
 		<key>connection</key>
 		<dict>
-			<key>database</key>
-			<string>school</string>
 			<key>host</key>
 			<string>120.77.222.217</string>
 			<key>kcid</key>
@@ -47,22 +45,17 @@
 			<integer>1</integer>
 			<key>contentSelection</key>
 			<data>
-			YnBsaXN0MDDUAQIDBAUGOTpYJHZlcnNpb25YJG9iamVjdHNZJGFy
-			Y2hpdmVyVCR0b3ASAAGGoK0HCBUWFxgZHSQoLDE2VSRudWxs0wkK
-			CwwQFFdOUy5rZXlzWk5TLm9iamVjdHNWJGNsYXNzow0OD4ACgAOA
-			BKMREhOABYAGgAiADFR0eXBlVHJvd3NUa2V5c18QJlNlbGVjdGlv
-			bkRldGFpbFR5cGVQcmltYXJ5S2V5ZWREZXRhaWxz0wkKCxobHKCg
-			gAfSHh8gIVokY2xhc3NuYW1lWCRjbGFzc2VzXxATTlNNdXRhYmxl
-			RGljdGlvbmFyeaMgIiNcTlNEaWN0aW9uYXJ5WE5TT2JqZWN00goL
-			JSehJoAJgAvSCykqK1lOUy5zdHJpbmeAClRzY2lk0h4fLS5fEA9O
-			U011dGFibGVTdHJpbmejLS8wWE5TU3RyaW5nWE5TT2JqZWN00h4f
-			MjNeTlNNdXRhYmxlQXJyYXmjMjQ1V05TQXJyYXlYTlNPYmplY3TS
-			Hh8iN6IiOFhOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZlctE7PFRk
-			YXRhgAEACAARABoAIwAtADIANwBFAEsAUgBaAGUAbABwAHIAdAB2
-			AHoAfAB+AIAAggCHAIwAkQC6AMEAwgDDAMUAygDVAN4A9AD4AQUB
-			DgETARUBFwEZAR4BKAEqAS8BNAFGAUoBUwFcAWEBcAF0AXwBhQGK
-			AY0BlgGoAasBsAAAAAAAAAIBAAAAAAAAAD0AAAAAAAAAAAAAAAAA
-			AAGy
+			YnBsaXN0MDDUAQIDBAUGJSZYJHZlcnNpb25YJG9iamVjdHNZJGFy
+			Y2hpdmVyVCR0b3ASAAGGoKgHCBMUFRYaIVUkbnVsbNMJCgsMDxJX
+			TlMua2V5c1pOUy5vYmplY3RzViRjbGFzc6INDoACgAOiEBGABIAF
+			gAdUdHlwZVRyb3dzXxAdU2VsZWN0aW9uRGV0YWlsVHlwZU5TSW5k
+			ZXhTZXTSFwsYGVxOU1JhbmdlQ291bnQQAIAG0hscHR5aJGNsYXNz
+			bmFtZVgkY2xhc3Nlc1pOU0luZGV4U2V0oh8gWk5TSW5kZXhTZXRY
+			TlNPYmplY3TSGxwiI1xOU0RpY3Rpb25hcnmiIiRYTlNPYmplY3Rf
+			EA9OU0tleWVkQXJjaGl2ZXLRJyhUZGF0YYABAAgAEQAaACMALQAy
+			ADcAQABGAE0AVQBgAGcAagBsAG4AcQBzAHUAdwB8AIEAoQCmALMA
+			tQC3ALwAxwDQANsA3gDpAPIA9wEEAQcBEAEiASUBKgAAAAAAAAIB
+			AAAAAAAAACkAAAAAAAAAAAAAAAAAAAEs
 			</data>
 			<key>contentSortColIsAsc</key>
 			<true/>
@@ -289,7 +282,7 @@ select stuname as 姓名, year(now())-year(stubirth) as 年龄 from tb_student w
 );
 
 -- 查询选了两门以上的课程的学生姓名(子查询/分组条件/集合运算)
-select stuname from tb_student where stuid=(
+explain select stuname from tb_student where stuid in (
 	select stuid from tb_score group by stuid having count(stuid)&gt;2
 )
 
@@ -314,8 +307,6 @@ select stuname, avgmark from tb_student t1 inner join
 -- 查询每个学生的姓名和选课数量(左外连接和子查询)
 select stuname, ifnull(total, 0) from tb_student t1 left outer join (select stuid, count(stuid) as total from tb_score group by stuid) t2 on t1.stuid=t2.stuid;
 </string>
-			<key>table</key>
-			<string>tb_score</string>
 			<key>view</key>
 			<string>SP_VIEW_CUSTOMQUERY</string>
 			<key>windowVerticalDividerPosition</key>
@@ -330,6 +321,137 @@ select stuname, ifnull(total, 0) from tb_student t1 left outer join (select stui
 	<array/>
 	<key>queryHistory</key>
 	<array>
+		<string>-- 查询选了两门以上的课程的学生姓名(子查询/分组条件/集合运算)
+explain select stuname from tb_student where stuid=any(
+	select stuid from tb_score group by stuid having count(stuid)&gt;2
+)</string>
+		<string>explain select stuname from tb_student where stuid in (
+	select stuid from tb_score group by stuid having count(stuid)&gt;2
+)</string>
+		<string>select stuname from tb_student where stuid in (
+	select stuid from tb_score group by stuid having count(stuid)&gt;2
+)</string>
+		<string>select stuname from tb_student where stuid=(
+	select stuid from tb_score group by stuid having count(stuid)&gt;2
+)</string>
+		<string>-- 如果存在名为school的数据库就删除它
+drop database if exists school;
+-- 创建名为school的数据库并设置默认的字符集和排序方式
+create database school default charset utf8 collate utf8_bin;
+-- 切换到school数据库上下文环境
+use school;
+-- 创建学院表
+create table tb_college
+(
+collid int not null auto_increment comment '编号',
+collname varchar(50) not null comment '名称',
+collmaster varchar(20) not null comment '院长',
+collweb varchar(511) default '' comment '网站',
+primary key (collid)
+);
+-- 创建学生表
+create table tb_student
+(
+stuid int not null comment '学号',
+stuname varchar(20) not null comment '姓名',
+stusex bit default 1 comment '性别',
+stubirth date not null comment '出生日期',
+stuaddr varchar(255) default '' comment '籍贯',
+collid int not null comment '所属学院',
+primary key (stuid),
+foreign key (collid) references tb_college (collid)
+);
+-- alter table tb_student add constraint fk_student_collid foreign key (collid) references tb_college (collid);
+
+-- 创建教师表
+create table tb_teacher
+(
+teaid int not null comment '工号',
+teaname varchar(20) not null comment '姓名',
+teatitle varchar(10) default '助教' comment '职称',
+collid int not null comment '所属学院',
+primary key (teaid),
+foreign key (collid) references tb_college (collid)
+);
+-- 创建课程表
+create table tb_course
+(
+couid int not null comment '编号',
+couname varchar(50) not null comment '名称',
+coucredit int not null comment '学分',
+teaid int not null comment '授课老师',
+primary key (couid),
+foreign key (teaid) references tb_teacher (teaid)
+);
+-- 创建选课记录表
+create table tb_score
+(
+scid int auto_increment comment '选课记录编号',
+stuid int not null comment '选课学生',
+couid int not null comment '所选课程',
+scdate datetime comment '选课时间日期',
+scmark decimal(4,1) comment '考试成绩',
+primary key (scid),
+foreign key (stuid) references tb_student (stuid),
+foreign key (couid) references tb_course (couid)
+);
+-- 添加唯一性约束(一个学生选某个课程只能选一次)
+alter table tb_score add constraint uni_score_stuid_couid unique (stuid, couid);
+-- 插入学院数据
+insert into tb_college (collname, collmaster, collweb) values 
+('计算机学院', '左冷禅', 'http://www.abc.com'),
+('外国语学院', '岳不群', 'http://www.xyz.com'),
+('经济管理学院', '风清扬', 'http://www.foo.com');
+-- 插入学生数据
+insert into tb_student (stuid, stuname, stusex, stubirth, stuaddr, collid) values
+(1001, '杨逍', 1, '1990-3-4', '四川成都', 1),
+(1002, '任我行', 1, '1992-2-2', '湖南长沙', 1),
+(1033, '王语嫣', 0, '1989-12-3', '四川成都', 1),
+(1572, '岳不群', 1, '1993-7-19', '陕西咸阳', 1),
+(1378, '纪嫣然', 0, '1995-8-12', '四川绵阳', 1),
+(1954, '林平之', 1, '1994-9-20', '福建莆田', 1),
+(2035, '东方不败', 1, '1988-6-30', null, 2),
+(3011, '林震南', 1, '1985-12-12', '福建莆田', 3),
+(3755, '项少龙', 1, '1993-1-25', null, 3),
+(3923, '杨不悔', 0, '1985-4-17', '四川成都', 3);
+-- 插入老师数据
+insert into tb_teacher (teaid, teaname, teatitle, collid) values 
+(1122, '张三丰', '教授', 1),
+(1133, '宋远桥', '副教授', 1),
+(1144, '杨逍', '副教授', 1),
+(2255, '范遥', '副教授', 2),
+(3366, '韦一笑', '讲师', 3);
+-- 插入课程数据
+insert into tb_course (couid, couname, coucredit, teaid) values 
+(1111, 'Python程序设计', 3, 1122),
+(2222, 'Web前端开发', 2, 1122),
+(3333, '操作系统', 4, 1122),
+(4444, '计算机网络', 2, 1133),
+(5555, '编译原理', 4, 1144),
+(6666, '算法和数据结构', 3, 1144),
+(7777, '经贸法语', 3, 2255),
+(8888, '成本会计', 2, 3366),
+(9999, '审计学', 3, 3366);
+-- 插入选课数据
+insert into tb_score (stuid, couid, scdate, scmark) values 
+(1001, 1111, '2017-09-01', 95),
+(1001, 2222, '2017-09-01', 87.5),
+(1001, 3333, '2017-09-01', 100),
+(1001, 4444, '2018-09-03', null),
+(1001, 6666, '2017-09-02', 100),
+(1002, 1111, '2017-09-03', 65),
+(1002, 5555, '2017-09-01', 42),
+(1033, 1111, '2017-09-03', 92.5),
+(1033, 4444, '2017-09-01', 78),
+(1033, 5555, '2017-09-01', 82.5),
+(1572, 1111, '2017-09-02', 78),
+(1378, 1111, '2017-09-05', 82),
+(1378, 7777, '2017-09-02', 65.5),
+(2035, 7777, '2018-09-03', 88),
+(2035, 9999, curdate(), null),
+(3755, 1111, date(now()), null),
+(3755, 8888, date(now()), null),
+(3755, 9999, '2017-09-01', 92)</string>
 		<string>select stuname, couname, scmark from tb_student t1 inner join tb_score t3 on t1.stuid=t3.stuid inner join tb_course t2 on t2.couid=t3.couid where scmark is not null order by scmark desc limit 5 offset 10</string>
 		<string>select stuname, couname, scmark from tb_student t1 inner join tb_score t3 on t1.stuid=t3.stuid inner join tb_course t2 on t2.couid=t3.couid where scmark is not null order by scmark desc limit 10, 5</string>
 		<string>select stuname, couname, scmark from tb_student t1 inner join tb_score t3 on t1.stuid=t3.stuid inner join tb_course t2 on t2.couid=t3.couid where scmark is not null order by scmark desc limit 5, 5</string>
@@ -347,29 +469,11 @@ select stuname, couname, scmark from tb_student t1, tb_course t2, tb_score t3 wh
 		<string>select stuname, avgmark from tb_student t1, (select stuid, avg(scmark) as avgmark from tb_score group by stuid) t2 where t1.stuid=t2.stuid</string>
 		<string>select stuname, ifnull(total, 0) from tb_student t1 left outer join (select stuid, count(stuid) as total from tb_score group by stuid) t2 on t1.stuid=t2.stuid</string>
 		<string>select stuname, ifnull(total,0) from tb_student t1 left outer join (select stuid, count(stuid) as total from tb_score group by stuid) t2 on t1.stuid=t2.stuid</string>
-		<string>-- 查询选了两门以上的课程的学生姓名(子查询/分组条件/集合运算)
-select stuname from tb_student where stuid=(
-	select stuid from tb_score group by stuid having count(stuid)&gt;2
-)
-
--- 查询学生姓名、课程名称以及成绩(连接查询)
-
--- 查询选课学生的姓名和平均成绩(子查询和连接查询)
-
--- 外连接(outer join):左外连接 / 右外连接 / 全外连接
--- 查询每个学生的姓名和选课数量(左外连接和子查询)
-select stuname, ifnull(total, 0) from tb_student t1 left outer join (select stuid, count(stuid) as total from tb_score group by stuid) t2 on t1.stuid=t2.stuid</string>
-		<string>select stuname, total from tb_student t1 left outer join 
-(select stuid, count(stuid) as total from tb_score group by stuid) t2 on t1.stuid=t2.stuid</string>
-		<string>select stuname, total from tb_student t1 inner join 
-(select stuid, count(stuid) as total from tb_score group by stuid) t2 on t1.stuid=t2.stuid</string>
-		<string>select stuid, count(stuid) from tb_score group by stuid</string>
-		<string>select stuname, couname, scmark from tb_student t1 inner join tb_score t3 on t1.stuid=t3.stuid inner join tb_course t2 on t2.couid=t3.couid</string>
 	</array>
 	<key>rdbms_type</key>
 	<string>mysql</string>
 	<key>rdbms_version</key>
-	<string>5.5.60-MariaDB</string>
+	<string>5.7.26</string>
 	<key>version</key>
 	<integer>1</integer>
 </dict>

+ 1 - 1
Day36-40/关系型数据库MySQL.md

@@ -401,7 +401,7 @@
    );
    
    -- 查询选了两门以上的课程的学生姓名(子查询/分组条件/集合运算)
-   select stuname from tb_student where stuid=(
+   select stuname from tb_student where stuid in (
    	select stuid from tb_score group by stuid having count(stuid)>2
    )