From 46651f8de4ab66537ce254ea9b367625947dbd24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=96=87=E8=BE=89?= <14279272+yuwuchuji_0@user.noreply.gitee.com> Date: Mon, 21 Oct 2024 01:31:34 +0000 Subject: [PATCH 01/12] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20?= =?UTF-8?q?=E5=88=98=E6=96=87=E8=BE=89/=E8=A7=86=E5=9B=BE-2024-09-20.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../\350\247\206\345\233\276-2024-09-20.md" | 146 ------------------ 1 file changed, 146 deletions(-) delete mode 100644 "\345\210\230\346\226\207\350\276\211/\350\247\206\345\233\276-2024-09-20.md" diff --git "a/\345\210\230\346\226\207\350\276\211/\350\247\206\345\233\276-2024-09-20.md" "b/\345\210\230\346\226\207\350\276\211/\350\247\206\345\233\276-2024-09-20.md" deleted file mode 100644 index e21e472..0000000 --- "a/\345\210\230\346\226\207\350\276\211/\350\247\206\345\233\276-2024-09-20.md" +++ /dev/null @@ -1,146 +0,0 @@ -# 视图 - -## 1.解析 - -### 需求表代码 - -```sql --- 准备数据 -create database if not exists db_view; -use db_view; - -# 部门表 -create table dept( - deptno int primary key, - dname varchar(20), - loc varchar(20) -); -insert into dept values(10, '教研部','北京'), -(20, '学工部','上海'), -(30, '销售部','广州'), -(40, '财务部','武汉'); - -# 员工表 -create table emp( - empno int primary key, - ename varchar(20), - job varchar(20), - mgr int, - hiredate date, - sal numeric(8,2), - comm numeric(8, 2), - deptno int, --- FOREIGN KEY (mgr) REFERENCES emp(empno), - FOREIGN KEY (deptno) REFERENCES dept(deptno) ON DELETE SET NULL ON UPDATE CASCADE -); -insert into emp values -(1001, '甘宁', '文员', 1013, '2000-12-17', 8000.00, null, 20), -(1002, '黛绮丝', '销售员', 1006, '2001-02-20', 16000.00, 3000.00, 30), -(1003, '殷天正', '销售员', 1006, '2001-02-22', 12500.00, 5000.00, 30), -(1004, '刘备', '经理', 1009, '2001-4-02', 29750.00, null, 20), -(1005, '谢逊', '销售员', 1006, '2001-9-28', 12500.00, 14000.00, 30), -(1006, '关羽', '经理', 1009, '2001-05-01', 28500.00, null, 30), -(1007, '张飞', '经理', 1009, '2001-09-01', 24500.00, null, 10), -(1008, '诸葛亮', '分析师', 1004, '2007-04-19', 30000.00, null, 20), -(1009, '曾阿牛', '董事长', null, '2001-11-17', 50000.00, null, 10), -(1010, '韦一笑', '销售员', 1006, '2001-09-08', 15000.00, 0.00, 30), -(1011, '周泰', '文员', 1008, '2007-05-23', 11000.00, null, 20), -(1012, '程普', '文员', 1006, '2001-12-03', 9500.00, null, 30), -(1013, '庞统', '分析师', 1004, '2001-12-03', 30000.00, null, 20), -(1014, '黄盖', '文员', 1007, '2002-01-23', 13000.00, null, 10); - -# 工资等级表 -create table salgrade( - grade int primary key, - losal int, - hisal int -); -insert into salgrade values -(1, 7000, 12000), -(2, 12010, 14000), -(3, 14010, 20000), -(4, 20010, 30000), -(5, 30010, 99990); -``` - -### 要求 - --- 视图课堂练习 -1. 创建一个视图,显示所有部门的名称以及属于该部门的员工姓名 -2. 创建一个视图,显示员工姓名、职位、薪水和佣金。 -3. 创建一个视图,显示所有薪水大于 20000 的员工姓名、职位和薪水。 -4. 创建按部门分类的员工数量视图 -5. 创建一个视图,显示员工姓名、薪水及其所属的薪资等级。 -6. 创建一个视图,显示每个经理及其直接下属员工的姓名。 -7. 创建一个视图,显示每个部门的名称及其平均薪水。 -8. 创建一个视图,显示在 2001 年以后入职的员工姓名和入职日期。 -9. 删除一个已创建的视图。 -10. 修改第一个视图的名称 -11. 修改第二个视图,显示员工姓名、职位、部门。 - --- 作业 - -## 2.代码 - --- 作业 --- 1:查询部门平均薪水最高的部门名称 - -```sql -SELECT dn.dname FROM dept dn -JOIN (SELECT deptno, AVG(sal) AS avg_sal FROM emp GROUP BY deptno ORDER BY avg_sal DESC LIMIT 1) em ON dn.deptno = em.deptno; -``` - --- 2:查询员工比所属领导薪资高的部门名、员工名、员工领导编号 - -```sql -SELECT dn.dname, em.ename, em.mgr FROM emp em -JOIN dept dn ON em.deptno = dn.deptno WHERE em.sal > (SELECT sal FROM emp WHERE empno = em.mgr); -``` - --- 3:查询工资等级为4级,2000年以后入职的工作地点为上海的员工编号、姓名和工资 - -```sql -SELECT em.empno, em.ename, em.sal FROM emp em -JOIN dept de ON em.deptno = de.deptno -JOIN salgrade sa ON em.sal BETWEEN sa.losal AND sa.hisal -WHERE sa.grade = 4 AND YEAR(em.hiredate) > 2000 AND de.loc = '上海'; -``` - - - -## 3.末尾 - -### 视图创建 - -```sql -create view [视图] as [select 语句]; -``` - -### 视图修改 - -名称 - -```sql -rename table [视图名称] to [新名称]; -``` - -结构 - -```sql -create or replace view as [select 语句]; -``` - -```sql -after table [视图] as [select 语句]; -``` - -数据 - -​ 含组合分类(group by),集合(union),聚合函数,常量...不可更改 - -删除 - -```sql -drop view 视图; -``` - -- Gitee From 750cfed07567b7194d875671d47a662cbbce2d0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=96=87=E8=BE=89?= <14279272+yuwuchuji_0@user.noreply.gitee.com> Date: Mon, 21 Oct 2024 01:31:58 +0000 Subject: [PATCH 02/12] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 刘文辉 <14279272+yuwuchuji_0@user.noreply.gitee.com> --- .../\350\247\206\345\233\276-2024-09-20.md" | 174 ++++++++++++++++++ 1 file changed, 174 insertions(+) create mode 100644 "\345\210\230\346\226\207\350\276\211/\350\247\206\345\233\276-2024-09-20.md" diff --git "a/\345\210\230\346\226\207\350\276\211/\350\247\206\345\233\276-2024-09-20.md" "b/\345\210\230\346\226\207\350\276\211/\350\247\206\345\233\276-2024-09-20.md" new file mode 100644 index 0000000..6becb89 --- /dev/null +++ "b/\345\210\230\346\226\207\350\276\211/\350\247\206\345\233\276-2024-09-20.md" @@ -0,0 +1,174 @@ +# 视图 + +## 1.分析 + +### 需求 + +```sql +-- 视图课堂练习 + +创建一个视图,显示所有部门的名称以及属于该部门的员工姓名 +创建一个视图,显示员工姓名、职位、薪水和佣金。 +创建一个视图,显示所有薪水大于 20000 的员工姓名、职位和薪水。 +创建按部门分类的员工数量视图 +创建一个视图,显示员工姓名、薪水及其所属的薪资等级。 +创建一个视图,显示每个经理及其直接下属员工的姓名。 +创建一个视图,显示每个部门的名称及其平均薪水。 +创建一个视图,显示在 2001 年以后入职的员工姓名和入职日期。 +删除一个已创建的视图。 +修改第一个视图的名称 +修改第二个视图,显示员工姓名、职位、部门。 + +-- 作业 +-- 1:查询部门平均薪水最高的部门名称 +-- 2:查询员工比所属领导薪资高的部门名、员工名、员工领导编号 +-- 3:查询工资等级为4级,2000年以后入职的工作地点为上海的员工编号、姓名和工资 +``` + +### 数据来源 + +``` +-- 准备数据 +create database if not exists db_view; +use db_view; + +# 部门表 +create table dept( + deptno int primary key, + dname varchar(20), + loc varchar(20) +); +insert into dept values(10, '教研部','北京'), +(20, '学工部','上海'), +(30, '销售部','广州'), +(40, '财务部','武汉'); + +# 员工表 +create table emp( + empno int primary key, + ename varchar(20), + job varchar(20), + mgr int, + hiredate date, + sal numeric(8,2), + comm numeric(8, 2), + deptno int, +-- FOREIGN KEY (mgr) REFERENCES emp(empno), + FOREIGN KEY (deptno) REFERENCES dept(deptno) ON DELETE SET NULL ON UPDATE CASCADE +); +insert into emp values +(1001, '甘宁', '文员', 1013, '2000-12-17', 8000.00, null, 20), +(1002, '黛绮丝', '销售员', 1006, '2001-02-20', 16000.00, 3000.00, 30), +(1003, '殷天正', '销售员', 1006, '2001-02-22', 12500.00, 5000.00, 30), +(1004, '刘备', '经理', 1009, '2001-4-02', 29750.00, null, 20), +(1005, '谢逊', '销售员', 1006, '2001-9-28', 12500.00, 14000.00, 30), +(1006, '关羽', '经理', 1009, '2001-05-01', 28500.00, null, 30), +(1007, '张飞', '经理', 1009, '2001-09-01', 24500.00, null, 10), +(1008, '诸葛亮', '分析师', 1004, '2007-04-19', 30000.00, null, 20), +(1009, '曾阿牛', '董事长', null, '2001-11-17', 50000.00, null, 10), +(1010, '韦一笑', '销售员', 1006, '2001-09-08', 15000.00, 0.00, 30), +(1011, '周泰', '文员', 1008, '2007-05-23', 11000.00, null, 20), +(1012, '程普', '文员', 1006, '2001-12-03', 9500.00, null, 30), +(1013, '庞统', '分析师', 1004, '2001-12-03', 30000.00, null, 20), +(1014, '黄盖', '文员', 1007, '2002-01-23', 13000.00, null, 10); + +# 工资等级表 +create table salgrade( + grade int primary key, + losal int, + hisal int +); +insert into salgrade values +(1, 7000, 12000), +(2, 12010, 14000), +(3, 14010, 20000), +(4, 20010, 30000), +(5, 30010, 99990); +``` + +## 2.SQL + +### 任务I + +```sql +-- 视图课堂练习 + +1.创建一个视图,显示所有部门的名称以及属于该部门的员工姓名 +create view v_name as select dname,ename from dept d left join emp e on e.deptno=d.deptno; +2.创建一个视图,显示员工姓名、职位、薪水和佣金。 +create view v_emp as select ename,job,sal,comm from emp; +3.创建一个视图,显示所有薪水大于 20000 的员工姓名、职位和薪水。 +create view v_sal_20000 as select ename,job,sal from emp where sal > 20000; +4.创建按部门分类的员工数量视图 +create view v_na_num as select deptno,count(1) from emp group by deptno; select d.dname 部门,count(e.empno) 员工数量 from emp e right join dept d on e.deptno =d.deptno group by d.deptno; +5.创建一个视图,显示员工姓名、薪水及其所属的薪资等级。 +create view v_na_sa as select ename 员工姓名, sal 薪水, grade 薪资等级 from emp e join salgrade s on e.sal between s.losal and hisal; +6.创建一个视图,显示每个经理及其直接下属员工的姓名。 +create view v_mgr as select manager.ename,employee.ename from emp manager join emp employee on manager.empno=employee.mgr where manager.job = '经理'; +7.创建一个视图,显示每个部门的名称及其平均薪水。 +create view v_sal as select d.deptno,avg(e.sal) from dept d left join emp e on d.deptno = e.deptno group by d.deptno; +8.创建一个视图,显示在 2001 年以后入职的员工姓名和入职日期。 +create view v_2001 as create or replace view v_t as select ename,hiredate from emp where hiredate>='2001-01-01'; +9.删除一个已创建的视图。 +drop view v_name; +10.修改第一个视图的名称 +rename table v_name to v_t1; +11.修改第二个视图,显示员工姓名、职位、部门。 +create or replace view v_emp as select ename,job,dname from emp e,dept d where e.deptno=d.deptno; + +show full tables where table_type ='VIEW'; +``` + +### 任务II + +```sql +-- 作业 +-- 1:查询部门平均薪水最高的部门名称 +SELECT dn.dname FROM dept dn +JOIN (SELECT deptno, AVG(sal) AS avg_sal FROM emp GROUP BY deptno ORDER BY avg_sal DESC LIMIT 1) em ON dn.deptno = em.deptno; +-- 2:查询员工比所属领导薪资高的部门名、员工名、员工领导编号 +SELECT dn.dname, em.ename, em.mgr FROM emp em +JOIN dept dn ON em.deptno = dn.deptno WHERE em.sal > (SELECT sal FROM emp WHERE empno = em.mgr); +-- 3:查询工资等级为4级,2000年以后入职的工作地点为上海的员工编号、姓名和工资 +SELECT em.empno, em.ename, em.sal FROM emp em +JOIN dept de ON em.deptno = de.deptno +JOIN salgrade sa ON em.sal BETWEEN sa.losal AND sa.hisal +WHERE sa.grade = 4 AND YEAR(em.hiredate) > 2000 AND de.loc = '上海'; +``` + +## 3.末尾 + +### 视图创建 + +``` +create view [视图] as [select 语句]; +``` + +## 视图修改 + +#### 名称 + +``` +rename table [视图名称] to [新名称]; +``` + +#### 结构 + +``` +create or replace view as [select 语句]; +after table [视图] as [select 语句]; +``` + +#### 数据 + + 含组合分类(group by),集合(union),聚合函数,常量...不可更改 + +#### 删除 + +``` +drop view 视图; +``` + + + +一切为了更好的就业---Lyy \ No newline at end of file -- Gitee From e10c5e8e7c7e78197afc41a101a8a972ea05d3a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=96=87=E8=BE=89?= <14279272+yuwuchuji_0@user.noreply.gitee.com> Date: Mon, 21 Oct 2024 01:41:27 +0000 Subject: [PATCH 03/12] =?UTF-8?q?=E5=A4=8D=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 刘文辉 <14279272+yuwuchuji_0@user.noreply.gitee.com> --- ...210\347\273\203\344\271\240-2024-10-21.md" | 201 ++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 "\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" diff --git "a/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" "b/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" new file mode 100644 index 0000000..bf9ce82 --- /dev/null +++ "b/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" @@ -0,0 +1,201 @@ +# 综合练习 + +## 1.分析 + +### 需求 + +```sql +综合题(第1大题40分,第2大题30分,共70分) + + +1. 利用另外一个文件`initDb.sql`,完成以下题目: + + 1.1. (10分) 对学生姓名创建普通索引(`idx_StudentName`) + 1.2. (10分) 创建视图`V_StudentHobbyInfo`,其中包含姓名(`StudentName`),爱好(`Hobby`),特长(`Specility`)列,并分别取别名为`vw_StudentName`,`vw_Hoppy`,`vw_Speclitiy + 1.4. (5分) 查询学生`马又云`的生源地,要求显示:姓名(`StudentNameame`),生源地(`OriginPosition`) + 1.5. (5分) 查询学生表(`StudentInfo`)中还未还书的读者的学号(`StudentCode`)和姓名(`StudentName`),以及借书时间(`BorrowTime`) + 1.6. (5分) 查询借阅过书籍《射雕英雄传》的学生,要求显示:学生姓名(`StudentName`),学院(`School`),图书名(`BookName`),借阅时间(`BorrowTime`) + +2. (30分)某医院病房计算机管理中心需要如下信息: + +``` + 科室:科编号、科名、科地址、科电话、医生姓名 + 病房:病房号、床位号、所属科室名 + 医生:姓名、职称、所属科室名、年龄、工作证号 + 病人:病历号、姓名、性别、诊断、主治医生、病房号 + ``` + + 2.1. (10分)其中,一个科室有多个病房、多个医生;一个病房只能属于一个科室,一名医生只属于一个科室,但可负责多名病人的诊治,一个病人的主主治生只有一个。科编号是标识列,从1开始自增长,步进值为1,医生职称有:实习,初级,中级,高级。 + 请设计该表关系模式结构(数据库物理模型),要求: + + + a. 中文名和英文名称清晰(可借助有道翻译工具,不允许开网页) + b. 表关系准确,包括主键,外键,标识列 + c. 将完成的设计截图,并且保存物理模型文件,命名为恰当的名称 + d. 将截图和物理模型文件放在自己的文件夹中 + + 2.2. (10分)创建存储过程实现:传入病历号,查询其对应的主治医生及其所在的病房号、床位号。 + 2.3. (10分)创建触发器实现:当医生离职时,检查其是否还有未完成医治的病人,如果还存在病人则不予离职,否则可以离职。 + ``` + +### 数据来源 + +```sql +-- `initDb.sql`内容 +drop database if exists LibraryDb; +create database if not exists LibraryDb; +use LibraryDb; + +/* + 学生表 +*/ +CREATE TABLE Student ( + StudentCode varchar(8) primary key, -- 学号 + StudentName varchar(20) NOT NULL, -- 姓名 + Gender int DEFAULT NULL, -- 性别 + Birthday date DEFAULT NULL, -- 出生年月 + School varchar(20) DEFAULT NULL, -- 学院 + Major varchar(20) DEFAULT NULL -- 专业 +); + + +/* + 学生扩展信息表 +*/ +CREATE TABLE StudentExtInfo( + StudentCode varchar(8) primary key , -- 学号 + Hobby varchar(120) DEFAULT NULL, -- 爱好 + Speciality varchar(120) DEFAULT NULL, -- 特长 + OriginPosition varchar(16) DEFAULT NULL, -- 生源地 + Prize int DEFAULT NULL -- 荣誉数 +); + + + +/* + 图书信息表 +*/ +CREATE TABLE BookInfo ( + ISBN varchar(13) primary key, -- ISBN + BookName varchar(32) DEFAULT NULL, -- 图书名 + Author varchar(32) DEFAULT NULL, -- 作者 + Publishing varchar(32) DEFAULT NULL, -- 出版社 + PublishedTime date DEFAULT NULL, -- 出版时间 + Introduce varchar(200) DEFAULT NULL, -- 书籍简介 + Catery varchar(8) DEFAULT NULL, -- 书籍分类 + Price decimal(10,2) DEFAULT NULL -- 书籍价格 +); + + + +/* + 图书类别表 +*/ +CREATE TABLE BookExtInfo( + Barcode varchar(9) primary key, -- barcode + ISBN varchar(13) , -- ISBN + BookStatus bit default null -- 状态 +); + + +/* + 学生借阅信息 +*/ +CREATE TABLE BorrowRecord( + Id int primary key , -- 借阅id + StudentCode varchar(8) , -- 学号 + Barcode varchar(9) , -- barcode + BorrowTime datetime DEFAULT NULL, -- 借书时间 + ReturnTime datetime DEFAULT NULL -- 还书时间 +); + + +insert into Student values('16100101','马诗',1,'1998-03-16','理学院','统计'); +insert into Student values('16130201','博文',0,'1998-04-24','信息学院','计算机科学与技术'); +insert into Student values('16130203','魏波',1,'1998-10-29','信息学院','计算机科学与技术'); +insert into Student values('16130205','黄弘',1,'1998-08-06','信息学院','数据科学与大数据技术'); +insert into Student values('17100104','易高明',0,'1999-05-29','理学院','信息与计算科学'); +insert into Student values('17100105','万承承',0,'1999-09-11','理学院','信息与计算科学'); +insert into Student values('17110101','黄弘',0,'2000-07-25','文法学院','法学'); +insert into Student values('17130202','邹睿睿',1,'1998-06-29','信息学院','计算机科学与技术'); +insert into Student values('17130204','马又云',1,'1999-03-27','信息学院','数据科学与大数据技术'); +insert into Student values('18100103','邓承明',1,'2000-07-25','理学院','信息与计算科学'); + + +insert into StudentExtInfo values('16100101','听音乐','艺术特长','北京',2); +insert into StudentExtInfo values('16130201','看小说',null,'湖南',3); +insert into StudentExtInfo values('16130203','硬笔书法','艺术特长','新疆',1); +insert into StudentExtInfo values('16130205','听音乐','艺术特长','北京',2); +insert into StudentExtInfo values('17100104','打篮球',null,'北京',3); +insert into StudentExtInfo values('17100105','编程','科技特长','北京',2); +insert into StudentExtInfo values('17110101','打篮球','科技特长','河北',2); +insert into StudentExtInfo values('17130202','编程','科技特长','天津',3); +insert into StudentExtInfo values('17130204','看电影',null,'北京',1); +insert into StudentExtInfo values('18100103',null,null,'河南',null); + + +insert into BookInfo values('7040409659','大学计算机','李凤霞','高等教育出版社','2014-10-21','教育部大学计算机课程改革项目规划教材','TP',28); +insert into BookInfo values('7301046065','刑法学','高明轩','北京大学出版社','2000-10-21','刑法_法学高等学校中国教材','O',69); +insert into BookInfo values('7806553312','射雕英雄传','金庸','广州出版社','2018-10-21','金庸作品集','I',67.9); +insert into BookInfo values('9788020002207','红楼梦','曹雪芹','人民文学出版社','2008-10-21','学术研究或个人阅读都非常合适','I',31.25); +insert into BookInfo values('9787113254100','Python语言及其应用','赵广辉','中国铁道出版社','2019-10-21','本书介绍Python语言的基础知识及其在各个领域的具体应用','TP',62.2); +insert into BookInfo values('9787115266156','管理信息系统实用教程(第2版)','王若宾','人民邮电出版社','2012-10-21','普通高等教育\十一五\国家级规划教材','TP',36); +insert into BookInfo values('9787115356840','管理信息系统实用教程(第3版)','王若宾','人民邮电出版社','2015-10-21','普通高等教育\十一五\国家级规划教材','TP',45); +insert into BookInfo values('9787302252955','人工智能:一种现代的方法(第3版)','黄今夏','清华大学出版社','2011-10-21','《人工智能:一种现代的方法(第3版)》为大学计算机教育著名教材系列之一','TP',132.6); +insert into BookInfo values('9787513030953','信息论','田甜','知识产权出版社','2015-10-21','文理科公选课指定教材','TP',126); +insert into BookInfo values('9787569302585','计算统计(第2版)','冯新奇','西安交通大学出版社','2018-10-21','本书涵盖了计算统计的所有核心内容','TP',67.5); +insert into BookInfo values('9789113268712','新编数据库技术','王若宾','中国铁道出版社','2018-10-21','本书重构了课程内容结构','TP',38.5); + + +insert into BookExtInfo values('O924.01','7301046065',0); +insert into BookExtInfo values('O924.02','7301046065',1); +insert into BookExtInfo values('O924.03','7301046065',1); +insert into BookExtInfo values('I13.212','9788020002207',1); +insert into BookExtInfo values('I13.213','9788020002207',1); +insert into BookExtInfo values('I247.56','7806553312',1); +insert into BookExtInfo values('I247.59','7806553312',0); +insert into BookExtInfo values('TP122.32','9787569302585',1); +insert into BookExtInfo values('TP122.33','9787569302585',1); +insert into BookExtInfo values('TP311.11','9787113254100',1); +insert into BookExtInfo values('TP311.12','9787113254100',0); +insert into BookExtInfo values('TP311.13','9787115356840',1); + + +insert into BorrowRecord values(1,'16130203','I247.56','2019-04-09','2019-04-13'); +insert into BorrowRecord values(2,'17130204','I247.56','2019-04-15','2019-04-17'); +insert into BorrowRecord values(3,'16130205','I247.59','2019-04-17','2019-04-20'); +insert into BorrowRecord values(4,'16100101','I247.56','2019-04-17','2019-04-18'); +insert into BorrowRecord values(5,'17100105','TP311.11','2019-04-29',null); +insert into BorrowRecord values(6,'16130201','I247.59','2019-05-01','2019-05-20'); +insert into BorrowRecord values(7,'17130202','TP311.12','2019-05-03',null); +insert into BorrowRecord values(8,'18100103','I13.212','2019-05-04','2019-05-15'); +insert into BorrowRecord values(9,'18100103','I13.213','2019-05-20','2019-05-30'); +insert into BorrowRecord values(10,'17110101','O924.01','2019-05-25',null); + + +select * from Student; +select * from StudentExtInfo; +select * from BookInfo; +select * from BookExtInfo; +select * from BorrowRecord; +``` + +## 2.SQL + +### 任务I + +```sql +null +``` + +### 任务II + +```sql + +``` + +## 3.末尾 + + + +一切为了更好的就业---Lyy \ No newline at end of file -- Gitee From 37639e2fdea05aa565723b779e255481e8b0b11b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=96=87=E8=BE=89?= <14279272+yuwuchuji_0@user.noreply.gitee.com> Date: Mon, 21 Oct 2024 02:52:21 +0000 Subject: [PATCH 04/12] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20?= =?UTF-8?q?=E5=88=98=E6=96=87=E8=BE=89/=E7=BB=BC=E5=90=88=E7=BB=83?= =?UTF-8?q?=E4=B9=A0-2024-10-21.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...210\347\273\203\344\271\240-2024-10-21.md" | 201 ------------------ 1 file changed, 201 deletions(-) delete mode 100644 "\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" diff --git "a/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" "b/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" deleted file mode 100644 index bf9ce82..0000000 --- "a/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" +++ /dev/null @@ -1,201 +0,0 @@ -# 综合练习 - -## 1.分析 - -### 需求 - -```sql -综合题(第1大题40分,第2大题30分,共70分) - - -1. 利用另外一个文件`initDb.sql`,完成以下题目: - - 1.1. (10分) 对学生姓名创建普通索引(`idx_StudentName`) - 1.2. (10分) 创建视图`V_StudentHobbyInfo`,其中包含姓名(`StudentName`),爱好(`Hobby`),特长(`Specility`)列,并分别取别名为`vw_StudentName`,`vw_Hoppy`,`vw_Speclitiy - 1.4. (5分) 查询学生`马又云`的生源地,要求显示:姓名(`StudentNameame`),生源地(`OriginPosition`) - 1.5. (5分) 查询学生表(`StudentInfo`)中还未还书的读者的学号(`StudentCode`)和姓名(`StudentName`),以及借书时间(`BorrowTime`) - 1.6. (5分) 查询借阅过书籍《射雕英雄传》的学生,要求显示:学生姓名(`StudentName`),学院(`School`),图书名(`BookName`),借阅时间(`BorrowTime`) - -2. (30分)某医院病房计算机管理中心需要如下信息: - -``` - 科室:科编号、科名、科地址、科电话、医生姓名 - 病房:病房号、床位号、所属科室名 - 医生:姓名、职称、所属科室名、年龄、工作证号 - 病人:病历号、姓名、性别、诊断、主治医生、病房号 - ``` - - 2.1. (10分)其中,一个科室有多个病房、多个医生;一个病房只能属于一个科室,一名医生只属于一个科室,但可负责多名病人的诊治,一个病人的主主治生只有一个。科编号是标识列,从1开始自增长,步进值为1,医生职称有:实习,初级,中级,高级。 - 请设计该表关系模式结构(数据库物理模型),要求: - - - a. 中文名和英文名称清晰(可借助有道翻译工具,不允许开网页) - b. 表关系准确,包括主键,外键,标识列 - c. 将完成的设计截图,并且保存物理模型文件,命名为恰当的名称 - d. 将截图和物理模型文件放在自己的文件夹中 - - 2.2. (10分)创建存储过程实现:传入病历号,查询其对应的主治医生及其所在的病房号、床位号。 - 2.3. (10分)创建触发器实现:当医生离职时,检查其是否还有未完成医治的病人,如果还存在病人则不予离职,否则可以离职。 - ``` - -### 数据来源 - -```sql --- `initDb.sql`内容 -drop database if exists LibraryDb; -create database if not exists LibraryDb; -use LibraryDb; - -/* - 学生表 -*/ -CREATE TABLE Student ( - StudentCode varchar(8) primary key, -- 学号 - StudentName varchar(20) NOT NULL, -- 姓名 - Gender int DEFAULT NULL, -- 性别 - Birthday date DEFAULT NULL, -- 出生年月 - School varchar(20) DEFAULT NULL, -- 学院 - Major varchar(20) DEFAULT NULL -- 专业 -); - - -/* - 学生扩展信息表 -*/ -CREATE TABLE StudentExtInfo( - StudentCode varchar(8) primary key , -- 学号 - Hobby varchar(120) DEFAULT NULL, -- 爱好 - Speciality varchar(120) DEFAULT NULL, -- 特长 - OriginPosition varchar(16) DEFAULT NULL, -- 生源地 - Prize int DEFAULT NULL -- 荣誉数 -); - - - -/* - 图书信息表 -*/ -CREATE TABLE BookInfo ( - ISBN varchar(13) primary key, -- ISBN - BookName varchar(32) DEFAULT NULL, -- 图书名 - Author varchar(32) DEFAULT NULL, -- 作者 - Publishing varchar(32) DEFAULT NULL, -- 出版社 - PublishedTime date DEFAULT NULL, -- 出版时间 - Introduce varchar(200) DEFAULT NULL, -- 书籍简介 - Catery varchar(8) DEFAULT NULL, -- 书籍分类 - Price decimal(10,2) DEFAULT NULL -- 书籍价格 -); - - - -/* - 图书类别表 -*/ -CREATE TABLE BookExtInfo( - Barcode varchar(9) primary key, -- barcode - ISBN varchar(13) , -- ISBN - BookStatus bit default null -- 状态 -); - - -/* - 学生借阅信息 -*/ -CREATE TABLE BorrowRecord( - Id int primary key , -- 借阅id - StudentCode varchar(8) , -- 学号 - Barcode varchar(9) , -- barcode - BorrowTime datetime DEFAULT NULL, -- 借书时间 - ReturnTime datetime DEFAULT NULL -- 还书时间 -); - - -insert into Student values('16100101','马诗',1,'1998-03-16','理学院','统计'); -insert into Student values('16130201','博文',0,'1998-04-24','信息学院','计算机科学与技术'); -insert into Student values('16130203','魏波',1,'1998-10-29','信息学院','计算机科学与技术'); -insert into Student values('16130205','黄弘',1,'1998-08-06','信息学院','数据科学与大数据技术'); -insert into Student values('17100104','易高明',0,'1999-05-29','理学院','信息与计算科学'); -insert into Student values('17100105','万承承',0,'1999-09-11','理学院','信息与计算科学'); -insert into Student values('17110101','黄弘',0,'2000-07-25','文法学院','法学'); -insert into Student values('17130202','邹睿睿',1,'1998-06-29','信息学院','计算机科学与技术'); -insert into Student values('17130204','马又云',1,'1999-03-27','信息学院','数据科学与大数据技术'); -insert into Student values('18100103','邓承明',1,'2000-07-25','理学院','信息与计算科学'); - - -insert into StudentExtInfo values('16100101','听音乐','艺术特长','北京',2); -insert into StudentExtInfo values('16130201','看小说',null,'湖南',3); -insert into StudentExtInfo values('16130203','硬笔书法','艺术特长','新疆',1); -insert into StudentExtInfo values('16130205','听音乐','艺术特长','北京',2); -insert into StudentExtInfo values('17100104','打篮球',null,'北京',3); -insert into StudentExtInfo values('17100105','编程','科技特长','北京',2); -insert into StudentExtInfo values('17110101','打篮球','科技特长','河北',2); -insert into StudentExtInfo values('17130202','编程','科技特长','天津',3); -insert into StudentExtInfo values('17130204','看电影',null,'北京',1); -insert into StudentExtInfo values('18100103',null,null,'河南',null); - - -insert into BookInfo values('7040409659','大学计算机','李凤霞','高等教育出版社','2014-10-21','教育部大学计算机课程改革项目规划教材','TP',28); -insert into BookInfo values('7301046065','刑法学','高明轩','北京大学出版社','2000-10-21','刑法_法学高等学校中国教材','O',69); -insert into BookInfo values('7806553312','射雕英雄传','金庸','广州出版社','2018-10-21','金庸作品集','I',67.9); -insert into BookInfo values('9788020002207','红楼梦','曹雪芹','人民文学出版社','2008-10-21','学术研究或个人阅读都非常合适','I',31.25); -insert into BookInfo values('9787113254100','Python语言及其应用','赵广辉','中国铁道出版社','2019-10-21','本书介绍Python语言的基础知识及其在各个领域的具体应用','TP',62.2); -insert into BookInfo values('9787115266156','管理信息系统实用教程(第2版)','王若宾','人民邮电出版社','2012-10-21','普通高等教育\十一五\国家级规划教材','TP',36); -insert into BookInfo values('9787115356840','管理信息系统实用教程(第3版)','王若宾','人民邮电出版社','2015-10-21','普通高等教育\十一五\国家级规划教材','TP',45); -insert into BookInfo values('9787302252955','人工智能:一种现代的方法(第3版)','黄今夏','清华大学出版社','2011-10-21','《人工智能:一种现代的方法(第3版)》为大学计算机教育著名教材系列之一','TP',132.6); -insert into BookInfo values('9787513030953','信息论','田甜','知识产权出版社','2015-10-21','文理科公选课指定教材','TP',126); -insert into BookInfo values('9787569302585','计算统计(第2版)','冯新奇','西安交通大学出版社','2018-10-21','本书涵盖了计算统计的所有核心内容','TP',67.5); -insert into BookInfo values('9789113268712','新编数据库技术','王若宾','中国铁道出版社','2018-10-21','本书重构了课程内容结构','TP',38.5); - - -insert into BookExtInfo values('O924.01','7301046065',0); -insert into BookExtInfo values('O924.02','7301046065',1); -insert into BookExtInfo values('O924.03','7301046065',1); -insert into BookExtInfo values('I13.212','9788020002207',1); -insert into BookExtInfo values('I13.213','9788020002207',1); -insert into BookExtInfo values('I247.56','7806553312',1); -insert into BookExtInfo values('I247.59','7806553312',0); -insert into BookExtInfo values('TP122.32','9787569302585',1); -insert into BookExtInfo values('TP122.33','9787569302585',1); -insert into BookExtInfo values('TP311.11','9787113254100',1); -insert into BookExtInfo values('TP311.12','9787113254100',0); -insert into BookExtInfo values('TP311.13','9787115356840',1); - - -insert into BorrowRecord values(1,'16130203','I247.56','2019-04-09','2019-04-13'); -insert into BorrowRecord values(2,'17130204','I247.56','2019-04-15','2019-04-17'); -insert into BorrowRecord values(3,'16130205','I247.59','2019-04-17','2019-04-20'); -insert into BorrowRecord values(4,'16100101','I247.56','2019-04-17','2019-04-18'); -insert into BorrowRecord values(5,'17100105','TP311.11','2019-04-29',null); -insert into BorrowRecord values(6,'16130201','I247.59','2019-05-01','2019-05-20'); -insert into BorrowRecord values(7,'17130202','TP311.12','2019-05-03',null); -insert into BorrowRecord values(8,'18100103','I13.212','2019-05-04','2019-05-15'); -insert into BorrowRecord values(9,'18100103','I13.213','2019-05-20','2019-05-30'); -insert into BorrowRecord values(10,'17110101','O924.01','2019-05-25',null); - - -select * from Student; -select * from StudentExtInfo; -select * from BookInfo; -select * from BookExtInfo; -select * from BorrowRecord; -``` - -## 2.SQL - -### 任务I - -```sql -null -``` - -### 任务II - -```sql - -``` - -## 3.末尾 - - - -一切为了更好的就业---Lyy \ No newline at end of file -- Gitee From 3e1aa6d77d29ca3310ce493ad1544a4aa02b0b3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=96=87=E8=BE=89?= <14279272+yuwuchuji_0@user.noreply.gitee.com> Date: Mon, 21 Oct 2024 02:52:37 +0000 Subject: [PATCH 05/12] =?UTF-8?q?=E5=A4=8D=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 刘文辉 <14279272+yuwuchuji_0@user.noreply.gitee.com> --- ...210\347\273\203\344\271\240-2024-10-21.md" | 218 ++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 "\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" diff --git "a/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" "b/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" new file mode 100644 index 0000000..824ce34 --- /dev/null +++ "b/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" @@ -0,0 +1,218 @@ +# 综合练习 + +## 1.分析 + +### 需求 + +```sql +综合题(第1大题40分,第2大题30分,共70分) + + +1. 利用另外一个文件`initDb.sql`,完成以下题目: + + 1.1. (10分) 对学生姓名创建普通索引(`idx_StudentName`) + 1.2. (10分) 创建视图`V_StudentHobbyInfo`,其中包含姓名(`StudentName`),爱好(`Hobby`),特长(`Specility`)列,并分别取别名为`vw_StudentName`,`vw_Hoppy`,`vw_Speclitiy + 1.4. (5分) 查询学生`马又云`的生源地,要求显示:姓名(`StudentNameame`),生源地(`OriginPosition`) + 1.5. (5分) 查询学生表(`StudentInfo`)中还未还书的读者的学号(`StudentCode`)和姓名(`StudentName`),以及借书时间(`BorrowTime`) + 1.6. (5分) 查询借阅过书籍《射雕英雄传》的学生,要求显示:学生姓名(`StudentName`),学院(`School`),图书名(`BookName`),借阅时间(`BorrowTime`) + +2. (30分)某医院病房计算机管理中心需要如下信息: + 科室:科编号、科名、科地址、科电话、医生姓名 + 病房:病房号、床位号、所属科室名 + 医生:姓名、职称、所属科室名、年龄、工作证号 + 病人:病历号、姓名、性别、诊断、主治医生、病房号 + + 2.1. (10分)其中,一个科室有多个病房、多个医生;一个病房只能属于一个科室,一名医生只属于一个科室,但可负责多名病人的诊治,一个病人的主主治生只有一个。科编号是标识列,从1开始自增长,步进值为1,医生职称有:实习,初级,中级,高级。 + 请设计该表关系模式结构(数据库物理模型),要求: + + + a. 中文名和英文名称清晰(可借助有道翻译工具,不允许开网页) + b. 表关系准确,包括主键,外键,标识列 + c. 将完成的设计截图,并且保存物理模型文件,命名为恰当的名称 + d. 将截图和物理模型文件放在自己的文件夹中 + + 2.2. (10分)创建存储过程实现:传入病历号,查询其对应的主治医生及其所在的病房号、床位号。 + 2.3. (10分)创建触发器实现:当医生离职时,检查其是否还有未完成医治的病人,如果还存在病人则不予离职,否则可以离职。 +``` + + +### 数据来源 + +```sql +-- `initDb.sql`内容 +drop database if exists LibraryDb; +create database if not exists LibraryDb; +use LibraryDb; + +/* + 学生表 +*/ +CREATE TABLE Student ( + StudentCode varchar(8) primary key, -- 学号 + StudentName varchar(20) NOT NULL, -- 姓名 + Gender int DEFAULT NULL, -- 性别 + Birthday date DEFAULT NULL, -- 出生年月 + School varchar(20) DEFAULT NULL, -- 学院 + Major varchar(20) DEFAULT NULL -- 专业 +); + + +/* + 学生扩展信息表 +*/ +CREATE TABLE StudentExtInfo( + StudentCode varchar(8) primary key , -- 学号 + Hobby varchar(120) DEFAULT NULL, -- 爱好 + Speciality varchar(120) DEFAULT NULL, -- 特长 + OriginPosition varchar(16) DEFAULT NULL, -- 生源地 + Prize int DEFAULT NULL -- 荣誉数 +); + + + +/* + 图书信息表 +*/ +CREATE TABLE BookInfo ( + ISBN varchar(13) primary key, -- ISBN + BookName varchar(32) DEFAULT NULL, -- 图书名 + Author varchar(32) DEFAULT NULL, -- 作者 + Publishing varchar(32) DEFAULT NULL, -- 出版社 + PublishedTime date DEFAULT NULL, -- 出版时间 + Introduce varchar(200) DEFAULT NULL, -- 书籍简介 + Catery varchar(8) DEFAULT NULL, -- 书籍分类 + Price decimal(10,2) DEFAULT NULL -- 书籍价格 +); + + + +/* + 图书类别表 +*/ +CREATE TABLE BookExtInfo( + Barcode varchar(9) primary key, -- barcode + ISBN varchar(13) , -- ISBN + BookStatus bit default null -- 状态 +); + + +/* + 学生借阅信息 +*/ +CREATE TABLE BorrowRecord( + Id int primary key , -- 借阅id + StudentCode varchar(8) , -- 学号 + Barcode varchar(9) , -- barcode + BorrowTime datetime DEFAULT NULL, -- 借书时间 + ReturnTime datetime DEFAULT NULL -- 还书时间 +); + + +insert into Student values('16100101','马诗',1,'1998-03-16','理学院','统计'); +insert into Student values('16130201','博文',0,'1998-04-24','信息学院','计算机科学与技术'); +insert into Student values('16130203','魏波',1,'1998-10-29','信息学院','计算机科学与技术'); +insert into Student values('16130205','黄弘',1,'1998-08-06','信息学院','数据科学与大数据技术'); +insert into Student values('17100104','易高明',0,'1999-05-29','理学院','信息与计算科学'); +insert into Student values('17100105','万承承',0,'1999-09-11','理学院','信息与计算科学'); +insert into Student values('17110101','黄弘',0,'2000-07-25','文法学院','法学'); +insert into Student values('17130202','邹睿睿',1,'1998-06-29','信息学院','计算机科学与技术'); +insert into Student values('17130204','马又云',1,'1999-03-27','信息学院','数据科学与大数据技术'); +insert into Student values('18100103','邓承明',1,'2000-07-25','理学院','信息与计算科学'); + + +insert into StudentExtInfo values('16100101','听音乐','艺术特长','北京',2); +insert into StudentExtInfo values('16130201','看小说',null,'湖南',3); +insert into StudentExtInfo values('16130203','硬笔书法','艺术特长','新疆',1); +insert into StudentExtInfo values('16130205','听音乐','艺术特长','北京',2); +insert into StudentExtInfo values('17100104','打篮球',null,'北京',3); +insert into StudentExtInfo values('17100105','编程','科技特长','北京',2); +insert into StudentExtInfo values('17110101','打篮球','科技特长','河北',2); +insert into StudentExtInfo values('17130202','编程','科技特长','天津',3); +insert into StudentExtInfo values('17130204','看电影',null,'北京',1); +insert into StudentExtInfo values('18100103',null,null,'河南',null); + + +insert into BookInfo values('7040409659','大学计算机','李凤霞','高等教育出版社','2014-10-21','教育部大学计算机课程改革项目规划教材','TP',28); +insert into BookInfo values('7301046065','刑法学','高明轩','北京大学出版社','2000-10-21','刑法_法学高等学校中国教材','O',69); +insert into BookInfo values('7806553312','射雕英雄传','金庸','广州出版社','2018-10-21','金庸作品集','I',67.9); +insert into BookInfo values('9788020002207','红楼梦','曹雪芹','人民文学出版社','2008-10-21','学术研究或个人阅读都非常合适','I',31.25); +insert into BookInfo values('9787113254100','Python语言及其应用','赵广辉','中国铁道出版社','2019-10-21','本书介绍Python语言的基础知识及其在各个领域的具体应用','TP',62.2); +insert into BookInfo values('9787115266156','管理信息系统实用教程(第2版)','王若宾','人民邮电出版社','2012-10-21','普通高等教育\十一五\国家级规划教材','TP',36); +insert into BookInfo values('9787115356840','管理信息系统实用教程(第3版)','王若宾','人民邮电出版社','2015-10-21','普通高等教育\十一五\国家级规划教材','TP',45); +insert into BookInfo values('9787302252955','人工智能:一种现代的方法(第3版)','黄今夏','清华大学出版社','2011-10-21','《人工智能:一种现代的方法(第3版)》为大学计算机教育著名教材系列之一','TP',132.6); +insert into BookInfo values('9787513030953','信息论','田甜','知识产权出版社','2015-10-21','文理科公选课指定教材','TP',126); +insert into BookInfo values('9787569302585','计算统计(第2版)','冯新奇','西安交通大学出版社','2018-10-21','本书涵盖了计算统计的所有核心内容','TP',67.5); +insert into BookInfo values('9789113268712','新编数据库技术','王若宾','中国铁道出版社','2018-10-21','本书重构了课程内容结构','TP',38.5); + + +insert into BookExtInfo values('O924.01','7301046065',0); +insert into BookExtInfo values('O924.02','7301046065',1); +insert into BookExtInfo values('O924.03','7301046065',1); +insert into BookExtInfo values('I13.212','9788020002207',1); +insert into BookExtInfo values('I13.213','9788020002207',1); +insert into BookExtInfo values('I247.56','7806553312',1); +insert into BookExtInfo values('I247.59','7806553312',0); +insert into BookExtInfo values('TP122.32','9787569302585',1); +insert into BookExtInfo values('TP122.33','9787569302585',1); +insert into BookExtInfo values('TP311.11','9787113254100',1); +insert into BookExtInfo values('TP311.12','9787113254100',0); +insert into BookExtInfo values('TP311.13','9787115356840',1); + + +insert into BorrowRecord values(1,'16130203','I247.56','2019-04-09','2019-04-13'); +insert into BorrowRecord values(2,'17130204','I247.56','2019-04-15','2019-04-17'); +insert into BorrowRecord values(3,'16130205','I247.59','2019-04-17','2019-04-20'); +insert into BorrowRecord values(4,'16100101','I247.56','2019-04-17','2019-04-18'); +insert into BorrowRecord values(5,'17100105','TP311.11','2019-04-29',null); +insert into BorrowRecord values(6,'16130201','I247.59','2019-05-01','2019-05-20'); +insert into BorrowRecord values(7,'17130202','TP311.12','2019-05-03',null); +insert into BorrowRecord values(8,'18100103','I13.212','2019-05-04','2019-05-15'); +insert into BorrowRecord values(9,'18100103','I13.213','2019-05-20','2019-05-30'); +insert into BorrowRecord values(10,'17110101','O924.01','2019-05-25',null); + + +select * from Student; +select * from StudentExtInfo; +select * from BookInfo; +select * from BookExtInfo; +select * from BorrowRecord; +``` + +## 2.SQL + +### 任务I + +```sql +综合题(第1大题40分,第2大题30分,共70分) + + +1. 利用另外一个文件`initDb.sql`,完成以下题目: + +--1.1. (10分) 对学生姓名创建普通索引(`idx_StudentName`) +CREATE INDEX idx_StudentName ON student(StudentName); + +--1.2. (10分) 创建视图`V_StudentHobbyInfo`,其中包含姓名(`StudentName`),爱好(`Hobby`),特长(`Specility`)列,并分别取别名为`vw_StudentName`,`vw_Hoppy`,`vw_Speclitiy`; +CREATE VIEW V_StudentHobbyInfo AS SELECT st.StudentName vw_StudentName,stu.Hobby vw_Hoppy,stu.Speciality vw_Speclitiy FROM student st,studentextinfo stu WHERE st.StudentCode = stu.StudentCode; + +1.4. (5分) 查询学生`马又云`的生源地,要求显示:姓名(`StudentNameame`),生源地(`OriginPosition`) +SELECT st.StudentName 姓名,stu.OriginPosition 生源地 FROM student st,studentextinfo stu WHERE st.StudentCode = stu.StudentCode AND st.StudentName = '马又云'; + +1.5. (5分) 查询学生表(`StudentInfo`)中还未还书的读者的学号(`StudentCode`)和姓名(`StudentName`),以及借书时间(`BorrowTime`) + +SELECT st.StudentCode,st.StudentName,BorrowTime FROM student st,borrowrecord bor WHERE st.StudentCode = bor.StudentCode AND st.StudentCode NOT IN (SELECT st.StudentCode FROM student st,borrowrecord bor WHERE st.StudentCode = bor.StudentCode AND ReturnTime = ReturnTime); +1.6. (5分) 查询借阅过书籍《射雕英雄传》的学生,要求显示:学生姓名(`StudentName`),学院(`School`),图书名(`BookName`),借阅时间(`BorrowTime`) + +SELECT StudentName 学生姓名,School 学院,(SELECT BookName FROM bookinfo boo WHERE boo.ISBN = book.ISBN) 图书名,BorrowTime 借阅时间 FROM student st,borrowrecord bor,bookextinfo book WHERE st.StudentCode = bor.StudentCode AND book.Barcode = bor.Barcode AND (SELECT BookName FROM bookinfo boo WHERE boo.ISBN = book.ISBN) = '射雕英雄传'; +``` + +### 任务II + +```sql + +``` + +## 3.末尾 + + + +一切为了更好的就业---Lyy \ No newline at end of file -- Gitee From 1615f43188014afd6ad44ac8d1f18dabaa275555 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=96=87=E8=BE=89?= <14279272+yuwuchuji_0@user.noreply.gitee.com> Date: Mon, 21 Oct 2024 03:06:29 +0000 Subject: [PATCH 06/12] =?UTF-8?q?=E5=A4=8D=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 刘文辉 <14279272+yuwuchuji_0@user.noreply.gitee.com> --- ...4\346\223\215\344\275\234\351\242\230.sql" | 180 ++++++++ .../initDb.sql" | 137 ++++++ ...\351\200\211\346\213\251\351\242\230.xlsx" | Bin 0 -> 10723 bytes .../initDb.sql" | 137 ++++++ ...71\351\200\211\346\213\251\351\242\230.md" | 408 ++++++++++++++++++ ...01\346\223\215\344\275\234\351\242\230.md" | 30 ++ ...10\351\242\230\346\274\224\347\244\272.md" | 30 ++ 7 files changed, 922 insertions(+) create mode 100644 "\345\210\230\346\226\207\350\276\211/\345\205\266\344\273\226\346\226\207\344\273\266/\347\273\274\345\220\210\347\273\203\344\271\240/222134_23\347\272\2471\347\217\255_\345\274\240\344\270\211/25\345\217\267\345\274\240\344\270\211\347\232\204\346\223\215\344\275\234\351\242\230.sql" create mode 100644 "\345\210\230\346\226\207\350\276\211/\345\205\266\344\273\226\346\226\207\344\273\266/\347\273\274\345\220\210\347\273\203\344\271\240/222134_23\347\272\2471\347\217\255_\345\274\240\344\270\211/initDb.sql" create mode 100644 "\345\210\230\346\226\207\350\276\211/\345\205\266\344\273\226\346\226\207\344\273\266/\347\273\274\345\220\210\347\273\203\344\271\240/222134_23\347\272\2471\347\217\255_\345\274\240\344\270\211/\347\254\224\350\257\225_\347\224\265\345\255\220\347\255\224\351\242\230\345\215\241_\351\200\211\346\213\251\351\242\230.xlsx" create mode 100644 "\345\210\230\346\226\207\350\276\211/\345\205\266\344\273\226\346\226\207\344\273\266/\347\273\274\345\220\210\347\273\203\344\271\240/initDb.sql" create mode 100644 "\345\210\230\346\226\207\350\276\211/\345\205\266\344\273\226\346\226\207\344\273\266/\347\273\274\345\220\210\347\273\203\344\271\240/\344\270\200\343\200\201\345\215\225\351\241\271\351\200\211\346\213\251\351\242\230.md" create mode 100644 "\345\210\230\346\226\207\350\276\211/\345\205\266\344\273\226\346\226\207\344\273\266/\347\273\274\345\220\210\347\273\203\344\271\240/\344\272\214\343\200\201\346\223\215\344\275\234\351\242\230.md" create mode 100644 "\345\210\230\346\226\207\350\276\211/\345\205\266\344\273\226\346\226\207\344\273\266/\347\273\274\345\220\210\347\273\203\344\271\240/\347\273\274\345\220\210\351\242\230\346\274\224\347\244\272.md" diff --git "a/\345\210\230\346\226\207\350\276\211/\345\205\266\344\273\226\346\226\207\344\273\266/\347\273\274\345\220\210\347\273\203\344\271\240/222134_23\347\272\2471\347\217\255_\345\274\240\344\270\211/25\345\217\267\345\274\240\344\270\211\347\232\204\346\223\215\344\275\234\351\242\230.sql" "b/\345\210\230\346\226\207\350\276\211/\345\205\266\344\273\226\346\226\207\344\273\266/\347\273\274\345\220\210\347\273\203\344\271\240/222134_23\347\272\2471\347\217\255_\345\274\240\344\270\211/25\345\217\267\345\274\240\344\270\211\347\232\204\346\223\215\344\275\234\351\242\230.sql" new file mode 100644 index 0000000..7e67579 --- /dev/null +++ "b/\345\210\230\346\226\207\350\276\211/\345\205\266\344\273\226\346\226\207\344\273\266/\347\273\274\345\220\210\347\273\203\344\271\240/222134_23\347\272\2471\347\217\255_\345\274\240\344\270\211/25\345\217\267\345\274\240\344\270\211\347\232\204\346\223\215\344\275\234\351\242\230.sql" @@ -0,0 +1,180 @@ + + + +drop database if exists LibraryDb; +create database LibraryDb; + +use LibraryDb; +/* + 学生表 +*/ +CREATE TABLE Student ( + StudentCode varchar(8) primary key, -- 学号 + StudentName varchar(20) NOT NULL, -- 姓名 + Gender int DEFAULT NULL, -- 性别 + Birthday date DEFAULT NULL, -- 出生年月 + School varchar(20) DEFAULT NULL, -- 学院 + Major varchar(20) DEFAULT NULL -- 专业 +); + + +/* + 学生扩展信息表 +*/ +CREATE TABLE StudentExtInfo( + StudentCode varchar(8) primary key , -- 学号 + Hobby varchar(120) DEFAULT NULL, -- 爱好 + Speciality varchar(120) DEFAULT NULL, -- 特长 + OriginPosition varchar(16) DEFAULT NULL, -- 生源地 + Prize int DEFAULT NULL -- 荣誉数 +); + + + +/* + 图书信息表 +*/ +CREATE TABLE BookInfo ( + ISBN varchar(13) primary key, -- ISBN + BookName varchar(32) DEFAULT NULL, -- 图书名 + Author varchar(32) DEFAULT NULL, -- 作者 + Publishing varchar(32) DEFAULT NULL, -- 出版社 + PublishedTime date DEFAULT NULL, -- 出版时间 + Introduce varchar(200) DEFAULT NULL, -- 书籍简介 + Catery varchar(8) DEFAULT NULL, -- 书籍分类 + Price decimal(10,2) DEFAULT NULL -- 书籍价格 +); + + + +/* + 图书类别表 +*/ +CREATE TABLE BookExtInfo( + Barcode varchar(9) primary key, -- barcode + ISBN varchar(13) , -- ISBN + BookStatus bit default null -- 状态 +); + + +/* + 学生借阅信息 +*/ +CREATE TABLE BorrowRecord( + Id int primary key , -- 借阅id + StudentCode varchar(8) , -- 学号 + Barcode varchar(9) , -- barcode + BorrowTime datetime DEFAULT NULL, -- 借书时间 + ReturnTime datetime DEFAULT NULL -- 还书时间 +); + + +insert into Student values('16100101','马诗',1,'1998-03-16','理学院','统计'); +insert into Student values('16130201','博文',0,'1998-04-24','信息学院','计算机科学与技术'); +insert into Student values('16130203','魏波',1,'1998-10-29','信息学院','计算机科学与技术'); +insert into Student values('16130205','黄弘',1,'1998-08-06','信息学院','数据科学与大数据技术'); +insert into Student values('17100104','易高明',0,'1999-05-29','理学院','信息与计算科学'); +insert into Student values('17100105','万承承',0,'1999-09-11','理学院','信息与计算科学'); +insert into Student values('17110101','黄弘',0,'2000-07-25','文法学院','法学'); +insert into Student values('17130202','邹睿睿',1,'1998-06-29','信息学院','计算机科学与技术'); +insert into Student values('17130204','马又云',1,'1999-03-27','信息学院','数据科学与大数据技术'); +insert into Student values('18100103','邓承明',1,'2000-07-25','理学院','信息与计算科学'); + + +insert into StudentExtInfo values('16100101','听音乐','艺术特长','北京',2); +insert into StudentExtInfo values('16130201','看小说',null,'湖南',3); +insert into StudentExtInfo values('16130203','硬笔书法','艺术特长','新疆',1); +insert into StudentExtInfo values('16130205','听音乐','艺术特长','北京',2); +insert into StudentExtInfo values('17100104','打篮球',null,'北京',3); +insert into StudentExtInfo values('17100105','编程','科技特长','北京',2); +insert into StudentExtInfo values('17110101','打篮球','科技特长','河北',2); +insert into StudentExtInfo values('17130202','编程','科技特长','天津',3); +insert into StudentExtInfo values('17130204','看电影',null,'北京',1); +insert into StudentExtInfo values('18100103',null,null,'河南',null); + + +insert into BookInfo values('7040409659','大学计算机','李凤霞','高等教育出版社','2014-10-21','教育部大学计算机课程改革项目规划教材','TP',28); +insert into BookInfo values('7301046065','刑法学','高明轩','北京大学出版社','2000-10-21','刑法_法学高等学校中国教材','O',69); +insert into BookInfo values('7806553312','射雕英雄传','金庸','广州出版社','2018-10-21','金庸作品集','I',67.9); +insert into BookInfo values('9788020002207','红楼梦','曹雪芹','人民文学出版社','2008-10-21','学术研究或个人阅读都非常合适','I',31.25); +insert into BookInfo values('9787113254100','Python语言及其应用','赵广辉','中国铁道出版社','2019-10-21','本书介绍Python语言的基础知识及其在各个领域的具体应用','TP',62.2); +insert into BookInfo values('9787115266156','管理信息系统实用教程(第2版)','王若宾','人民邮电出版社','2012-10-21','普通高等教育\十一五\国家级规划教材','TP',36); +insert into BookInfo values('9787115356840','管理信息系统实用教程(第3版)','王若宾','人民邮电出版社','2015-10-21','普通高等教育\十一五\国家级规划教材','TP',45); +insert into BookInfo values('9787302252955','人工智能:一种现代的方法(第3版)','黄今夏','清华大学出版社','2011-10-21','《人工智能:一种现代的方法(第3版)》为大学计算机教育著名教材系列之一','TP',132.6); +insert into BookInfo values('9787513030953','信息论','田甜','知识产权出版社','2015-10-21','文理科公选课指定教材','TP',126); +insert into BookInfo values('9787569302585','计算统计(第2版)','冯新奇','西安交通大学出版社','2018-10-21','本书涵盖了计算统计的所有核心内容','TP',67.5); +insert into BookInfo values('9789113268712','新编数据库技术','王若宾','中国铁道出版社','2018-10-21','本书重构了课程内容结构','TP',38.5); + + +insert into BookExtInfo values('O924.01','7301046065',0); +insert into BookExtInfo values('O924.02','7301046065',1); +insert into BookExtInfo values('O924.03','7301046065',1); +insert into BookExtInfo values('I13.212','9788020002207',1); +insert into BookExtInfo values('I13.213','9788020002207',1); +insert into BookExtInfo values('I247.56','7806553312',1); +insert into BookExtInfo values('I247.59','7806553312',0); +insert into BookExtInfo values('TP122.32','9787569302585',1); +insert into BookExtInfo values('TP122.33','9787569302585',1); +insert into BookExtInfo values('TP311.11','9787113254100',1); +insert into BookExtInfo values('TP311.12','9787113254100',0); +insert into BookExtInfo values('TP311.13','9787115356840',1); + + +insert into BorrowRecord values(1,'16130203','I247.56','2019-04-09','2019-04-13'); +insert into BorrowRecord values(2,'17130204','I247.56','2019-04-15','2019-04-17'); +insert into BorrowRecord values(3,'16130205','I247.59','2019-04-17','2019-04-20'); +insert into BorrowRecord values(4,'16100101','I247.56','2019-04-17','2019-04-18'); +insert into BorrowRecord values(5,'17100105','TP311.11','2019-04-29',null); +insert into BorrowRecord values(6,'16130201','I247.59','2019-05-01','2019-05-20'); +insert into BorrowRecord values(7,'17130202','TP311.12','2019-05-03',null); +insert into BorrowRecord values(8,'18100103','I13.212','2019-05-04','2019-05-15'); +insert into BorrowRecord values(9,'18100103','I13.213','2019-05-20','2019-05-30'); +insert into BorrowRecord values(10,'17110101','O924.01','2019-05-25',null); + + +select * from Student; +select * from StudentExtInfo; +select * from BookInfo; +select * from BookExtInfo; +select * from BorrowRecord; + + +-- 1. 利用另外一个文件`initDb.sql`,完成以下题目: +-- +-- 1.1. (10分) 对学生姓名创建普通索引(`idx_StudentName`) + +create index + + + +-- 1.2. (10分) 创建视图`V_StudentHobbyInfo`,其中包含姓名(`StudentName`),爱好(`Hobby`),特长(`Specility`)列,并分别取别名为`vw_StudentName`,`vw_Hoppy`,`vw_Speclitiy + + + +-- 1.4. (5分) 查询学生`马又云`的生源地,要求显示:姓名(`StudentNameame`),生源地(`OriginPosition`) +-- 1.5. (5分) 查询学生表(`StudentInfo`)中还未还书的读者的学号(`StudentCode`)和姓名(`StudentName`),以及借书时间(`BorrowTime`) +-- 1.6. (5分) 查询借阅过书籍《射雕英雄传》的学生,要求显示:学生姓名(`StudentName`),学院(`School`),图书名(`BookName`),借阅时间(`BorrowTime`) +-- +-- +-- 2. (30分)某医院病房计算机管理中心需要如下信息: +-- +-- ``` +-- 科室:科编号、科名、科地址、科电话、医生姓名 +-- 病房:病房号、床位号、所属科室名 +-- 医生:姓名、职称、所属科室名、年龄、工作证号 +-- 病人:病历号、姓名、性别、诊断、主治医生、病房号 +-- ``` +-- + + +-- 2.1. (10分)其中,一个科室有多个病房、多个医生;一个病房只能属于一个科室,一名医生只属于一个科室,但可负责多名病人的诊治,一个病人的主主治生只有一个。科编号是标识列,从1开始自增长,步进值为1,医生职称有:实习,初级,中级,高级。 +-- 请设计该表关系模式结构(数据库物理模型),要求: +-- +-- +-- a. 中文名和英文名称清晰(可借助有道翻译工具,不允许开网页) +-- b. 表关系准确,包括主键,外键,标识列 +-- c. 将完成的设计截图,并且保存物理模型文件,命名为恰当的名称 +-- d. 将截图和物理模型文件放在自己的文件夹中 +-- +-- 2.2. (10分)创建存储过程实现:传入病历号,查询其对应的主治医生及其所在的病房号、床位号。 +-- 2.3. (10分)创建触发器实现:当医生离职时,检查其是否还有未完成医治的病人,如果还存在病人则不予离职,否则可以离职。 \ No newline at end of file diff --git "a/\345\210\230\346\226\207\350\276\211/\345\205\266\344\273\226\346\226\207\344\273\266/\347\273\274\345\220\210\347\273\203\344\271\240/222134_23\347\272\2471\347\217\255_\345\274\240\344\270\211/initDb.sql" "b/\345\210\230\346\226\207\350\276\211/\345\205\266\344\273\226\346\226\207\344\273\266/\347\273\274\345\220\210\347\273\203\344\271\240/222134_23\347\272\2471\347\217\255_\345\274\240\344\270\211/initDb.sql" new file mode 100644 index 0000000..a604542 --- /dev/null +++ "b/\345\210\230\346\226\207\350\276\211/\345\205\266\344\273\226\346\226\207\344\273\266/\347\273\274\345\220\210\347\273\203\344\271\240/222134_23\347\272\2471\347\217\255_\345\274\240\344\270\211/initDb.sql" @@ -0,0 +1,137 @@ + +drop database if exists LibraryDb; +create database LibraryDb; + +use LibraryDb; +/* + 学生表 +*/ +CREATE TABLE Student ( + StudentCode varchar(8) primary key, -- 学号 + StudentName varchar(20) NOT NULL, -- 姓名 + Gender int DEFAULT NULL, -- 性别 + Birthday date DEFAULT NULL, -- 出生年月 + School varchar(20) DEFAULT NULL, -- 学院 + Major varchar(20) DEFAULT NULL -- 专业 +); + + +/* + 学生扩展信息表 +*/ +CREATE TABLE StudentExtInfo( + StudentCode varchar(8) primary key , -- 学号 + Hobby varchar(120) DEFAULT NULL, -- 爱好 + Speciality varchar(120) DEFAULT NULL, -- 特长 + OriginPosition varchar(16) DEFAULT NULL, -- 生源地 + Prize int DEFAULT NULL -- 荣誉数 +); + + + +/* + 图书信息表 +*/ +CREATE TABLE BookInfo ( + ISBN varchar(13) primary key, -- ISBN + BookName varchar(32) DEFAULT NULL, -- 图书名 + Author varchar(32) DEFAULT NULL, -- 作者 + Publishing varchar(32) DEFAULT NULL, -- 出版社 + PublishedTime date DEFAULT NULL, -- 出版时间 + Introduce varchar(200) DEFAULT NULL, -- 书籍简介 + Catery varchar(8) DEFAULT NULL, -- 书籍分类 + Price decimal(10,2) DEFAULT NULL -- 书籍价格 +); + + + +/* + 图书类别表 +*/ +CREATE TABLE BookExtInfo( + Barcode varchar(9) primary key, -- barcode + ISBN varchar(13) , -- ISBN + BookStatus bit default null -- 状态 +); + + +/* + 学生借阅信息 +*/ +CREATE TABLE BorrowRecord( + Id int primary key , -- 借阅id + StudentCode varchar(8) , -- 学号 + Barcode varchar(9) , -- barcode + BorrowTime datetime DEFAULT NULL, -- 借书时间 + ReturnTime datetime DEFAULT NULL -- 还书时间 +); + + +insert into Student values('16100101','马诗',1,'1998-03-16','理学院','统计'); +insert into Student values('16130201','博文',0,'1998-04-24','信息学院','计算机科学与技术'); +insert into Student values('16130203','魏波',1,'1998-10-29','信息学院','计算机科学与技术'); +insert into Student values('16130205','黄弘',1,'1998-08-06','信息学院','数据科学与大数据技术'); +insert into Student values('17100104','易高明',0,'1999-05-29','理学院','信息与计算科学'); +insert into Student values('17100105','万承承',0,'1999-09-11','理学院','信息与计算科学'); +insert into Student values('17110101','黄弘',0,'2000-07-25','文法学院','法学'); +insert into Student values('17130202','邹睿睿',1,'1998-06-29','信息学院','计算机科学与技术'); +insert into Student values('17130204','马又云',1,'1999-03-27','信息学院','数据科学与大数据技术'); +insert into Student values('18100103','邓承明',1,'2000-07-25','理学院','信息与计算科学'); + + +insert into StudentExtInfo values('16100101','听音乐','艺术特长','北京',2); +insert into StudentExtInfo values('16130201','看小说',null,'湖南',3); +insert into StudentExtInfo values('16130203','硬笔书法','艺术特长','新疆',1); +insert into StudentExtInfo values('16130205','听音乐','艺术特长','北京',2); +insert into StudentExtInfo values('17100104','打篮球',null,'北京',3); +insert into StudentExtInfo values('17100105','编程','科技特长','北京',2); +insert into StudentExtInfo values('17110101','打篮球','科技特长','河北',2); +insert into StudentExtInfo values('17130202','编程','科技特长','天津',3); +insert into StudentExtInfo values('17130204','看电影',null,'北京',1); +insert into StudentExtInfo values('18100103',null,null,'河南',null); + + +insert into BookInfo values('7040409659','大学计算机','李凤霞','高等教育出版社','2014-10-21','教育部大学计算机课程改革项目规划教材','TP',28); +insert into BookInfo values('7301046065','刑法学','高明轩','北京大学出版社','2000-10-21','刑法_法学高等学校中国教材','O',69); +insert into BookInfo values('7806553312','射雕英雄传','金庸','广州出版社','2018-10-21','金庸作品集','I',67.9); +insert into BookInfo values('9788020002207','红楼梦','曹雪芹','人民文学出版社','2008-10-21','学术研究或个人阅读都非常合适','I',31.25); +insert into BookInfo values('9787113254100','Python语言及其应用','赵广辉','中国铁道出版社','2019-10-21','本书介绍Python语言的基础知识及其在各个领域的具体应用','TP',62.2); +insert into BookInfo values('9787115266156','管理信息系统实用教程(第2版)','王若宾','人民邮电出版社','2012-10-21','普通高等教育\十一五\国家级规划教材','TP',36); +insert into BookInfo values('9787115356840','管理信息系统实用教程(第3版)','王若宾','人民邮电出版社','2015-10-21','普通高等教育\十一五\国家级规划教材','TP',45); +insert into BookInfo values('9787302252955','人工智能:一种现代的方法(第3版)','黄今夏','清华大学出版社','2011-10-21','《人工智能:一种现代的方法(第3版)》为大学计算机教育著名教材系列之一','TP',132.6); +insert into BookInfo values('9787513030953','信息论','田甜','知识产权出版社','2015-10-21','文理科公选课指定教材','TP',126); +insert into BookInfo values('9787569302585','计算统计(第2版)','冯新奇','西安交通大学出版社','2018-10-21','本书涵盖了计算统计的所有核心内容','TP',67.5); +insert into BookInfo values('9789113268712','新编数据库技术','王若宾','中国铁道出版社','2018-10-21','本书重构了课程内容结构','TP',38.5); + + +insert into BookExtInfo values('O924.01','7301046065',0); +insert into BookExtInfo values('O924.02','7301046065',1); +insert into BookExtInfo values('O924.03','7301046065',1); +insert into BookExtInfo values('I13.212','9788020002207',1); +insert into BookExtInfo values('I13.213','9788020002207',1); +insert into BookExtInfo values('I247.56','7806553312',1); +insert into BookExtInfo values('I247.59','7806553312',0); +insert into BookExtInfo values('TP122.32','9787569302585',1); +insert into BookExtInfo values('TP122.33','9787569302585',1); +insert into BookExtInfo values('TP311.11','9787113254100',1); +insert into BookExtInfo values('TP311.12','9787113254100',0); +insert into BookExtInfo values('TP311.13','9787115356840',1); + + +insert into BorrowRecord values(1,'16130203','I247.56','2019-04-09','2019-04-13'); +insert into BorrowRecord values(2,'17130204','I247.56','2019-04-15','2019-04-17'); +insert into BorrowRecord values(3,'16130205','I247.59','2019-04-17','2019-04-20'); +insert into BorrowRecord values(4,'16100101','I247.56','2019-04-17','2019-04-18'); +insert into BorrowRecord values(5,'17100105','TP311.11','2019-04-29',null); +insert into BorrowRecord values(6,'16130201','I247.59','2019-05-01','2019-05-20'); +insert into BorrowRecord values(7,'17130202','TP311.12','2019-05-03',null); +insert into BorrowRecord values(8,'18100103','I13.212','2019-05-04','2019-05-15'); +insert into BorrowRecord values(9,'18100103','I13.213','2019-05-20','2019-05-30'); +insert into BorrowRecord values(10,'17110101','O924.01','2019-05-25',null); + + +select * from Student; +select * from StudentExtInfo; +select * from BookInfo; +select * from BookExtInfo; +select * from BorrowRecord; \ No newline at end of file diff --git "a/\345\210\230\346\226\207\350\276\211/\345\205\266\344\273\226\346\226\207\344\273\266/\347\273\274\345\220\210\347\273\203\344\271\240/222134_23\347\272\2471\347\217\255_\345\274\240\344\270\211/\347\254\224\350\257\225_\347\224\265\345\255\220\347\255\224\351\242\230\345\215\241_\351\200\211\346\213\251\351\242\230.xlsx" "b/\345\210\230\346\226\207\350\276\211/\345\205\266\344\273\226\346\226\207\344\273\266/\347\273\274\345\220\210\347\273\203\344\271\240/222134_23\347\272\2471\347\217\255_\345\274\240\344\270\211/\347\254\224\350\257\225_\347\224\265\345\255\220\347\255\224\351\242\230\345\215\241_\351\200\211\346\213\251\351\242\230.xlsx" new file mode 100644 index 0000000000000000000000000000000000000000..a3968f156f7edda9409c9ff6e2f3c9ae21a461be GIT binary patch literal 10723 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 Rf67 Date: Mon, 21 Oct 2024 06:10:21 +0000 Subject: [PATCH 07/12] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20?= =?UTF-8?q?=E5=88=98=E6=96=87=E8=BE=89/=E7=BB=BC=E5=90=88=E7=BB=83?= =?UTF-8?q?=E4=B9=A0-2024-10-21.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...210\347\273\203\344\271\240-2024-10-21.md" | 218 ------------------ 1 file changed, 218 deletions(-) delete mode 100644 "\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" diff --git "a/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" "b/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" deleted file mode 100644 index 824ce34..0000000 --- "a/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" +++ /dev/null @@ -1,218 +0,0 @@ -# 综合练习 - -## 1.分析 - -### 需求 - -```sql -综合题(第1大题40分,第2大题30分,共70分) - - -1. 利用另外一个文件`initDb.sql`,完成以下题目: - - 1.1. (10分) 对学生姓名创建普通索引(`idx_StudentName`) - 1.2. (10分) 创建视图`V_StudentHobbyInfo`,其中包含姓名(`StudentName`),爱好(`Hobby`),特长(`Specility`)列,并分别取别名为`vw_StudentName`,`vw_Hoppy`,`vw_Speclitiy - 1.4. (5分) 查询学生`马又云`的生源地,要求显示:姓名(`StudentNameame`),生源地(`OriginPosition`) - 1.5. (5分) 查询学生表(`StudentInfo`)中还未还书的读者的学号(`StudentCode`)和姓名(`StudentName`),以及借书时间(`BorrowTime`) - 1.6. (5分) 查询借阅过书籍《射雕英雄传》的学生,要求显示:学生姓名(`StudentName`),学院(`School`),图书名(`BookName`),借阅时间(`BorrowTime`) - -2. (30分)某医院病房计算机管理中心需要如下信息: - 科室:科编号、科名、科地址、科电话、医生姓名 - 病房:病房号、床位号、所属科室名 - 医生:姓名、职称、所属科室名、年龄、工作证号 - 病人:病历号、姓名、性别、诊断、主治医生、病房号 - - 2.1. (10分)其中,一个科室有多个病房、多个医生;一个病房只能属于一个科室,一名医生只属于一个科室,但可负责多名病人的诊治,一个病人的主主治生只有一个。科编号是标识列,从1开始自增长,步进值为1,医生职称有:实习,初级,中级,高级。 - 请设计该表关系模式结构(数据库物理模型),要求: - - - a. 中文名和英文名称清晰(可借助有道翻译工具,不允许开网页) - b. 表关系准确,包括主键,外键,标识列 - c. 将完成的设计截图,并且保存物理模型文件,命名为恰当的名称 - d. 将截图和物理模型文件放在自己的文件夹中 - - 2.2. (10分)创建存储过程实现:传入病历号,查询其对应的主治医生及其所在的病房号、床位号。 - 2.3. (10分)创建触发器实现:当医生离职时,检查其是否还有未完成医治的病人,如果还存在病人则不予离职,否则可以离职。 -``` - - -### 数据来源 - -```sql --- `initDb.sql`内容 -drop database if exists LibraryDb; -create database if not exists LibraryDb; -use LibraryDb; - -/* - 学生表 -*/ -CREATE TABLE Student ( - StudentCode varchar(8) primary key, -- 学号 - StudentName varchar(20) NOT NULL, -- 姓名 - Gender int DEFAULT NULL, -- 性别 - Birthday date DEFAULT NULL, -- 出生年月 - School varchar(20) DEFAULT NULL, -- 学院 - Major varchar(20) DEFAULT NULL -- 专业 -); - - -/* - 学生扩展信息表 -*/ -CREATE TABLE StudentExtInfo( - StudentCode varchar(8) primary key , -- 学号 - Hobby varchar(120) DEFAULT NULL, -- 爱好 - Speciality varchar(120) DEFAULT NULL, -- 特长 - OriginPosition varchar(16) DEFAULT NULL, -- 生源地 - Prize int DEFAULT NULL -- 荣誉数 -); - - - -/* - 图书信息表 -*/ -CREATE TABLE BookInfo ( - ISBN varchar(13) primary key, -- ISBN - BookName varchar(32) DEFAULT NULL, -- 图书名 - Author varchar(32) DEFAULT NULL, -- 作者 - Publishing varchar(32) DEFAULT NULL, -- 出版社 - PublishedTime date DEFAULT NULL, -- 出版时间 - Introduce varchar(200) DEFAULT NULL, -- 书籍简介 - Catery varchar(8) DEFAULT NULL, -- 书籍分类 - Price decimal(10,2) DEFAULT NULL -- 书籍价格 -); - - - -/* - 图书类别表 -*/ -CREATE TABLE BookExtInfo( - Barcode varchar(9) primary key, -- barcode - ISBN varchar(13) , -- ISBN - BookStatus bit default null -- 状态 -); - - -/* - 学生借阅信息 -*/ -CREATE TABLE BorrowRecord( - Id int primary key , -- 借阅id - StudentCode varchar(8) , -- 学号 - Barcode varchar(9) , -- barcode - BorrowTime datetime DEFAULT NULL, -- 借书时间 - ReturnTime datetime DEFAULT NULL -- 还书时间 -); - - -insert into Student values('16100101','马诗',1,'1998-03-16','理学院','统计'); -insert into Student values('16130201','博文',0,'1998-04-24','信息学院','计算机科学与技术'); -insert into Student values('16130203','魏波',1,'1998-10-29','信息学院','计算机科学与技术'); -insert into Student values('16130205','黄弘',1,'1998-08-06','信息学院','数据科学与大数据技术'); -insert into Student values('17100104','易高明',0,'1999-05-29','理学院','信息与计算科学'); -insert into Student values('17100105','万承承',0,'1999-09-11','理学院','信息与计算科学'); -insert into Student values('17110101','黄弘',0,'2000-07-25','文法学院','法学'); -insert into Student values('17130202','邹睿睿',1,'1998-06-29','信息学院','计算机科学与技术'); -insert into Student values('17130204','马又云',1,'1999-03-27','信息学院','数据科学与大数据技术'); -insert into Student values('18100103','邓承明',1,'2000-07-25','理学院','信息与计算科学'); - - -insert into StudentExtInfo values('16100101','听音乐','艺术特长','北京',2); -insert into StudentExtInfo values('16130201','看小说',null,'湖南',3); -insert into StudentExtInfo values('16130203','硬笔书法','艺术特长','新疆',1); -insert into StudentExtInfo values('16130205','听音乐','艺术特长','北京',2); -insert into StudentExtInfo values('17100104','打篮球',null,'北京',3); -insert into StudentExtInfo values('17100105','编程','科技特长','北京',2); -insert into StudentExtInfo values('17110101','打篮球','科技特长','河北',2); -insert into StudentExtInfo values('17130202','编程','科技特长','天津',3); -insert into StudentExtInfo values('17130204','看电影',null,'北京',1); -insert into StudentExtInfo values('18100103',null,null,'河南',null); - - -insert into BookInfo values('7040409659','大学计算机','李凤霞','高等教育出版社','2014-10-21','教育部大学计算机课程改革项目规划教材','TP',28); -insert into BookInfo values('7301046065','刑法学','高明轩','北京大学出版社','2000-10-21','刑法_法学高等学校中国教材','O',69); -insert into BookInfo values('7806553312','射雕英雄传','金庸','广州出版社','2018-10-21','金庸作品集','I',67.9); -insert into BookInfo values('9788020002207','红楼梦','曹雪芹','人民文学出版社','2008-10-21','学术研究或个人阅读都非常合适','I',31.25); -insert into BookInfo values('9787113254100','Python语言及其应用','赵广辉','中国铁道出版社','2019-10-21','本书介绍Python语言的基础知识及其在各个领域的具体应用','TP',62.2); -insert into BookInfo values('9787115266156','管理信息系统实用教程(第2版)','王若宾','人民邮电出版社','2012-10-21','普通高等教育\十一五\国家级规划教材','TP',36); -insert into BookInfo values('9787115356840','管理信息系统实用教程(第3版)','王若宾','人民邮电出版社','2015-10-21','普通高等教育\十一五\国家级规划教材','TP',45); -insert into BookInfo values('9787302252955','人工智能:一种现代的方法(第3版)','黄今夏','清华大学出版社','2011-10-21','《人工智能:一种现代的方法(第3版)》为大学计算机教育著名教材系列之一','TP',132.6); -insert into BookInfo values('9787513030953','信息论','田甜','知识产权出版社','2015-10-21','文理科公选课指定教材','TP',126); -insert into BookInfo values('9787569302585','计算统计(第2版)','冯新奇','西安交通大学出版社','2018-10-21','本书涵盖了计算统计的所有核心内容','TP',67.5); -insert into BookInfo values('9789113268712','新编数据库技术','王若宾','中国铁道出版社','2018-10-21','本书重构了课程内容结构','TP',38.5); - - -insert into BookExtInfo values('O924.01','7301046065',0); -insert into BookExtInfo values('O924.02','7301046065',1); -insert into BookExtInfo values('O924.03','7301046065',1); -insert into BookExtInfo values('I13.212','9788020002207',1); -insert into BookExtInfo values('I13.213','9788020002207',1); -insert into BookExtInfo values('I247.56','7806553312',1); -insert into BookExtInfo values('I247.59','7806553312',0); -insert into BookExtInfo values('TP122.32','9787569302585',1); -insert into BookExtInfo values('TP122.33','9787569302585',1); -insert into BookExtInfo values('TP311.11','9787113254100',1); -insert into BookExtInfo values('TP311.12','9787113254100',0); -insert into BookExtInfo values('TP311.13','9787115356840',1); - - -insert into BorrowRecord values(1,'16130203','I247.56','2019-04-09','2019-04-13'); -insert into BorrowRecord values(2,'17130204','I247.56','2019-04-15','2019-04-17'); -insert into BorrowRecord values(3,'16130205','I247.59','2019-04-17','2019-04-20'); -insert into BorrowRecord values(4,'16100101','I247.56','2019-04-17','2019-04-18'); -insert into BorrowRecord values(5,'17100105','TP311.11','2019-04-29',null); -insert into BorrowRecord values(6,'16130201','I247.59','2019-05-01','2019-05-20'); -insert into BorrowRecord values(7,'17130202','TP311.12','2019-05-03',null); -insert into BorrowRecord values(8,'18100103','I13.212','2019-05-04','2019-05-15'); -insert into BorrowRecord values(9,'18100103','I13.213','2019-05-20','2019-05-30'); -insert into BorrowRecord values(10,'17110101','O924.01','2019-05-25',null); - - -select * from Student; -select * from StudentExtInfo; -select * from BookInfo; -select * from BookExtInfo; -select * from BorrowRecord; -``` - -## 2.SQL - -### 任务I - -```sql -综合题(第1大题40分,第2大题30分,共70分) - - -1. 利用另外一个文件`initDb.sql`,完成以下题目: - ---1.1. (10分) 对学生姓名创建普通索引(`idx_StudentName`) -CREATE INDEX idx_StudentName ON student(StudentName); - ---1.2. (10分) 创建视图`V_StudentHobbyInfo`,其中包含姓名(`StudentName`),爱好(`Hobby`),特长(`Specility`)列,并分别取别名为`vw_StudentName`,`vw_Hoppy`,`vw_Speclitiy`; -CREATE VIEW V_StudentHobbyInfo AS SELECT st.StudentName vw_StudentName,stu.Hobby vw_Hoppy,stu.Speciality vw_Speclitiy FROM student st,studentextinfo stu WHERE st.StudentCode = stu.StudentCode; - -1.4. (5分) 查询学生`马又云`的生源地,要求显示:姓名(`StudentNameame`),生源地(`OriginPosition`) -SELECT st.StudentName 姓名,stu.OriginPosition 生源地 FROM student st,studentextinfo stu WHERE st.StudentCode = stu.StudentCode AND st.StudentName = '马又云'; - -1.5. (5分) 查询学生表(`StudentInfo`)中还未还书的读者的学号(`StudentCode`)和姓名(`StudentName`),以及借书时间(`BorrowTime`) - -SELECT st.StudentCode,st.StudentName,BorrowTime FROM student st,borrowrecord bor WHERE st.StudentCode = bor.StudentCode AND st.StudentCode NOT IN (SELECT st.StudentCode FROM student st,borrowrecord bor WHERE st.StudentCode = bor.StudentCode AND ReturnTime = ReturnTime); -1.6. (5分) 查询借阅过书籍《射雕英雄传》的学生,要求显示:学生姓名(`StudentName`),学院(`School`),图书名(`BookName`),借阅时间(`BorrowTime`) - -SELECT StudentName 学生姓名,School 学院,(SELECT BookName FROM bookinfo boo WHERE boo.ISBN = book.ISBN) 图书名,BorrowTime 借阅时间 FROM student st,borrowrecord bor,bookextinfo book WHERE st.StudentCode = bor.StudentCode AND book.Barcode = bor.Barcode AND (SELECT BookName FROM bookinfo boo WHERE boo.ISBN = book.ISBN) = '射雕英雄传'; -``` - -### 任务II - -```sql - -``` - -## 3.末尾 - - - -一切为了更好的就业---Lyy \ No newline at end of file -- Gitee From fc5783404bf052282cb7f89fd07bdebf09ada6ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=96=87=E8=BE=89?= <14279272+yuwuchuji_0@user.noreply.gitee.com> Date: Mon, 21 Oct 2024 06:10:50 +0000 Subject: [PATCH 08/12] =?UTF-8?q?=E5=A4=8D=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 刘文辉 <14279272+yuwuchuji_0@user.noreply.gitee.com> --- ...210\347\273\203\344\271\240-2024-10-21.md" | 250 ++++++++++++++++++ 1 file changed, 250 insertions(+) create mode 100644 "\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" diff --git "a/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" "b/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" new file mode 100644 index 0000000..e2be596 --- /dev/null +++ "b/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" @@ -0,0 +1,250 @@ +# 综合练习 + +## 1.分析 + +### 需求 + +```sql +综合题(第1大题40分,第2大题30分,共70分) + + +1. 利用另外一个文件`initDb.sql`,完成以下题目: + + 1.1. (10分) 对学生姓名创建普通索引(`idx_StudentName`) + 1.2. (10分) 创建视图`V_StudentHobbyInfo`,其中包含姓名(`StudentName`),爱好(`Hobby`),特长(`Specility`)列,并分别取别名为`vw_StudentName`,`vw_Hoppy`,`vw_Speclitiy + 1.4. (5分) 查询学生`马又云`的生源地,要求显示:姓名(`StudentNameame`),生源地(`OriginPosition`) + 1.5. (5分) 查询学生表(`StudentInfo`)中还未还书的读者的学号(`StudentCode`)和姓名(`StudentName`),以及借书时间(`BorrowTime`) + 1.6. (5分) 查询借阅过书籍《射雕英雄传》的学生,要求显示:学生姓名(`StudentName`),学院(`School`),图书名(`BookName`),借阅时间(`BorrowTime`) + +2. (30分)某医院病房计算机管理中心需要如下信息: + 科室:科编号、科名、科地址、科电话、医生姓名 + 病房:病房号、床位号、所属科室名 + 医生:姓名、职称、所属科室名、年龄、工作证号 + 病人:病历号、姓名、性别、诊断、主治医生、病房号 + + 2.1. (10分)其中,一个科室有多个病房、多个医生;一个病房只能属于一个科室,一名医生只属于一个科室,但可负责多名病人的诊治,一个病人的主主治生只有一个。科编号是标识列,从1开始自增长,步进值为1,医生职称有:实习,初级,中级,高级。 + 请设计该表关系模式结构(数据库物理模型),要求: + + + a. 中文名和英文名称清晰(可借助有道翻译工具,不允许开网页) + b. 表关系准确,包括主键,外键,标识列 + c. 将完成的设计截图,并且保存物理模型文件,命名为恰当的名称 + d. 将截图和物理模型文件放在自己的文件夹中 + + 2.2. (10分)创建存储过程实现:传入病历号,查询其对应的主治医生及其所在的病房号、床位号。 + 2.3. (10分)创建触发器实现:当医生离职时,检查其是否还有未完成医治的病人,如果还存在病人则不予离职,否则可以离职。 +``` + + +### 数据来源 + +```sql +-- `initDb.sql`内容 +drop database if exists LibraryDb; +create database if not exists LibraryDb; +use LibraryDb; + +/* + 学生表 +*/ +CREATE TABLE Student ( + StudentCode varchar(8) primary key, -- 学号 + StudentName varchar(20) NOT NULL, -- 姓名 + Gender int DEFAULT NULL, -- 性别 + Birthday date DEFAULT NULL, -- 出生年月 + School varchar(20) DEFAULT NULL, -- 学院 + Major varchar(20) DEFAULT NULL -- 专业 +); + + +/* + 学生扩展信息表 +*/ +CREATE TABLE StudentExtInfo( + StudentCode varchar(8) primary key , -- 学号 + Hobby varchar(120) DEFAULT NULL, -- 爱好 + Speciality varchar(120) DEFAULT NULL, -- 特长 + OriginPosition varchar(16) DEFAULT NULL, -- 生源地 + Prize int DEFAULT NULL -- 荣誉数 +); + + + +/* + 图书信息表 +*/ +CREATE TABLE BookInfo ( + ISBN varchar(13) primary key, -- ISBN + BookName varchar(32) DEFAULT NULL, -- 图书名 + Author varchar(32) DEFAULT NULL, -- 作者 + Publishing varchar(32) DEFAULT NULL, -- 出版社 + PublishedTime date DEFAULT NULL, -- 出版时间 + Introduce varchar(200) DEFAULT NULL, -- 书籍简介 + Catery varchar(8) DEFAULT NULL, -- 书籍分类 + Price decimal(10,2) DEFAULT NULL -- 书籍价格 +); + + + +/* + 图书类别表 +*/ +CREATE TABLE BookExtInfo( + Barcode varchar(9) primary key, -- barcode + ISBN varchar(13) , -- ISBN + BookStatus bit default null -- 状态 +); + + +/* + 学生借阅信息 +*/ +CREATE TABLE BorrowRecord( + Id int primary key , -- 借阅id + StudentCode varchar(8) , -- 学号 + Barcode varchar(9) , -- barcode + BorrowTime datetime DEFAULT NULL, -- 借书时间 + ReturnTime datetime DEFAULT NULL -- 还书时间 +); + + +insert into Student values('16100101','马诗',1,'1998-03-16','理学院','统计'); +insert into Student values('16130201','博文',0,'1998-04-24','信息学院','计算机科学与技术'); +insert into Student values('16130203','魏波',1,'1998-10-29','信息学院','计算机科学与技术'); +insert into Student values('16130205','黄弘',1,'1998-08-06','信息学院','数据科学与大数据技术'); +insert into Student values('17100104','易高明',0,'1999-05-29','理学院','信息与计算科学'); +insert into Student values('17100105','万承承',0,'1999-09-11','理学院','信息与计算科学'); +insert into Student values('17110101','黄弘',0,'2000-07-25','文法学院','法学'); +insert into Student values('17130202','邹睿睿',1,'1998-06-29','信息学院','计算机科学与技术'); +insert into Student values('17130204','马又云',1,'1999-03-27','信息学院','数据科学与大数据技术'); +insert into Student values('18100103','邓承明',1,'2000-07-25','理学院','信息与计算科学'); + + +insert into StudentExtInfo values('16100101','听音乐','艺术特长','北京',2); +insert into StudentExtInfo values('16130201','看小说',null,'湖南',3); +insert into StudentExtInfo values('16130203','硬笔书法','艺术特长','新疆',1); +insert into StudentExtInfo values('16130205','听音乐','艺术特长','北京',2); +insert into StudentExtInfo values('17100104','打篮球',null,'北京',3); +insert into StudentExtInfo values('17100105','编程','科技特长','北京',2); +insert into StudentExtInfo values('17110101','打篮球','科技特长','河北',2); +insert into StudentExtInfo values('17130202','编程','科技特长','天津',3); +insert into StudentExtInfo values('17130204','看电影',null,'北京',1); +insert into StudentExtInfo values('18100103',null,null,'河南',null); + + +insert into BookInfo values('7040409659','大学计算机','李凤霞','高等教育出版社','2014-10-21','教育部大学计算机课程改革项目规划教材','TP',28); +insert into BookInfo values('7301046065','刑法学','高明轩','北京大学出版社','2000-10-21','刑法_法学高等学校中国教材','O',69); +insert into BookInfo values('7806553312','射雕英雄传','金庸','广州出版社','2018-10-21','金庸作品集','I',67.9); +insert into BookInfo values('9788020002207','红楼梦','曹雪芹','人民文学出版社','2008-10-21','学术研究或个人阅读都非常合适','I',31.25); +insert into BookInfo values('9787113254100','Python语言及其应用','赵广辉','中国铁道出版社','2019-10-21','本书介绍Python语言的基础知识及其在各个领域的具体应用','TP',62.2); +insert into BookInfo values('9787115266156','管理信息系统实用教程(第2版)','王若宾','人民邮电出版社','2012-10-21','普通高等教育\十一五\国家级规划教材','TP',36); +insert into BookInfo values('9787115356840','管理信息系统实用教程(第3版)','王若宾','人民邮电出版社','2015-10-21','普通高等教育\十一五\国家级规划教材','TP',45); +insert into BookInfo values('9787302252955','人工智能:一种现代的方法(第3版)','黄今夏','清华大学出版社','2011-10-21','《人工智能:一种现代的方法(第3版)》为大学计算机教育著名教材系列之一','TP',132.6); +insert into BookInfo values('9787513030953','信息论','田甜','知识产权出版社','2015-10-21','文理科公选课指定教材','TP',126); +insert into BookInfo values('9787569302585','计算统计(第2版)','冯新奇','西安交通大学出版社','2018-10-21','本书涵盖了计算统计的所有核心内容','TP',67.5); +insert into BookInfo values('9789113268712','新编数据库技术','王若宾','中国铁道出版社','2018-10-21','本书重构了课程内容结构','TP',38.5); + + +insert into BookExtInfo values('O924.01','7301046065',0); +insert into BookExtInfo values('O924.02','7301046065',1); +insert into BookExtInfo values('O924.03','7301046065',1); +insert into BookExtInfo values('I13.212','9788020002207',1); +insert into BookExtInfo values('I13.213','9788020002207',1); +insert into BookExtInfo values('I247.56','7806553312',1); +insert into BookExtInfo values('I247.59','7806553312',0); +insert into BookExtInfo values('TP122.32','9787569302585',1); +insert into BookExtInfo values('TP122.33','9787569302585',1); +insert into BookExtInfo values('TP311.11','9787113254100',1); +insert into BookExtInfo values('TP311.12','9787113254100',0); +insert into BookExtInfo values('TP311.13','9787115356840',1); + + +insert into BorrowRecord values(1,'16130203','I247.56','2019-04-09','2019-04-13'); +insert into BorrowRecord values(2,'17130204','I247.56','2019-04-15','2019-04-17'); +insert into BorrowRecord values(3,'16130205','I247.59','2019-04-17','2019-04-20'); +insert into BorrowRecord values(4,'16100101','I247.56','2019-04-17','2019-04-18'); +insert into BorrowRecord values(5,'17100105','TP311.11','2019-04-29',null); +insert into BorrowRecord values(6,'16130201','I247.59','2019-05-01','2019-05-20'); +insert into BorrowRecord values(7,'17130202','TP311.12','2019-05-03',null); +insert into BorrowRecord values(8,'18100103','I13.212','2019-05-04','2019-05-15'); +insert into BorrowRecord values(9,'18100103','I13.213','2019-05-20','2019-05-30'); +insert into BorrowRecord values(10,'17110101','O924.01','2019-05-25',null); + + +select * from Student; +select * from StudentExtInfo; +select * from BookInfo; +select * from BookExtInfo; +select * from BorrowRecord; +``` + +## 2.SQL + +### 任务I + +```sql +综合题(第1大题40分,第2大题30分,共70分) + + +1. 利用另外一个文件`initDb.sql`,完成以下题目: + +--1.1. (10分) 对学生姓名创建普通索引(`idx_StudentName`) +CREATE INDEX idx_StudentName ON student(StudentName); + +--1.2. (10分) 创建视图`V_StudentHobbyInfo`,其中包含姓名(`StudentName`),爱好(`Hobby`),特长(`Specility`)列,并分别取别名为`vw_StudentName`,`vw_Hoppy`,`vw_Speclitiy`; +CREATE VIEW V_StudentHobbyInfo AS SELECT st.StudentName vw_StudentName,stu.Hobby vw_Hoppy,stu.Speciality vw_Speclitiy FROM student st,studentextinfo stu WHERE st.StudentCode = stu.StudentCode; + +1.4. (5分) 查询学生`马又云`的生源地,要求显示:姓名(`StudentNameame`),生源地(`OriginPosition`) +SELECT st.StudentName 姓名,stu.OriginPosition 生源地 FROM student st,studentextinfo stu WHERE st.StudentCode = stu.StudentCode AND st.StudentName = '马又云'; + +1.5. (5分) 查询学生表(`StudentInfo`)中还未还书的读者的学号(`StudentCode`)和姓名(`StudentName`),以及借书时间(`BorrowTime`) + +SELECT st.StudentCode,st.StudentName,BorrowTime FROM student st,borrowrecord bor WHERE st.StudentCode = bor.StudentCode AND st.StudentCode NOT IN (SELECT st.StudentCode FROM student st,borrowrecord bor WHERE st.StudentCode = bor.StudentCode AND ReturnTime = ReturnTime); +1.6. (5分) 查询借阅过书籍《射雕英雄传》的学生,要求显示:学生姓名(`StudentName`),学院(`School`),图书名(`BookName`),借阅时间(`BorrowTime`) + +SELECT StudentName 学生姓名,School 学院,(SELECT BookName FROM bookinfo boo WHERE boo.ISBN = book.ISBN) 图书名,BorrowTime 借阅时间 FROM student st,borrowrecord bor,bookextinfo book WHERE st.StudentCode = bor.StudentCode AND book.Barcode = bor.Barcode AND (SELECT BookName FROM bookinfo boo WHERE boo.ISBN = book.ISBN) = '射雕英雄传'; +``` + +### 任务II + +#### 需求 + +``` +2. (30分)某医院病房计算机管理中心需要如下信息: + 科室:科编号、科名、科地址、科电话、医生姓名 + 病房:病房号、床位号、所属科室名 + 医生:姓名、职称、所属科室名、年龄、工作证号 + 病人:病历号、姓名、性别、诊断、主治医生、病房号 + + 2.1. (10分)其中,一个科室有多个病房、多个医生;一个病房只能属于一个科室,一名医生只属于一个科室,但可负责多名病人的诊治,一个病人的主主治生只有一个。科编号是标识列,从1开始自增长,步进值为1,医生职称有:实习,初级,中级,高级。 + 请设计该表关系模式结构(数据库物理模型),要求: + + + a. 中文名和英文名称清晰(可借助有道翻译工具,不允许开网页) + b. 表关系准确,包括主键,外键,标识列 + c. 将完成的设计截图,并且保存物理模型文件,命名为恰当的名称 + d. 将截图和物理模型文件放在自己的文件夹中 + + 2.2. (10分)创建存储过程实现:传入病历号,查询其对应的主治医生及其所在的病房号、床位号。 + 2.3. (10分)创建触发器实现:当医生离职时,检查其是否还有未完成医治的病人,如果还存在病人则不予离职,否则可以离职。 +``` + +#### 模型 + +##### C-D![c-d_2024-10-21_13-17-56](https://gitee.com/yuwuchuji_0/open-source-image-library/raw/master/image/upgit_20241021_1729488085.png) + +##### L-D![l-d_2024-10-21_13-18-45](https://gitee.com/yuwuchuji_0/open-source-image-library/raw/master/image/upgit_20241021_1729488095.png) + +##### P-D![p-d_2024-10-21_13-19-54](https://gitee.com/yuwuchuji_0/open-source-image-library/raw/master/image/upgit_20241021_1729488101.png) + +#### SQL + +```sql + +``` + +## 3.末尾 + + + +一切为了更好的就业---Lyy \ No newline at end of file -- Gitee From 8b36ca1bc66f4b571d76dc1eec1687a0ec4eb476 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=96=87=E8=BE=89?= <14279272+yuwuchuji_0@user.noreply.gitee.com> Date: Mon, 21 Oct 2024 06:34:26 +0000 Subject: [PATCH 09/12] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20?= =?UTF-8?q?=E5=88=98=E6=96=87=E8=BE=89/=E7=BB=BC=E5=90=88=E7=BB=83?= =?UTF-8?q?=E4=B9=A0-2024-10-21.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...210\347\273\203\344\271\240-2024-10-21.md" | 250 ------------------ 1 file changed, 250 deletions(-) delete mode 100644 "\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" diff --git "a/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" "b/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" deleted file mode 100644 index e2be596..0000000 --- "a/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" +++ /dev/null @@ -1,250 +0,0 @@ -# 综合练习 - -## 1.分析 - -### 需求 - -```sql -综合题(第1大题40分,第2大题30分,共70分) - - -1. 利用另外一个文件`initDb.sql`,完成以下题目: - - 1.1. (10分) 对学生姓名创建普通索引(`idx_StudentName`) - 1.2. (10分) 创建视图`V_StudentHobbyInfo`,其中包含姓名(`StudentName`),爱好(`Hobby`),特长(`Specility`)列,并分别取别名为`vw_StudentName`,`vw_Hoppy`,`vw_Speclitiy - 1.4. (5分) 查询学生`马又云`的生源地,要求显示:姓名(`StudentNameame`),生源地(`OriginPosition`) - 1.5. (5分) 查询学生表(`StudentInfo`)中还未还书的读者的学号(`StudentCode`)和姓名(`StudentName`),以及借书时间(`BorrowTime`) - 1.6. (5分) 查询借阅过书籍《射雕英雄传》的学生,要求显示:学生姓名(`StudentName`),学院(`School`),图书名(`BookName`),借阅时间(`BorrowTime`) - -2. (30分)某医院病房计算机管理中心需要如下信息: - 科室:科编号、科名、科地址、科电话、医生姓名 - 病房:病房号、床位号、所属科室名 - 医生:姓名、职称、所属科室名、年龄、工作证号 - 病人:病历号、姓名、性别、诊断、主治医生、病房号 - - 2.1. (10分)其中,一个科室有多个病房、多个医生;一个病房只能属于一个科室,一名医生只属于一个科室,但可负责多名病人的诊治,一个病人的主主治生只有一个。科编号是标识列,从1开始自增长,步进值为1,医生职称有:实习,初级,中级,高级。 - 请设计该表关系模式结构(数据库物理模型),要求: - - - a. 中文名和英文名称清晰(可借助有道翻译工具,不允许开网页) - b. 表关系准确,包括主键,外键,标识列 - c. 将完成的设计截图,并且保存物理模型文件,命名为恰当的名称 - d. 将截图和物理模型文件放在自己的文件夹中 - - 2.2. (10分)创建存储过程实现:传入病历号,查询其对应的主治医生及其所在的病房号、床位号。 - 2.3. (10分)创建触发器实现:当医生离职时,检查其是否还有未完成医治的病人,如果还存在病人则不予离职,否则可以离职。 -``` - - -### 数据来源 - -```sql --- `initDb.sql`内容 -drop database if exists LibraryDb; -create database if not exists LibraryDb; -use LibraryDb; - -/* - 学生表 -*/ -CREATE TABLE Student ( - StudentCode varchar(8) primary key, -- 学号 - StudentName varchar(20) NOT NULL, -- 姓名 - Gender int DEFAULT NULL, -- 性别 - Birthday date DEFAULT NULL, -- 出生年月 - School varchar(20) DEFAULT NULL, -- 学院 - Major varchar(20) DEFAULT NULL -- 专业 -); - - -/* - 学生扩展信息表 -*/ -CREATE TABLE StudentExtInfo( - StudentCode varchar(8) primary key , -- 学号 - Hobby varchar(120) DEFAULT NULL, -- 爱好 - Speciality varchar(120) DEFAULT NULL, -- 特长 - OriginPosition varchar(16) DEFAULT NULL, -- 生源地 - Prize int DEFAULT NULL -- 荣誉数 -); - - - -/* - 图书信息表 -*/ -CREATE TABLE BookInfo ( - ISBN varchar(13) primary key, -- ISBN - BookName varchar(32) DEFAULT NULL, -- 图书名 - Author varchar(32) DEFAULT NULL, -- 作者 - Publishing varchar(32) DEFAULT NULL, -- 出版社 - PublishedTime date DEFAULT NULL, -- 出版时间 - Introduce varchar(200) DEFAULT NULL, -- 书籍简介 - Catery varchar(8) DEFAULT NULL, -- 书籍分类 - Price decimal(10,2) DEFAULT NULL -- 书籍价格 -); - - - -/* - 图书类别表 -*/ -CREATE TABLE BookExtInfo( - Barcode varchar(9) primary key, -- barcode - ISBN varchar(13) , -- ISBN - BookStatus bit default null -- 状态 -); - - -/* - 学生借阅信息 -*/ -CREATE TABLE BorrowRecord( - Id int primary key , -- 借阅id - StudentCode varchar(8) , -- 学号 - Barcode varchar(9) , -- barcode - BorrowTime datetime DEFAULT NULL, -- 借书时间 - ReturnTime datetime DEFAULT NULL -- 还书时间 -); - - -insert into Student values('16100101','马诗',1,'1998-03-16','理学院','统计'); -insert into Student values('16130201','博文',0,'1998-04-24','信息学院','计算机科学与技术'); -insert into Student values('16130203','魏波',1,'1998-10-29','信息学院','计算机科学与技术'); -insert into Student values('16130205','黄弘',1,'1998-08-06','信息学院','数据科学与大数据技术'); -insert into Student values('17100104','易高明',0,'1999-05-29','理学院','信息与计算科学'); -insert into Student values('17100105','万承承',0,'1999-09-11','理学院','信息与计算科学'); -insert into Student values('17110101','黄弘',0,'2000-07-25','文法学院','法学'); -insert into Student values('17130202','邹睿睿',1,'1998-06-29','信息学院','计算机科学与技术'); -insert into Student values('17130204','马又云',1,'1999-03-27','信息学院','数据科学与大数据技术'); -insert into Student values('18100103','邓承明',1,'2000-07-25','理学院','信息与计算科学'); - - -insert into StudentExtInfo values('16100101','听音乐','艺术特长','北京',2); -insert into StudentExtInfo values('16130201','看小说',null,'湖南',3); -insert into StudentExtInfo values('16130203','硬笔书法','艺术特长','新疆',1); -insert into StudentExtInfo values('16130205','听音乐','艺术特长','北京',2); -insert into StudentExtInfo values('17100104','打篮球',null,'北京',3); -insert into StudentExtInfo values('17100105','编程','科技特长','北京',2); -insert into StudentExtInfo values('17110101','打篮球','科技特长','河北',2); -insert into StudentExtInfo values('17130202','编程','科技特长','天津',3); -insert into StudentExtInfo values('17130204','看电影',null,'北京',1); -insert into StudentExtInfo values('18100103',null,null,'河南',null); - - -insert into BookInfo values('7040409659','大学计算机','李凤霞','高等教育出版社','2014-10-21','教育部大学计算机课程改革项目规划教材','TP',28); -insert into BookInfo values('7301046065','刑法学','高明轩','北京大学出版社','2000-10-21','刑法_法学高等学校中国教材','O',69); -insert into BookInfo values('7806553312','射雕英雄传','金庸','广州出版社','2018-10-21','金庸作品集','I',67.9); -insert into BookInfo values('9788020002207','红楼梦','曹雪芹','人民文学出版社','2008-10-21','学术研究或个人阅读都非常合适','I',31.25); -insert into BookInfo values('9787113254100','Python语言及其应用','赵广辉','中国铁道出版社','2019-10-21','本书介绍Python语言的基础知识及其在各个领域的具体应用','TP',62.2); -insert into BookInfo values('9787115266156','管理信息系统实用教程(第2版)','王若宾','人民邮电出版社','2012-10-21','普通高等教育\十一五\国家级规划教材','TP',36); -insert into BookInfo values('9787115356840','管理信息系统实用教程(第3版)','王若宾','人民邮电出版社','2015-10-21','普通高等教育\十一五\国家级规划教材','TP',45); -insert into BookInfo values('9787302252955','人工智能:一种现代的方法(第3版)','黄今夏','清华大学出版社','2011-10-21','《人工智能:一种现代的方法(第3版)》为大学计算机教育著名教材系列之一','TP',132.6); -insert into BookInfo values('9787513030953','信息论','田甜','知识产权出版社','2015-10-21','文理科公选课指定教材','TP',126); -insert into BookInfo values('9787569302585','计算统计(第2版)','冯新奇','西安交通大学出版社','2018-10-21','本书涵盖了计算统计的所有核心内容','TP',67.5); -insert into BookInfo values('9789113268712','新编数据库技术','王若宾','中国铁道出版社','2018-10-21','本书重构了课程内容结构','TP',38.5); - - -insert into BookExtInfo values('O924.01','7301046065',0); -insert into BookExtInfo values('O924.02','7301046065',1); -insert into BookExtInfo values('O924.03','7301046065',1); -insert into BookExtInfo values('I13.212','9788020002207',1); -insert into BookExtInfo values('I13.213','9788020002207',1); -insert into BookExtInfo values('I247.56','7806553312',1); -insert into BookExtInfo values('I247.59','7806553312',0); -insert into BookExtInfo values('TP122.32','9787569302585',1); -insert into BookExtInfo values('TP122.33','9787569302585',1); -insert into BookExtInfo values('TP311.11','9787113254100',1); -insert into BookExtInfo values('TP311.12','9787113254100',0); -insert into BookExtInfo values('TP311.13','9787115356840',1); - - -insert into BorrowRecord values(1,'16130203','I247.56','2019-04-09','2019-04-13'); -insert into BorrowRecord values(2,'17130204','I247.56','2019-04-15','2019-04-17'); -insert into BorrowRecord values(3,'16130205','I247.59','2019-04-17','2019-04-20'); -insert into BorrowRecord values(4,'16100101','I247.56','2019-04-17','2019-04-18'); -insert into BorrowRecord values(5,'17100105','TP311.11','2019-04-29',null); -insert into BorrowRecord values(6,'16130201','I247.59','2019-05-01','2019-05-20'); -insert into BorrowRecord values(7,'17130202','TP311.12','2019-05-03',null); -insert into BorrowRecord values(8,'18100103','I13.212','2019-05-04','2019-05-15'); -insert into BorrowRecord values(9,'18100103','I13.213','2019-05-20','2019-05-30'); -insert into BorrowRecord values(10,'17110101','O924.01','2019-05-25',null); - - -select * from Student; -select * from StudentExtInfo; -select * from BookInfo; -select * from BookExtInfo; -select * from BorrowRecord; -``` - -## 2.SQL - -### 任务I - -```sql -综合题(第1大题40分,第2大题30分,共70分) - - -1. 利用另外一个文件`initDb.sql`,完成以下题目: - ---1.1. (10分) 对学生姓名创建普通索引(`idx_StudentName`) -CREATE INDEX idx_StudentName ON student(StudentName); - ---1.2. (10分) 创建视图`V_StudentHobbyInfo`,其中包含姓名(`StudentName`),爱好(`Hobby`),特长(`Specility`)列,并分别取别名为`vw_StudentName`,`vw_Hoppy`,`vw_Speclitiy`; -CREATE VIEW V_StudentHobbyInfo AS SELECT st.StudentName vw_StudentName,stu.Hobby vw_Hoppy,stu.Speciality vw_Speclitiy FROM student st,studentextinfo stu WHERE st.StudentCode = stu.StudentCode; - -1.4. (5分) 查询学生`马又云`的生源地,要求显示:姓名(`StudentNameame`),生源地(`OriginPosition`) -SELECT st.StudentName 姓名,stu.OriginPosition 生源地 FROM student st,studentextinfo stu WHERE st.StudentCode = stu.StudentCode AND st.StudentName = '马又云'; - -1.5. (5分) 查询学生表(`StudentInfo`)中还未还书的读者的学号(`StudentCode`)和姓名(`StudentName`),以及借书时间(`BorrowTime`) - -SELECT st.StudentCode,st.StudentName,BorrowTime FROM student st,borrowrecord bor WHERE st.StudentCode = bor.StudentCode AND st.StudentCode NOT IN (SELECT st.StudentCode FROM student st,borrowrecord bor WHERE st.StudentCode = bor.StudentCode AND ReturnTime = ReturnTime); -1.6. (5分) 查询借阅过书籍《射雕英雄传》的学生,要求显示:学生姓名(`StudentName`),学院(`School`),图书名(`BookName`),借阅时间(`BorrowTime`) - -SELECT StudentName 学生姓名,School 学院,(SELECT BookName FROM bookinfo boo WHERE boo.ISBN = book.ISBN) 图书名,BorrowTime 借阅时间 FROM student st,borrowrecord bor,bookextinfo book WHERE st.StudentCode = bor.StudentCode AND book.Barcode = bor.Barcode AND (SELECT BookName FROM bookinfo boo WHERE boo.ISBN = book.ISBN) = '射雕英雄传'; -``` - -### 任务II - -#### 需求 - -``` -2. (30分)某医院病房计算机管理中心需要如下信息: - 科室:科编号、科名、科地址、科电话、医生姓名 - 病房:病房号、床位号、所属科室名 - 医生:姓名、职称、所属科室名、年龄、工作证号 - 病人:病历号、姓名、性别、诊断、主治医生、病房号 - - 2.1. (10分)其中,一个科室有多个病房、多个医生;一个病房只能属于一个科室,一名医生只属于一个科室,但可负责多名病人的诊治,一个病人的主主治生只有一个。科编号是标识列,从1开始自增长,步进值为1,医生职称有:实习,初级,中级,高级。 - 请设计该表关系模式结构(数据库物理模型),要求: - - - a. 中文名和英文名称清晰(可借助有道翻译工具,不允许开网页) - b. 表关系准确,包括主键,外键,标识列 - c. 将完成的设计截图,并且保存物理模型文件,命名为恰当的名称 - d. 将截图和物理模型文件放在自己的文件夹中 - - 2.2. (10分)创建存储过程实现:传入病历号,查询其对应的主治医生及其所在的病房号、床位号。 - 2.3. (10分)创建触发器实现:当医生离职时,检查其是否还有未完成医治的病人,如果还存在病人则不予离职,否则可以离职。 -``` - -#### 模型 - -##### C-D![c-d_2024-10-21_13-17-56](https://gitee.com/yuwuchuji_0/open-source-image-library/raw/master/image/upgit_20241021_1729488085.png) - -##### L-D![l-d_2024-10-21_13-18-45](https://gitee.com/yuwuchuji_0/open-source-image-library/raw/master/image/upgit_20241021_1729488095.png) - -##### P-D![p-d_2024-10-21_13-19-54](https://gitee.com/yuwuchuji_0/open-source-image-library/raw/master/image/upgit_20241021_1729488101.png) - -#### SQL - -```sql - -``` - -## 3.末尾 - - - -一切为了更好的就业---Lyy \ No newline at end of file -- Gitee From daca96982745e946090bf85dc95a0985890184de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=96=87=E8=BE=89?= <14279272+yuwuchuji_0@user.noreply.gitee.com> Date: Mon, 21 Oct 2024 06:34:45 +0000 Subject: [PATCH 10/12] =?UTF-8?q?=E5=A4=8D=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 刘文辉 <14279272+yuwuchuji_0@user.noreply.gitee.com> --- ...210\347\273\203\344\271\240-2024-10-21.md" | 386 ++++++++++++++++++ 1 file changed, 386 insertions(+) create mode 100644 "\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" diff --git "a/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" "b/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" new file mode 100644 index 0000000..7ea613d --- /dev/null +++ "b/\345\210\230\346\226\207\350\276\211/\347\273\274\345\220\210\347\273\203\344\271\240-2024-10-21.md" @@ -0,0 +1,386 @@ +# 综合练习 + +## 1.分析 + +### 需求 + +```sql +综合题(第1大题40分,第2大题30分,共70分) + + +1. 利用另外一个文件`initDb.sql`,完成以下题目: + + 1.1. (10分) 对学生姓名创建普通索引(`idx_StudentName`) + 1.2. (10分) 创建视图`V_StudentHobbyInfo`,其中包含姓名(`StudentName`),爱好(`Hobby`),特长(`Specility`)列,并分别取别名为`vw_StudentName`,`vw_Hoppy`,`vw_Speclitiy + 1.4. (5分) 查询学生`马又云`的生源地,要求显示:姓名(`StudentNameame`),生源地(`OriginPosition`) + 1.5. (5分) 查询学生表(`StudentInfo`)中还未还书的读者的学号(`StudentCode`)和姓名(`StudentName`),以及借书时间(`BorrowTime`) + 1.6. (5分) 查询借阅过书籍《射雕英雄传》的学生,要求显示:学生姓名(`StudentName`),学院(`School`),图书名(`BookName`),借阅时间(`BorrowTime`) + +2. (30分)某医院病房计算机管理中心需要如下信息: + 科室:科编号、科名、科地址、科电话、医生姓名 + 病房:病房号、床位号、所属科室名 + 医生:姓名、职称、所属科室名、年龄、工作证号 + 病人:病历号、姓名、性别、诊断、主治医生、病房号 + + 2.1. (10分)其中,一个科室有多个病房、多个医生;一个病房只能属于一个科室,一名医生只属于一个科室,但可负责多名病人的诊治,一个病人的主主治生只有一个。科编号是标识列,从1开始自增长,步进值为1,医生职称有:实习,初级,中级,高级。 + 请设计该表关系模式结构(数据库物理模型),要求: + + + a. 中文名和英文名称清晰(可借助有道翻译工具,不允许开网页) + b. 表关系准确,包括主键,外键,标识列 + c. 将完成的设计截图,并且保存物理模型文件,命名为恰当的名称 + d. 将截图和物理模型文件放在自己的文件夹中 + + 2.2. (10分)创建存储过程实现:传入病历号,查询其对应的主治医生及其所在的病房号、床位号。 + 2.3. (10分)创建触发器实现:当医生离职时,检查其是否还有未完成医治的病人,如果还存在病人则不予离职,否则可以离职。 +``` + + +### 数据来源 + +```sql +-- `initDb.sql`内容 +drop database if exists LibraryDb; +create database if not exists LibraryDb; +use LibraryDb; + +/* + 学生表 +*/ +CREATE TABLE Student ( + StudentCode varchar(8) primary key, -- 学号 + StudentName varchar(20) NOT NULL, -- 姓名 + Gender int DEFAULT NULL, -- 性别 + Birthday date DEFAULT NULL, -- 出生年月 + School varchar(20) DEFAULT NULL, -- 学院 + Major varchar(20) DEFAULT NULL -- 专业 +); + + +/* + 学生扩展信息表 +*/ +CREATE TABLE StudentExtInfo( + StudentCode varchar(8) primary key , -- 学号 + Hobby varchar(120) DEFAULT NULL, -- 爱好 + Speciality varchar(120) DEFAULT NULL, -- 特长 + OriginPosition varchar(16) DEFAULT NULL, -- 生源地 + Prize int DEFAULT NULL -- 荣誉数 +); + + + +/* + 图书信息表 +*/ +CREATE TABLE BookInfo ( + ISBN varchar(13) primary key, -- ISBN + BookName varchar(32) DEFAULT NULL, -- 图书名 + Author varchar(32) DEFAULT NULL, -- 作者 + Publishing varchar(32) DEFAULT NULL, -- 出版社 + PublishedTime date DEFAULT NULL, -- 出版时间 + Introduce varchar(200) DEFAULT NULL, -- 书籍简介 + Catery varchar(8) DEFAULT NULL, -- 书籍分类 + Price decimal(10,2) DEFAULT NULL -- 书籍价格 +); + + + +/* + 图书类别表 +*/ +CREATE TABLE BookExtInfo( + Barcode varchar(9) primary key, -- barcode + ISBN varchar(13) , -- ISBN + BookStatus bit default null -- 状态 +); + + +/* + 学生借阅信息 +*/ +CREATE TABLE BorrowRecord( + Id int primary key , -- 借阅id + StudentCode varchar(8) , -- 学号 + Barcode varchar(9) , -- barcode + BorrowTime datetime DEFAULT NULL, -- 借书时间 + ReturnTime datetime DEFAULT NULL -- 还书时间 +); + + +insert into Student values('16100101','马诗',1,'1998-03-16','理学院','统计'); +insert into Student values('16130201','博文',0,'1998-04-24','信息学院','计算机科学与技术'); +insert into Student values('16130203','魏波',1,'1998-10-29','信息学院','计算机科学与技术'); +insert into Student values('16130205','黄弘',1,'1998-08-06','信息学院','数据科学与大数据技术'); +insert into Student values('17100104','易高明',0,'1999-05-29','理学院','信息与计算科学'); +insert into Student values('17100105','万承承',0,'1999-09-11','理学院','信息与计算科学'); +insert into Student values('17110101','黄弘',0,'2000-07-25','文法学院','法学'); +insert into Student values('17130202','邹睿睿',1,'1998-06-29','信息学院','计算机科学与技术'); +insert into Student values('17130204','马又云',1,'1999-03-27','信息学院','数据科学与大数据技术'); +insert into Student values('18100103','邓承明',1,'2000-07-25','理学院','信息与计算科学'); + + +insert into StudentExtInfo values('16100101','听音乐','艺术特长','北京',2); +insert into StudentExtInfo values('16130201','看小说',null,'湖南',3); +insert into StudentExtInfo values('16130203','硬笔书法','艺术特长','新疆',1); +insert into StudentExtInfo values('16130205','听音乐','艺术特长','北京',2); +insert into StudentExtInfo values('17100104','打篮球',null,'北京',3); +insert into StudentExtInfo values('17100105','编程','科技特长','北京',2); +insert into StudentExtInfo values('17110101','打篮球','科技特长','河北',2); +insert into StudentExtInfo values('17130202','编程','科技特长','天津',3); +insert into StudentExtInfo values('17130204','看电影',null,'北京',1); +insert into StudentExtInfo values('18100103',null,null,'河南',null); + + +insert into BookInfo values('7040409659','大学计算机','李凤霞','高等教育出版社','2014-10-21','教育部大学计算机课程改革项目规划教材','TP',28); +insert into BookInfo values('7301046065','刑法学','高明轩','北京大学出版社','2000-10-21','刑法_法学高等学校中国教材','O',69); +insert into BookInfo values('7806553312','射雕英雄传','金庸','广州出版社','2018-10-21','金庸作品集','I',67.9); +insert into BookInfo values('9788020002207','红楼梦','曹雪芹','人民文学出版社','2008-10-21','学术研究或个人阅读都非常合适','I',31.25); +insert into BookInfo values('9787113254100','Python语言及其应用','赵广辉','中国铁道出版社','2019-10-21','本书介绍Python语言的基础知识及其在各个领域的具体应用','TP',62.2); +insert into BookInfo values('9787115266156','管理信息系统实用教程(第2版)','王若宾','人民邮电出版社','2012-10-21','普通高等教育\十一五\国家级规划教材','TP',36); +insert into BookInfo values('9787115356840','管理信息系统实用教程(第3版)','王若宾','人民邮电出版社','2015-10-21','普通高等教育\十一五\国家级规划教材','TP',45); +insert into BookInfo values('9787302252955','人工智能:一种现代的方法(第3版)','黄今夏','清华大学出版社','2011-10-21','《人工智能:一种现代的方法(第3版)》为大学计算机教育著名教材系列之一','TP',132.6); +insert into BookInfo values('9787513030953','信息论','田甜','知识产权出版社','2015-10-21','文理科公选课指定教材','TP',126); +insert into BookInfo values('9787569302585','计算统计(第2版)','冯新奇','西安交通大学出版社','2018-10-21','本书涵盖了计算统计的所有核心内容','TP',67.5); +insert into BookInfo values('9789113268712','新编数据库技术','王若宾','中国铁道出版社','2018-10-21','本书重构了课程内容结构','TP',38.5); + + +insert into BookExtInfo values('O924.01','7301046065',0); +insert into BookExtInfo values('O924.02','7301046065',1); +insert into BookExtInfo values('O924.03','7301046065',1); +insert into BookExtInfo values('I13.212','9788020002207',1); +insert into BookExtInfo values('I13.213','9788020002207',1); +insert into BookExtInfo values('I247.56','7806553312',1); +insert into BookExtInfo values('I247.59','7806553312',0); +insert into BookExtInfo values('TP122.32','9787569302585',1); +insert into BookExtInfo values('TP122.33','9787569302585',1); +insert into BookExtInfo values('TP311.11','9787113254100',1); +insert into BookExtInfo values('TP311.12','9787113254100',0); +insert into BookExtInfo values('TP311.13','9787115356840',1); + + +insert into BorrowRecord values(1,'16130203','I247.56','2019-04-09','2019-04-13'); +insert into BorrowRecord values(2,'17130204','I247.56','2019-04-15','2019-04-17'); +insert into BorrowRecord values(3,'16130205','I247.59','2019-04-17','2019-04-20'); +insert into BorrowRecord values(4,'16100101','I247.56','2019-04-17','2019-04-18'); +insert into BorrowRecord values(5,'17100105','TP311.11','2019-04-29',null); +insert into BorrowRecord values(6,'16130201','I247.59','2019-05-01','2019-05-20'); +insert into BorrowRecord values(7,'17130202','TP311.12','2019-05-03',null); +insert into BorrowRecord values(8,'18100103','I13.212','2019-05-04','2019-05-15'); +insert into BorrowRecord values(9,'18100103','I13.213','2019-05-20','2019-05-30'); +insert into BorrowRecord values(10,'17110101','O924.01','2019-05-25',null); + + +select * from Student; +select * from StudentExtInfo; +select * from BookInfo; +select * from BookExtInfo; +select * from BorrowRecord; +``` + +## 2.SQL + +### 任务I + +```sql +综合题(第1大题40分,第2大题30分,共70分) + + +1. 利用另外一个文件`initDb.sql`,完成以下题目: + +--1.1. (10分) 对学生姓名创建普通索引(`idx_StudentName`) +CREATE INDEX idx_StudentName ON student(StudentName); + +--1.2. (10分) 创建视图`V_StudentHobbyInfo`,其中包含姓名(`StudentName`),爱好(`Hobby`),特长(`Specility`)列,并分别取别名为`vw_StudentName`,`vw_Hoppy`,`vw_Speclitiy`; +CREATE VIEW V_StudentHobbyInfo AS SELECT st.StudentName vw_StudentName,stu.Hobby vw_Hoppy,stu.Speciality vw_Speclitiy FROM student st,studentextinfo stu WHERE st.StudentCode = stu.StudentCode; + +1.4. (5分) 查询学生`马又云`的生源地,要求显示:姓名(`StudentNameame`),生源地(`OriginPosition`) +SELECT st.StudentName 姓名,stu.OriginPosition 生源地 FROM student st,studentextinfo stu WHERE st.StudentCode = stu.StudentCode AND st.StudentName = '马又云'; + +1.5. (5分) 查询学生表(`StudentInfo`)中还未还书的读者的学号(`StudentCode`)和姓名(`StudentName`),以及借书时间(`BorrowTime`) + +SELECT st.StudentCode,st.StudentName,BorrowTime FROM student st,borrowrecord bor WHERE st.StudentCode = bor.StudentCode AND st.StudentCode NOT IN (SELECT st.StudentCode FROM student st,borrowrecord bor WHERE st.StudentCode = bor.StudentCode AND ReturnTime = ReturnTime); +1.6. (5分) 查询借阅过书籍《射雕英雄传》的学生,要求显示:学生姓名(`StudentName`),学院(`School`),图书名(`BookName`),借阅时间(`BorrowTime`) + +SELECT StudentName 学生姓名,School 学院,(SELECT BookName FROM bookinfo boo WHERE boo.ISBN = book.ISBN) 图书名,BorrowTime 借阅时间 FROM student st,borrowrecord bor,bookextinfo book WHERE st.StudentCode = bor.StudentCode AND book.Barcode = bor.Barcode AND (SELECT BookName FROM bookinfo boo WHERE boo.ISBN = book.ISBN) = '射雕英雄传'; +``` + +### 任务II + +#### 需求 + +``` +2. (30分)某医院病房计算机管理中心需要如下信息: + 科室:科编号、科名、科地址、科电话、医生姓名 + 病房:病房号、床位号、所属科室名 + 医生:姓名、职称、所属科室名、年龄、工作证号 + 病人:病历号、姓名、性别、诊断、主治医生、病房号 + + 2.1. (10分)其中,一个科室有多个病房、多个医生;一个病房只能属于一个科室,一名医生只属于一个科室,但可负责多名病人的诊治,一个病人的主主治生只有一个。科编号是标识列,从1开始自增长,步进值为1,医生职称有:实习,初级,中级,高级。 + 请设计该表关系模式结构(数据库物理模型),要求: + + + a. 中文名和英文名称清晰(可借助有道翻译工具,不允许开网页) + b. 表关系准确,包括主键,外键,标识列 + c. 将完成的设计截图,并且保存物理模型文件,命名为恰当的名称 + d. 将截图和物理模型文件放在自己的文件夹中 + + 2.2. (10分)创建存储过程实现:传入病历号,查询其对应的主治医生及其所在的病房号、床位号。 + 2.3. (10分)创建触发器实现:当医生离职时,检查其是否还有未完成医治的病人,如果还存在病人则不予离职,否则可以离职。 +``` + +#### 模型 + +##### C-D![c-d_2024-10-21_13-17-56](https://gitee.com/yuwuchuji_0/open-source-image-library/raw/master/image/upgit_20241021_1729488085.png) + +##### L-D![l-d_2024-10-21_13-18-45](https://gitee.com/yuwuchuji_0/open-source-image-library/raw/master/image/upgit_20241021_1729488095.png) + +##### P-D![p-d_2024-10-21_13-19-54](https://gitee.com/yuwuchuji_0/open-source-image-library/raw/master/image/upgit_20241021_1729488101.png) + +#### SQL + +```sql +-- 创建数据库 +DROP DATABASE IF EXISTS practice_db; +create database if not exists practice_db; +use practice_db; + +drop table if exists Department; + +drop table if exists doctor; + +drop table if exists job; + +drop table if exists patient; + +drop table if exists ward; + +/*==============================================================*/ +/* Table: Department */ +/*==============================================================*/ +create table Department +( + depa_id int not null auto_increment, + depa_name varchar(255), + depa_address varchar(255), + depa_phone bigint, + primary key (depa_id) +); + +/*==============================================================*/ +/* Table: doctor */ +/*==============================================================*/ +create table doctor +( + doc_id int not null auto_increment, + doc_name varchar(255) not null, + depa_id int not null, + job_id int not null, + doc_age int, + doc_Badge int, + primary key (doc_name) +); + +/*==============================================================*/ +/* Table: job */ +/*==============================================================*/ +create table job +( + job_id int not null auto_increment, + job_name varchar(255), + primary key (job_id) +); + +/*==============================================================*/ +/* Table: patient */ +/*==============================================================*/ +create table patient +( + pati_id int not null auto_increment, + doc_name varchar(255) not null, + ward_id int not null, + pati_name varchar(255), + pati_sex int, + pati_ruslut varchar(255), + primary key (pati_id) +); + +/*==============================================================*/ +/* Table: ward */ +/*==============================================================*/ +create table ward +( + ward_id int not null auto_increment, + depa_id int not null, + ward_bed_id int, + primary key (ward_id) +); + +alter table doctor add constraint FK_doc_depa foreign key (depa_id) + references Department (depa_id) on delete restrict on update restrict; + +alter table doctor add constraint FK_job_doc foreign key (job_id) + references job (job_id) on delete restrict on update restrict; + +alter table patient add constraint FK_doc_pati foreign key (doc_name) + references doctor (doc_name) on delete restrict on update restrict; + +alter table patient add constraint FK_word_pati foreign key (ward_id) + references ward (ward_id) on delete restrict on update restrict; + +alter table ward add constraint FK_ward_depa foreign key (depa_id) + references Department (depa_id) on delete restrict on update restrict; + +``` + + + +```sql +2.2. (10分)创建存储过程实现:传入病历号,查询其对应的主治医生及其所在的病房号、床位号。 +DELIMITER // + +CREATE PROCEDURE mess_doc_oati(IN pati_id_in INT) +BEGIN + SELECT + p.pati_name AS PatientName, + d.doc_name AS DoctorName, + w.ward_id AS WardID, + w.ward_bed_id AS BedID + FROM + patient p + JOIN + doctor d ON p.doc_name = d.doc_name + JOIN + ward w ON p.ward_id = w.ward_id + WHERE + p.pati_id = pati_id_in; +END // + +DELIMITER ; + 2.3. (10分)创建触发器实现:当医生离职时,检查其是否还有未完成医治的病人,如果还存在病人则不予离职,否则可以离职。 + + DELIMITER // + +CREATE TRIGGER IF NOT EXISTS leave_Doctor +BEFORE DELETE ON doctor FOR EACH ROW +BEGIN + DECLARE patient_doc VARCHAR(255); + + -- 检查该医生是否有未完成医治的病人 + SELECT COUNT(pati_id) INTO patient_doc FROM patient WHERE doc_name = OLD.doc_name; + + -- 如果有病人则阻止删除 + IF patient_doc > 0 THEN + SIGNAL SQLSTATE '45000' + SET MESSAGE_TEXT = '该医生还有未完成医治的病人,不能离职。'; + END IF; +END // + +DELIMITER ; +``` + +## 3.末尾 + + + +一切为了更好的就业---Lyy \ No newline at end of file -- Gitee From 2be33bd8bf5f5d34860eab04990d884a930f85f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=96=87=E8=BE=89?= <14279272+yuwuchuji_0@user.noreply.gitee.com> Date: Mon, 21 Oct 2024 06:40:30 +0000 Subject: [PATCH 11/12] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=96=87=E4=BB=B6=20?= =?UTF-8?q?=E5=88=98=E6=96=87=E8=BE=89/=E8=A7=86=E5=9B=BE(=E6=9B=B4?= =?UTF-8?q?=E6=AD=A3)-2024-09-23.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...6(\346\233\264\346\255\243)-2024-09-23.md" | 60 ------------------- 1 file changed, 60 deletions(-) delete mode 100644 "\345\210\230\346\226\207\350\276\211/\350\247\206\345\233\276(\346\233\264\346\255\243)-2024-09-23.md" diff --git "a/\345\210\230\346\226\207\350\276\211/\350\247\206\345\233\276(\346\233\264\346\255\243)-2024-09-23.md" "b/\345\210\230\346\226\207\350\276\211/\350\247\206\345\233\276(\346\233\264\346\255\243)-2024-09-23.md" deleted file mode 100644 index c775a3e..0000000 --- "a/\345\210\230\346\226\207\350\276\211/\350\247\206\345\233\276(\346\233\264\346\255\243)-2024-09-23.md" +++ /dev/null @@ -1,60 +0,0 @@ --- 视图课堂练习 --- 1. 创建一个视图,显示所有部门的名称以及属于该部门的员工姓名 (*) -select dname,ename from dept d left join emp e on e.deptno=d.deptno; --- 2. 创建一个视图,显示员工姓名、职位、薪水和佣金。 -create view v_emp as -select ename,job,sal,comm from emp; --- 3. 创建一个视图,显示所有薪水大于 20000 的员工姓名、职位和薪水。 -select ename,job,sal from emp where sal > 20000; --- 4. 创建按部门分类的员工数量视图 (**) -select deptno,count(1) from emp group by deptno; -select d.dname 部门,count(e.empno) 员工数量 from emp e right join dept d on e.deptno =d.deptno group by d.deptno; --- 5. 创建一个视图,显示员工姓名、薪水及其所属的薪资等级。 -select ename 员工姓名, sal 薪水, grade 薪资等级 from emp e join salgrade s on e.sal between s.losal and hisal; --- 6. 创建一个视图,显示每个经理及其直接下属员工的姓名。 -select manager.ename,employee.ename from emp manager join emp employee on manager.empno=employee.mgr where manager.job = '经理'; --- 7. 创建一个视图,显示每个部门的名称及其平均薪水。 (*) -select d.deptno,avg(e.sal) from dept d left join emp e on d.deptno = e.deptno group by d.deptno; --- 8. 创建一个视图,显示在 2001 年以后入职的员工姓名和入职日期。 -create or replace view v_t as -select ename,hiredate from emp where hiredate>='2001-01-01'; --- 9. 删除一个已创建的视图。 -drop view v_t; --- 10. 修改第一个视图的名称 -rename table v_t to v_t1; --- 11. 修改第二个视图,显示员工姓名、职位、部门。 -create or replace view v_emp as -select ename,job,dname from emp e,dept d where e.deptno=d.deptno; - -show full tables where table_type ='VIEW'; - - --- 作业 --- 1:查询部门平均薪水最高的部门名称 -# 按部门分组查平均薪水 -select deptno,avg(sal) avgsal from emp group by deptno; -# 查询最大平均薪水 -select max(avgsal) from (select deptno,avg(sal) avgsal from emp group by deptno) a; -# 查询最大平均薪水对应的部门编号 -select deptno from emp group by deptno having avg(sal) = (select max(avgsal) from (select deptno,avg(sal) avgsal from emp group by deptno) a) - -# 子查询写法 -select * from dept where deptno = ( -select deptno from emp group by deptno having floor(avg(sal)) = (select floor(max(avgsal)) from (select deptno,avg(sal) avgsal from emp group by deptno) a)) - --- 2:查询员工比所属领导薪资高的部门名、员工名、员工领导编号 --- 自连接与子查询 -select (select dname from dept where deptno=a.deptno) 部门名,a.ename 员工名,a.mgr 员工领导编号 from emp a join emp b on a.mgr=b.empno where a.sal > b.sal; --- 内连接 -select d.dname,a.ename 员工名,a.mgr 员工领导编号 from emp a join emp b on a.mgr=b.empno join dept d on d.deptno=a.deptno where a.sal > b.sal ; --- 自然连接 -select c.dname,a.ename,a.mgr from emp a, emp b ,dept c where a.mgr=b.empno and a.deptno=c.deptno and a.sal > b.sal; - --- 3:查询工资等级为4级,2000年以后入职的工作地点为上海的员工编号、姓名和工资 --- 自然连接 -select * from emp e,dept d, salgrade s where e.deptno=d.deptno and e.sal between s.losal and s.hisal and grade=4 and hiredate>'2000-12-31' and loc='上海'; --- 内连接 -select * from emp e - join dept d on e.deptno=d.deptno - join salgrade s on e.sal between s.losal and s.hisal - where grade=4 and hiredate>'2000-12-31' and loc='上海'; \ No newline at end of file -- Gitee From b1256ff683adb22625ee3031e02deceaa17aee0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=96=87=E8=BE=89?= <14279272+yuwuchuji_0@user.noreply.gitee.com> Date: Mon, 21 Oct 2024 06:40:55 +0000 Subject: [PATCH 12/12] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 刘文辉 <14279272+yuwuchuji_0@user.noreply.gitee.com> --- ...6(\346\233\264\346\255\243)-2024-09-23.md" | 218 ++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 "\345\210\230\346\226\207\350\276\211/\350\247\206\345\233\276(\346\233\264\346\255\243)-2024-09-23.md" diff --git "a/\345\210\230\346\226\207\350\276\211/\350\247\206\345\233\276(\346\233\264\346\255\243)-2024-09-23.md" "b/\345\210\230\346\226\207\350\276\211/\350\247\206\345\233\276(\346\233\264\346\255\243)-2024-09-23.md" new file mode 100644 index 0000000..fcef66b --- /dev/null +++ "b/\345\210\230\346\226\207\350\276\211/\350\247\206\345\233\276(\346\233\264\346\255\243)-2024-09-23.md" @@ -0,0 +1,218 @@ +# 视图 + +## 1.分析 + +### 需求 + +```sql +-- 视图课堂练习 + +创建一个视图,显示所有部门的名称以及属于该部门的员工姓名 +创建一个视图,显示员工姓名、职位、薪水和佣金。 +创建一个视图,显示所有薪水大于 20000 的员工姓名、职位和薪水。 +创建按部门分类的员工数量视图 +创建一个视图,显示员工姓名、薪水及其所属的薪资等级。 +创建一个视图,显示每个经理及其直接下属员工的姓名。 +创建一个视图,显示每个部门的名称及其平均薪水。 +创建一个视图,显示在 2001 年以后入职的员工姓名和入职日期。 +删除一个已创建的视图。 +修改第一个视图的名称 +修改第二个视图,显示员工姓名、职位、部门。 + +-- 作业 +-- 1:查询部门平均薪水最高的部门名称 +-- 2:查询员工比所属领导薪资高的部门名、员工名、员工领导编号 +-- 3:查询工资等级为4级,2000年以后入职的工作地点为上海的员工编号、姓名和工资 +``` + +### 数据来源 + +``` +-- 准备数据 +create database if not exists db_view; +use db_view; + +# 部门表 +create table dept( + deptno int primary key, + dname varchar(20), + loc varchar(20) +); +insert into dept values(10, '教研部','北京'), +(20, '学工部','上海'), +(30, '销售部','广州'), +(40, '财务部','武汉'); + +# 员工表 +create table emp( + empno int primary key, + ename varchar(20), + job varchar(20), + mgr int, + hiredate date, + sal numeric(8,2), + comm numeric(8, 2), + deptno int, +-- FOREIGN KEY (mgr) REFERENCES emp(empno), + FOREIGN KEY (deptno) REFERENCES dept(deptno) ON DELETE SET NULL ON UPDATE CASCADE +); +insert into emp values +(1001, '甘宁', '文员', 1013, '2000-12-17', 8000.00, null, 20), +(1002, '黛绮丝', '销售员', 1006, '2001-02-20', 16000.00, 3000.00, 30), +(1003, '殷天正', '销售员', 1006, '2001-02-22', 12500.00, 5000.00, 30), +(1004, '刘备', '经理', 1009, '2001-4-02', 29750.00, null, 20), +(1005, '谢逊', '销售员', 1006, '2001-9-28', 12500.00, 14000.00, 30), +(1006, '关羽', '经理', 1009, '2001-05-01', 28500.00, null, 30), +(1007, '张飞', '经理', 1009, '2001-09-01', 24500.00, null, 10), +(1008, '诸葛亮', '分析师', 1004, '2007-04-19', 30000.00, null, 20), +(1009, '曾阿牛', '董事长', null, '2001-11-17', 50000.00, null, 10), +(1010, '韦一笑', '销售员', 1006, '2001-09-08', 15000.00, 0.00, 30), +(1011, '周泰', '文员', 1008, '2007-05-23', 11000.00, null, 20), +(1012, '程普', '文员', 1006, '2001-12-03', 9500.00, null, 30), +(1013, '庞统', '分析师', 1004, '2001-12-03', 30000.00, null, 20), +(1014, '黄盖', '文员', 1007, '2002-01-23', 13000.00, null, 10); + +# 工资等级表 +create table salgrade( + grade int primary key, + losal int, + hisal int +); +insert into salgrade values +(1, 7000, 12000), +(2, 12010, 14000), +(3, 14010, 20000), +(4, 20010, 30000), +(5, 30010, 99990); +``` + +## 2.SQL + +### 任务I + +```sql +-- 视图课堂练习 + +1.创建一个视图,显示所有部门的名称以及属于该部门的员工姓名 +create view v_name as select dname,ename from dept d left join emp e on e.deptno=d.deptno; +2.创建一个视图,显示员工姓名、职位、薪水和佣金。 +create view v_emp as select ename,job,sal,comm from emp; +3.创建一个视图,显示所有薪水大于 20000 的员工姓名、职位和薪水。 +create view v_sal_20000 as select ename,job,sal from emp where sal > 20000; +4.创建按部门分类的员工数量视图 +create view v_na_num as select deptno,count(1) from emp group by deptno; select d.dname 部门,count(e.empno) 员工数量 from emp e right join dept d on e.deptno =d.deptno group by d.deptno; +5.创建一个视图,显示员工姓名、薪水及其所属的薪资等级。 +create view v_na_sa as select ename 员工姓名, sal 薪水, grade 薪资等级 from emp e join salgrade s on e.sal between s.losal and hisal; +6.创建一个视图,显示每个经理及其直接下属员工的姓名。 +create view v_mgr as select manager.ename,employee.ename from emp manager join emp employee on manager.empno=employee.mgr where manager.job = '经理'; +7.创建一个视图,显示每个部门的名称及其平均薪水。 +create view v_sal as select d.deptno,avg(e.sal) from dept d left join emp e on d.deptno = e.deptno group by d.deptno; +8.创建一个视图,显示在 2001 年以后入职的员工姓名和入职日期。 +create view v_2001 as create or replace view v_t as select ename,hiredate from emp where hiredate>='2001-01-01'; +9.删除一个已创建的视图。 +drop view v_name; +10.修改第一个视图的名称 +rename table v_name to v_t1; +11.修改第二个视图,显示员工姓名、职位、部门。 +create or replace view v_emp as select ename,job,dname from emp e,dept d where e.deptno=d.deptno; + +show full tables where table_type ='VIEW'; +``` + +### 任务II + +```sql +-- 作业 +-- 1:查询部门平均薪水最高的部门名称 +SELECT dn.dname FROM dept dn +JOIN (SELECT deptno, AVG(sal) AS avg_sal FROM emp GROUP BY deptno ORDER BY avg_sal DESC LIMIT 1) em ON dn.deptno = em.deptno; +-- 2:查询员工比所属领导薪资高的部门名、员工名、员工领导编号 +SELECT dn.dname, em.ename, em.mgr FROM emp em +JOIN dept dn ON em.deptno = dn.deptno WHERE em.sal > (SELECT sal FROM emp WHERE empno = em.mgr); +-- 3:查询工资等级为4级,2000年以后入职的工作地点为上海的员工编号、姓名和工资 +SELECT em.empno, em.ename, em.sal FROM emp em +JOIN dept de ON em.deptno = de.deptno +JOIN salgrade sa ON em.sal BETWEEN sa.losal AND sa.hisal +WHERE sa.grade = 4 AND YEAR(em.hiredate) > 2000 AND de.loc = '上海'; +``` + +### 扩展其它写法 + +```sql +## -- 作业 + +-- 1:查询部门平均薪水最高的部门名称 + +### 按部门分组查平均薪水 + +select deptno,avg(sal) avgsal from emp group by deptno; + +### 查询最大平均薪水 + +select max(avgsal) from (select deptno,avg(sal) avgsal from emp group by deptno) a; + +### 查询最大平均薪水对应的部门编号 + +select deptno from emp group by deptno having avg(sal) = (select max(avgsal) from (select deptno,avg(sal) avgsal from emp group by deptno) a) + +### 子查询写法 + +select * from dept where deptno = ( +select deptno from emp group by deptno having floor(avg(sal)) = (select floor(max(avgsal)) from (select deptno,avg(sal) avgsal from emp group by deptno) a)) + +-- 2:查询员工比所属领导薪资高的部门名、员工名、员工领导编号 +-- 自连接与子查询 +select (select dname from dept where deptno=a.deptno) 部门名,a.ename 员工名,a.mgr 员工领导编号 from emp a join emp b on a.mgr=b.empno where a.sal > b.sal; +-- 内连接 +select d.dname,a.ename 员工名,a.mgr 员工领导编号 from emp a join emp b on a.mgr=b.empno join dept d on d.deptno=a.deptno where a.sal > b.sal ; +-- 自然连接 +select c.dname,a.ename,a.mgr from emp a, emp b ,dept c where a.mgr=b.empno and a.deptno=c.deptno and a.sal > b.sal; + +-- 3:查询工资等级为4级,2000年以后入职的工作地点为上海的员工编号、姓名和工资 +-- 自然连接 +select * from emp e,dept d, salgrade s where e.deptno=d.deptno and e.sal between s.losal and s.hisal and grade=4 and hiredate>'2000-12-31' and loc='上海'; +-- 内连接 +select * from emp e + join dept d on e.deptno=d.deptno + join salgrade s on e.sal between s.losal and s.hisal + where grade=4 and hiredate>'2000-12-31' and loc='上海'; +``` + + + +## 3.末尾 + +### 视图创建 + +``` +create view [视图] as [select 语句]; +``` + +## 视图修改 + +#### 名称 + +``` +rename table [视图名称] to [新名称]; +``` + +#### 结构 + +``` +create or replace view as [select 语句]; +after table [视图] as [select 语句]; +``` + +#### 数据 + + 含组合分类(group by),集合(union),聚合函数,常量...不可更改 + +#### 删除 + +``` +drop view 视图; +``` + + + +一切为了更好的就业---Lyy \ No newline at end of file -- Gitee