3-SQL语句练习题参考答案
- 格式:doc
- 大小:60.50 KB
- 文档页数:6
(完整版)sql语句练习题及答案⼀在数据库 school 中建⽴student , sc, course 表。
学⽣表、课程表、选课表属于数据库School ,其各⾃的数据结构如下:学⽣Student (Sno,Sname,Ssex,Sage,Sdept)课程表course(Cno,Cname,Cpno,Ccredit)学⽣选课SC(Sno,Cno,Grade)⼆设定主码1 Student表的主码:sno2 Course表的主码:cno3 Sc表的主码:sno,cno1写出使⽤ Create Table 语句创建表 student , sc, course 的SQL语句23 删除student表中的元组4在数据库school中删除关系student5在student表添加属性sbirthdate 类型datetimeDelete1 删除所有JSJ 系的男⽣delete from Student where Sdept=’JSJ’ and Ssex=’男’;2 删除“数据库原理”的课的选课纪录delete from SC where Cno in (select Cno fromCourse where Cname=’数据库原理’);Update1 修改0001 学⽣的系科为: JSJ2 把陈⼩明的年龄加1岁,性别改为⼥。
2 修改李⽂庆的1001课程的成绩为93 分3 把“数据库原理”课的成绩减去1分Select 查询语句⼀单表1查询年龄在19⾄21岁之间的⼥⽣的学号,姓名,年龄,按年龄从⼤到⼩排列。
2查询姓名中第2个字为“明”字的学⽣学号、性别。
3查询 1001课程没有成绩的学⽣学号、课程号4查询JSJ 、SX、WL 系的年龄⼤于25岁的学⽣学号,姓名,结果按系排列5按10分制查询学⽣的sno,cno,10分制成绩(1-10分为1 ,11-20分为2 ,30-39分为3,。
90-100为10)6查询 student 表中的学⽣共分布在那⼏个系中。
sql练习题及答案SQL练习题及答案在学习SQL(Structured Query Language)时,练习题是非常重要的一部分。
通过练习题,我们可以巩固和应用所学的SQL知识,提高自己的实践能力。
本文将介绍几个常见的SQL练习题,并提供相应的答案,希望对大家的学习有所帮助。
1. 查询员工表中所有员工的姓名和薪水。
答案:```sqlSELECT 姓名, 薪水FROM 员工表;```2. 查询员工表中薪水大于5000的员工的姓名和薪水。
答案:```sqlSELECT 姓名, 薪水FROM 员工表WHERE 薪水 > 5000;```3. 查询员工表中职位为经理的员工的姓名和薪水。
答案:```sqlSELECT 姓名, 薪水FROM 员工表WHERE 职位 = '经理';```4. 查询员工表中薪水在4000到6000之间的员工的姓名和薪水。
答案:```sqlSELECT 姓名, 薪水FROM 员工表WHERE 薪水 BETWEEN 4000 AND 6000;```5. 查询员工表中薪水最高的员工的姓名和薪水。
答案:```sqlSELECT 姓名, 薪水FROM 员工表WHERE 薪水 = (SELECT MAX(薪水) FROM 员工表);```6. 查询员工表中没有分配部门的员工的姓名和薪水。
答案:```sqlSELECT 姓名, 薪水FROM 员工表WHERE 部门 IS NULL;```7. 查询员工表中按照薪水从高到低排列的前5名员工的姓名和薪水。
答案:```sqlSELECT 姓名, 薪水FROM 员工表ORDER BY 薪水 DESCLIMIT 5;```8. 查询员工表中每个部门的员工数量。
答案:```sqlSELECT 部门, COUNT(*) AS 员工数量FROM 员工表GROUP BY 部门;```9. 查询员工表中薪水排名在第3到第5位的员工的姓名和薪水。
SQL语句练习及参考答案SQL 语句练习1.设学⽣选课数据库有关系S (sno,sname,age,sex )、SC (sno,cno,grade )和C(cno,cname,teacher ),分别表⽰学⽣、选课和课程,sno 代表学号,sname 代表学⽣姓名,age 代表年龄,sex 代表性别,grade 代表成绩,cno 代表课程号,teacher 代表任课教师。
试完成表⽰下列查询。
(1)检索年龄⼤于21的男学⽣学号(sno)和姓名(sname)。
(2)建⽴性别只能为“男”、“⼥”的约束。
(3)创建⼀个视图v1,该视图⽤来查询学⽣的选课情况,要求包含:学⽣姓名(sname),课程名(cname),任课教师teacher 和成绩grade 。
(4)检索选修课程号为k1和k5的学⽣学号(sno)。
(5)检索全部学⽣都选修的课程的课程号(cno)和课程名(cname)。
(6)删除所有男同学的选课记录。
1.(1)select sno,snae from s where sex=’男’ and age>21 (2)alter table s add constraint c1 check sex in (‘男’,’⼥’)(3)create view v1 as select sname,cname,teacher,grade from s,sc,c where s.sno=sc.sno and/doc/62176c89fe4733687e21aaca.html o=/doc/62176c89fe4733687e21aaca.html o (4)select sno fromsc sc1 where cno=’k1’ and exists (se lect * fromsc sc2 where sc1.sno =sc2.sno and/doc/62176c89fe4733687e21aaca.html o=’k5’)(5)select cno,cnam from c where not exists (select * from s where not exists (select * from sc where/doc/62176c89fe4733687e21aaca.html o=/doc/62176c89fe4733687e21aaca.html o and s.sno=sc.sno)(6)delete from sc where sno in (select sno from s where sex=’男’)或delete sc from sc,s where s.sno=sc.sno and sex=’男’2.设图书借阅数据库有关系图书(图书编号,书名,作者,出版社,出版时间,图书类别)、读者(读者编号,姓名,读者类别)和借阅(读者编号, 图书编号, 借阅⽇期,还期)。
sql练习题及答案SQL练习题及答案SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。
在数据库管理系统中,SQL被广泛应用于数据的查询、插入、更新和删除等操作。
掌握SQL语言对于数据库开发和数据分析非常重要。
在这篇文章中,我们将提供一些SQL练习题及其答案,帮助读者巩固和提升SQL的应用能力。
1. 查询员工表中所有员工的姓名和工资。
答案:```sqlSELECT 姓名, 工资 FROM 员工表;```2. 查询员工表中工资大于5000的员工的姓名和工资。
答案:```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 工资 > 5000;```3. 查询员工表中工资在3000到5000之间的员工的姓名和工资。
答案:```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 工资 BETWEEN 3000 AND 5000;```4. 查询员工表中姓"张"的员工的姓名和工资。
```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 姓名 LIKE '张%';```5. 查询员工表中工资最高的员工的姓名和工资。
答案:```sqlSELECT 姓名, 工资 FROM 员工表 WHERE 工资 = (SELECT MAX(工资) FROM 员工表);```6. 查询员工表中每个部门的员工数量。
答案:```sqlSELECT 部门, COUNT(*) AS 员工数量 FROM 员工表 GROUP BY 部门;```7. 查询员工表中每个部门的平均工资。
答案:```sqlSELECT 部门, AVG(工资) AS 平均工资 FROM 员工表 GROUP BY 部门;```8. 查询员工表中工资高于部门平均工资的员工的姓名和工资。
答案:SELECT 姓名, 工资 FROM 员工表 WHERE 工资 > (SELECT AVG(工资) FROM 员工表 GROUP BY 部门);```9. 查询员工表中没有分配部门的员工的姓名和工资。
sql语句练习题一、简答题1. 什么是数据库?数据库是一个按照结构化方式存储、管理和组织数据的集合,它允许用户通过SQL语言对数据进行查询、增加、修改和删除操作。
2. 什么是SQL?SQL(Structured Query Language)是用于与关系型数据库通信的标准语言。
通过SQL语句,可以对数据库进行查询、插入、更新和删除等操作。
二、选择题1. 关系型数据库是基于以下哪个数据模型构建的?A. 层次模型B. 网络模型C. 对象模型D. 表格模型答案:D. 表格模型2. 下面哪个关键字用于在数据库中创建新表?A. INSERTB. SELECTC. CREATED. DELETE答案:C. CREATE3. 以下哪个关键字用于向数据库中的表中插入新行?A. UPDATEB. INSERTC. DELETED. ALTER答案:B. INSERT三、假设有以下两张表:学生表(Student):学生编号(StuID)学生姓名(Name)学生性别(Gender)1 张三男2 李四女3 王五男课程表(Course):课程编号(CourseID)课程名称(CourseName)课程学时(Credit)1 数学 602 英语 403 物理 80请根据上述信息,编写SQL语句完成以下操作:1. 查询所有学生的信息(包括学生编号、姓名和性别)。
2. 查询所有学生的姓名和所选课程的名称。
3. 查询学生编号为2的学生所选课程的名称和学时。
4. 查询选修课程学时大于50的学生的姓名和性别。
5. 查询选修了物理课程的学生的学生编号和姓名。
6. 将课程学时大于50的课程按照学时的降序排列。
答案:1. SELECT StuID, Name, Gender FROM Student;2. SELECT , Course.CourseNameFROM Student INNER JOIN CourseON Student.StuID = Course.CourseID;3. SELECT , Course.CourseName, Course.CreditFROM Student INNER JOIN CourseON Student.StuID = Course.CourseIDWHERE Student.StuID = 2;4. SELECT , Student.GenderFROM Student INNER JOIN CourseON Student.StuID = Course.CourseIDWHERE Course.Credit > 50;5. SELECT Student.StuID, FROM Student INNER JOIN CourseON Student.StuID = Course.CourseIDWHERE Course.CourseName = '物理';6. SELECT * FROM CourseWHERE Credit > 50ORDER BY Credit DESC;以上是关于SQL语句练习题的解答,通过这些练习可以加深对基本SQL语句的理解和应用。
第3章 SQL语言习题参考答案1.试述SQL语言的特点。
(85页)答:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方式、语言简捷,易学易用。
2.试述SQL的定义功能。
(87页)答:SQL的数据定义功能包括定义表、定义视图和定义索引3.用SQL语句建立第二章习题5中的四个表。
S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY);供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成:CREATE TABLE S(Sno C(2) UNIQUE,Sname C(6) ,Status N(2),City C(4))零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成:CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2),WEIGHT I(2))工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、所在城市(CITY)组成:CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8),CITY C(4))供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成:CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2),QTY N(2))4.针对上题中建立的四个表试用SQL语言完成第二章习题5中的查询:(1)求供应工程J1零件的供应商号码SNO:SELECT DIST SNO FROM SPJ WHERE JNO=’J1’(2)求供应工程J1零件P1的供应商号码SNO:SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1' (3)求供应工程J1零件为红色的供应商号码SNO:SELECT SNO FROM SPJ,P WHERE JNO='J1' AND = AND COLOR='红' (4)求没有使用天津供应商生产的红色零件的工程号JNO:SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE ='天津' AND COLOR='红' AND = AND =。
以下为SQL查询练习参考答案(查询用到的表参照教材P82)。
1.查询全体学生的姓名和所在系。
Select Sno,SdeptFrom Student;2.查询所有课程的详细信息。
Select *From Course;或者Select Cno,Cname,Cpno,CcreditFrom Course;3.查询选修了课程的学生学号。
Select Distinct SnoFrom SC;注意:select子句中需要指定Distinct 关键词4.查询有学生选修的课程号。
Select Distinct CnoFrom SC;5.检索年龄在 18到 20之间(含18和20)的女生的学号、姓名及年龄。
Select Sno,Sname,SageFrom StudentWhere Ssex=’女’ and (Sage between 18 and 20);注意: where子句性别的常量值——女,需用英文状态下的单引号或双引号。
或者Select Sno,Sname,SageFrom StudentWhere Ssex=’女’ and (Sage >=18 and Sage<= 20);6.检索“200215121”学生选修课程号及成绩。
Select Cno,GradeFrom SCWhere Sno=’200215121’;7.检索选修了“1”号或“3”号课程的学生学号、课程号及成绩。
Select *From SCWhere Cno=’1’ or Cno=’3’;注意: where子句若用Cno=’1’ or ’3’是错误的,or连接的是两个布尔表达式。
8.检索所有姓王的同学的姓名、性别和所在系。
Select Sname,Ssex,SdeptFrom StudentWhere Sname like ’王*’;注意: Access中的通配符为’*’ 和’?’标。
准SQL中的通配符为’%’ 和’_’9.检索课程名中包括“数据库”的课程详细信息,结果按学分降序排列。
(sql语句试题练习及参考答案解题思路+个⼈解题思路)SQL字段说明及数据=======================================================================⼀、部门表字段描述:dp_no 部门IDdp_name 部门名称dp_loc 部门所在地⼆、员⼯表字段说明:eNo 员⼯编号eName 员⼯姓名eJob 员⼯职责emgr 上司编号eHiredate ⼊职时间eSal ⼯资ecomm 扣税dp_no 部门ID创建数据库及数据表CREATE DATABASE IF NOT EXISTS SQLTEST;CREATE TABLE IF NOT EXISTS dept(dp_no int(10) not null primary key,dp_name varchar(25),dp_loc varchar(25));CREATE TABLE IF NOT EXISTS EMP(eNo int(25) not null primary key,eName varchar(45),eJob varchar(45),emgr int(25),eHiredate date,eSal int(45),ecomm int(45),dp_no int(25));添加dept表数据:insert into dept(dp_no, dp_name, dp_loc) values (10, 'ACCOUNTING', 'NEW YORK');insert into dept(dp_no, dp_name, dp_loc) values (20, 'RESEARCH', 'DALLAS');insert into dept(dp_no, dp_name, dp_loc) values (30, 'eSalES', 'CHICAGO');insert into dept(dp_no, dp_name, dp_loc) values (40, 'OPERATIONS', 'BOSTON');commit;添加EMP表数据: eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_noinsert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7369, 'SMITH', 'CLERK', 7902, '1980-12-17', 800, null, 20);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7499, 'ALLEN', 'eSalESMAN', 7698,'1981-02-20', 1600, 300, 30);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7521, 'WARD', 'eSalESMAN', 7698, '1981-02-22', 1250, 500, 30);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7566, 'JONES', 'MANAGER', 7839, '1981-04-02' , 2975, null, 20);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7654, 'MARTIN', 'eSalESMAN', 7698, '1981-09-28' , 1250, 1400, 30);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7698, 'BLAKE', 'MANAGER', 7839, '1981-05-01' , 2850, null, 30);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7782, 'CLARK', 'MANAGER', 7839, '1981-06-09' , 2450, null, 10);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7788, 'SCOTT', 'ANALYST', 7566, '1987-04-19' , 3000, null, 20);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7839, 'KING', 'PRESIDENT', null, '1981-11-17' , 5000, null, 10);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7844, 'TURNER', 'eSalESMAN', 7698, '1981-09-08' ,1500, 0, 30);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7876, 'ADAMS', 'CLERK', 7788, '1987-05-23' , 1100, null, 20);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7900, 'JAMES', 'CLERK', 7698, '1981-12-03' , 950, null, 30);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7902, 'FORD', 'ANALYST', 7566, '1981-12-02' , 3000, null, 20);insert into EMP(eNo, eName, eJob, emgr, eHiredate, eSal, ecomm, dp_no) values (7934, 'MILLER', 'CLERK', 7782, '1982-01-23' , 5000, null, 10);操作:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------SQL基本操作案例=======================================================================⽼师给的问题及解题思路【1】. 查询出JONES的领导是谁(JONES向谁报告)。
一在数据库 school 中建立student , sc, course 表。
学生表、课程表、选课表属于数据库 school ,其各自的数据结构如下:学生 student (sno,sname,ssex,sage,sdept)课程表 course(cno,cname,cpno,ccredit)学生选课 sc(sno,cno,grade)二设定主码1 student表的主码:sno2 course表的主码:cno3 sc表的主码:sno,cno1写出使用 create table 语句创建表 student , sc, course 的sql语句23 删除student表中的元组4在数据库school中删除关系student5在student表添加属性sbirthdate 类型 datetimedelete1 删除所有 jsj 系的男生 delete from student where sdept=’jsj’ and ssex=’男’;2 删除“数据库原理”的课的选课纪录delete from sc where cno in (select cno fromcourse where cname=’数据库原理’); update1 修改 0001 学生的系科为: jsj2 把陈小明的年龄加1岁,性别改为女。
2 修改李文庆的1001课程的成绩为 93 分 3 把“数据库原理”课的成绩减去1分select 查询语句一单表1查询年龄在19至21岁之间的女生的学号,姓名,年龄,按年龄从大到小排列。
2查询姓名中第2个字为“明”字的学生学号、性别。
3查询 1001课程没有成绩的学生学号、课程号4查询jsj 、sx、wl 系的年龄大于25岁的学生学号,姓名,结果按系排列 5按10分制查询学生的sno,cno,10分制成绩(1-10分为1 ,11-20分为2 ,30-39分为3,。
90-100为10) 6查询 student 表中的学生共分布在那几个系中。
第3章 SQL语言习题参考答案1.试述SQL语言的特点。
(85页)答:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方式、语言简捷,易学易用。
2.试述SQL的定义功能。
(87页)答:SQL的数据定义功能包括定义表、定义视图和定义索引3.用SQL语句建立第二章习题5中的四个表。
S(SNO,SNAME,STATUS,CITY);P(PNO,PNAME,COLOR,WEIGHT);J(JNO,JNAME,CITY);SPJ(SNO,PNO,JNO,QTY);供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成:CREATE TABLE S(Sno C(2) UNIQUE,Sname C(6) ,Status N(2),City C(4))零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成:CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2), WEIGHT I(2))工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、所在城市(CITY)组成:CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4))供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成:CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY N(2))4.针对上题中建立的四个表试用SQL语言完成第二章习题5中的查询:(1)求供应工程J1零件的供应商号码SNO:SELECT DIST SNO FROM SPJ WHERE JNO=’J1’(2)求供应工程J1零件P1的供应商号码SNO:SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1'(3)求供应工程J1零件为红色的供应商号码SNO:SELECT SNO FROM SPJ,P WHERE JNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红'(4)求没有使用天津供应商生产的红色零件的工程号JNO:SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE S.CITY='天津' AND COLOR='红' AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。
标准SQL语言一、选择题1、下面关于SQL标准的叙述中,不正确的是(B )。
A.SQL语言是集数据定义、数据操纵、数据控制功能为一体的语言。
B.SQL语言是一种高度过程化的语言。
C.SQL标准规定数据库是按三级模式结构构建。
D.SQL语言是关系型数据库的标准语言。
E.SQL语言是面向集合的语言。
2、SQL语言中,修改基本表结构的语句是( B )。
A.UPDATE B.ALTER C.DROP D.CREATE3、SQL语言中,删除基本表结构的语句是( C )。
A.DELETE B.ALTER C.DROP D.CREATE4、下面关于“视图”的叙述中,不正确的是( C )。
A.视图是一种“虚表”,它的数据被存放在基本表中。
B.视图提供了逻辑数据独立性。
C.不能通过视图来更新数据库中的数据。
D.视图能提供对数据的安全保护。
5、下面关于SELECT语句的叙述中,不正确的是(C)。
A.SELECT产生的结果是一个集合。
B.HA VING子句必须与GROUP BY子句一起使用。
C.可以省略FROM子句。
D.可以省略WHERE子句。
二、填空题1、在使用INSERT语句向一个表中插入元组时,“值列表”中值的个数、(顺序)、类型必须与“列名表”保持一致。
2、在向一个表中插入元组时,对于未指定默认值且(不能取空值)的字段必须赋值。
3、向表中插入元组时,主键的值不能取(NULL )值。
4、在使用DELETE语句时,如果不指定(where 条件)就会将整个表的数据删除。
5、视图是从一个或几个基本表或(视图)导出的表,它与基本表不同,是一个虚表。
三、判断题1、SQL语言是面向集合操作的语言。
√2、可以通过视图来查询数据,但不能通过视图来更新数据库中的数据。
×3、在SQL Server数据库系统中,向表中插入元组时,系统自动为具有标识属性的列赋值。
√4、在SQL Server数据库系统中,向表中插入元组时,对取值类型为timestamp(时间戳)的列不能赋值,系统自动赋值。
√5、用户对数据作更新操作时,必须有相应权限。
√6、视图只能从基本表中导出,不能从视图中再导出视图。
×7、数据库中只存放视图的定义,而不存放视图对应的数据。
√8、计算列是物理上并不存储在表中的虚拟列。
√9、计算列不能用作DEFAULT 或FOREIGN KEY 约束定义,也不能与NOT NULL 约束定义一起使用。
√10、对于每个表只能创建一个标识列。
√11、ALERT语句添加到表中的新列要么允许空值,要么必须指定默认值。
√四、计算题1、现有一教学管理系统,ER模型如下:逻辑模型如下:学生(学号,姓名,性别,民族)教师(教师号,姓名,民族,职称)课程(课号,课名,课程介绍,课程类型,先导课号)教学班(课号,班号,学年,学期,限制人数)排课(教师号,课号,班号,学年,学期,周学时,开始周,结束周)选课(学号,课号,班号,成绩,未考试原因)说明:“周学时”、“开始周”、“结束周”、“限制人数”、学年、学期字段的取值类型为整数型。
“成绩”字段的取值类型为实数型。
其它字段的取值类型为字符型。
选课表存储的数据为本学期的学生选课数据请用SQL语句做如下操作:1、查询‘191854’号课的选课学生的“学号”、“成绩”,要求:按成绩降序输出,成绩相同时,按学号升序输出。
2、统计教师号为‘2002016’的教师,在2015年的上课情况。
要求显示的信息内容为:课号,课名,班号,学期,总学时(指的是每门课)3、统计每名同学在的选课情况。
要求显示的信息为:学号,姓名,选课门数,平均分。
4、把选修‘191854’课,成绩低于60分且成绩不为NULL(空)的学生的成绩提高10%。
5、把学生表中2015级学生的“密码”设置为其学号的后六位数字字符。
提示:函数RIGHT(st, n)的功能是返回字符串st的后n位字符,函数例如:RIGHT(‘123456789’, 3)=’789’6、在本数据库中,另有一个“学生成绩单”表,结构如下:学生成绩单(学号,课号,学年,学期,成绩)。
请将“选课”表中2015年第1学期的学生选课数据,添加到“学生成绩单”表中。
7、删除学生表中2011级的学生,但如果该同学在选课表中还有选课则不能删除。
1、Select 学号,姓名,成绩From 学生,选课Where 学生.学号=选课.学号and 课号=’198114’Order by 成绩DESC2、Select 课号,课名,班号,学期,周学时×(结束周-开始周+1)As 总学时From 排课,课程Where 排课.课号=课程.课号and 教师号=’2002016’and 学年=20143、Select 学号,姓名,COUNT() AS 选课门数,avg(成绩) as 平均分From 学生,选课Where 学生.学号=选课.学号Group by 学号,姓名4、UPDATE 选课SET 成绩=成绩*1.05WHERE 课号=191854’and 成绩<50 and 成绩IS NOT NULLAnd 学号in(select 学号from 学生where 民族like ‘蒙%’)5、UPDATE 学生SET 密码= RIGHT(学号,63)WHERE 学号 like ‘2015%’6、Insert Into 学生成绩单(学号,课号,学年,学期,成绩)Select 学号,课号,2015 ,1 ,成绩From 选课7、delete from 学生Where 学号like ‘2011%’and 学号not in(select distinct 学号From 选课学号like ‘2011%’)2、现有一图书管理系统,ER模型如下:逻辑模型如下:中图分类(分类号,分类名称)图书品种(品种号,分类号,书名,第一作者,出版社,出版日期,单价,数量,购买日期)馆藏图书(书号,品种号,库房号,架位号,在馆否)库房(库房号,面积,电话,校区,负责人,)库位(库房号,架位号)读者(读者号,姓名,密码,读者类型号,挂失否,停借否,停借日期,本年度超期还书次数)读者类型(读者类型号,说明,最大借书数,最长借书天数)借阅(书号,读者号,借书日期,还书日期,还否)说明:图书.购买年份,图书.价格,读者类型.最大借书数,读者类型.最大借书数的取值类型为数值型;读者.挂失否,读者.挂失否的取值类型为逻辑型;借阅.借书日期,借阅.还书日期的取值类型为日期型;其它取值类型为字符型。
请用SQL语句做如下操作:1、查询借阅了书名为《数据库原理》的读者信息。
Select 读者.读者号, 姓名From 借阅, 图书, 图书品种, 读者Where 借阅.书号=图书.书号and 图书.品种号=图书品种.图书品种号and 借阅.读者号=读者.读者号and 书名like ‘%数据库原理%’Select *From 读者Where 读者号in (Select读者号From 借阅, 图书, 图书品种Where 借阅.书号=图书.书号and 图书.品种号=图书品种.图书品种号and 书名like ‘%数据库原理%’)2、统计借书数量超过两本的读者数。
Select count(*) as 借书数超过两本的读者数From 读者Where 读者号in (select 读者号From 借阅Group by 读者号Having count(书号)>2 )3、查询目前一本书也没借的读者。
Select *From 读者Where 读者号not in (select DISTINCT 读者号From 借阅)4、读者号=‘20040001’的读者借了书号=‘74012310X-001’的书,请记录此信息。
INSERT INTO 借阅(书号,读者号,借书日期)VALUES(‘74012310X-001’,‘20040001’,getdate() )5、将“本年度超期还书次数”大于5次的读者停借。
Update 读者Set 停借否=tureWhere 本年度超期还书次数>56、删除读者号以2000开头,所借图书都已还了的读者。
Delete from 读者Where 读者号like ‘2000%’and 读者号in(select DISTINCT 读者号From 借阅Where 读者号like ‘2000%’还否=ture)7、查询图书馆2000年所购买的图书品种,每种的数量、总金额。
Select 品种号,count(*) as 每种的数量, sum(单价) as总金额From 图书,图书品种Where 图书.品种号=图书品种.品种号and year(购买日期)=2000Group by 图书品种8、查询图书分类号=‘TP311’的图书借出数量(包括已换的)。
Select count(*) as 借出数量From 借阅,图书,图书品种Where 借阅.书号=图书.书号and 图书.品种号=图书品种.图书品种号and 分类号like ‘TP311%’9、查询书名为《数据库系统教程》,作者为‘施伯乐’的书共有多少本、每本书典藏在哪个馆、是否在馆。
Select 书号, 库房号, 在馆否From 图书 , 图书品种Where 图书.品种号=图书品种.品种号 And 书名=’数据库系统教程’And 第一作者=’施伯乐’10、将到今天(函数GetDate()返回今天日期)为止,有超期未还书(还否=FALSE)的读者设置为停借。
Update 读者Set 停借否=trueWhere 读者号 IN (Select 读者号From 借阅Where 还否=False And 应还书日期< GetDate() )11、查询已借书数量等于其最大借书数的读者的姓名、单位信息。
Select 姓名, 单位From 读者 as DZ1Where 读者号 in ( Select 读者号From 借阅Where 还否=FlaseGroup By 读者号Having Count(*)=(Select 最大借书数From 读者类型Where 读者类型号= DZ1.读者类型号) )。