数据库sql查询语句练习2_习题_结果

完美WORD格式 专业整理分享 现在有一教学管理系统,具体的关系模式如下: Student (no, name, sex, birthday, class) Teacher (no, name, sex, birthday, prof, depart) Course (cno, cname, tno) Score (no, cno, degree)

其中表中包含如下数据: Course表:

Score表: 完美WORD格式

专业整理分享 Student表:

Teacher表: 根据上面描述完成下面问题: (注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原) DDL 1. 写出上述表的建表语句。

命令:create table Student(no int,name varchar(14),sex varchar(2),birthday

date,class int); 完美WORD格式 专业整理分享 create table Teacher(no int,name varchar(14),sex varchar(2),birthday date,prof varchar(10),depart varchar(10)); create table Course(cno varchar(8),cname varchar(14),tno int); create table Score(no int,cno varchar(8),degree int);

DML

2. 给出相应的INSERT语句来完成题中给出数据的插入。

命令: insert into Student values(5001,'李勇','男','1987-7-22',95001); insert into Student values(5002,'刘晨','女','1987-11-15',95002); insert into Student values(5003,'王敏','女','1987-10-5',95001); insert into Student values(5004,'李好尚','男','1987-9-25',95003); insert into Student values(5005,'李军','男','1987-7-17',95004); insert into Student values(5006,'范新位','女','1987-6-18',95005); insert into Student values(5007,'张霞东','女','1987-8-29',95006); insert into Student values(5008,'赵薇','男','1987-6-15',95007); insert into Student values(5009,'钱民将','女','1987-6-23',95008); insert into Student values(5010,'孙俪','女','1987-9-24',95002); insert into Student values(108,'赵里','男','1987-6-15',95007); insert into Student values(109,'丘处机','男','1987-6-23',95008); insert into Student values(107,'杨康','男','1987-9-24',95001);

insert into Teacher values(1,'李卫','男','1957-11-5','教授','电子工程系'); insert into Teacher values(2,'刘备','男','1967-10-9','副教授','math'); insert into Teacher values(3,'关羽','男','1977-9-20','讲师','sc'); insert into Teacher values(4,'李修','男','1957-6-25','教授','elec'); insert into Teacher values(5,'诸葛亮','男','1977-6-15','教授','计算机系'); insert into Teacher values(6,'殷素素','女','1967-1-5','副教授','sc'); insert into Teacher values(7,'周芷若','女','1947-2-23','教授','sc'); insert into Teacher values(8,'赵云','男','1980-6-13','副教授','计算机系'); insert into Teacher values(9,'张敏','女','1985-5-5','助教','sc'); insert into Teacher values(10,'黄蓉','女','1967-3-22','副教授','sc'); insert into Teacher values(11,'张三','男','1967-3-22','副教授','sc');

insert into Course values('3-101','数据库',1); insert into Course values('5-102','数学',2); insert into Course values('3-103','信息系统',3); insert into Course values('3-104','操作系统',4); 完美WORD格式 专业整理分享 insert into Course values('3-105','数据结构',5); insert into Course values('3-106','数据处理',5); insert into Course values('4-107','pascal语言',6); insert into Course values('4-108','C++',7); insert into Course values('4-109','java',8); insert into Course values('3-245','数据挖掘',10); insert into Course values('3-111','软件工程',11);

insert into Score values(5001,'3-105',69); insert into Score values(5001,'5-102',55); insert into Score values(5003,'4-108',85); insert into Score values(5004,'3-105',77); insert into Score values(5005,'3-245',100); insert into Score values(5006,'3-105',53); insert into Score values(5003,'4-109',45); insert into Score values(5008,'3-105',98); insert into Score values(5004,'4-109',68); insert into Score values(5010,'3-105',88); insert into Score values(5003,'3-105',98); insert into Score values(5005,'4-109',68); insert into Score values(5002,'3-105',88); insert into Score values(107,'3-105',98); insert into Score values(108,'4-109',68); insert into Score values(109,'3-105',88); insert into Score values(109,'4-109',80); insert into Score values(107,'3-111',88); insert into Score values(5003,'3-111',80);

单表查询 3. 以class降序输出student的所有记录(student表全部属性)

命令:select * from Student order by class desc; 完美WORD格式

专业整理分享 4. 列出教师所在的单位depart(不重复)。 命令:select distinct depart from Teacher;

5. 列出student表中所有记录的name、sex和class列 命令:select name,sex,class from Student;

6. 输出student中不姓王的同学的姓名。 命令:select name from Student except select name from Student where name like

'王%';或 select name from Student where name not like '王%'; 完美WORD格式

专业整理分享 7. 输出成绩为85或86或88或在60-80之间的记录(no,cno,degree) 命令:select no,cno,DEGREE from Score where degree=85 or degree=86 or degree=88

or degree between 60 and 80;

8. 输出班级为95001或性别为‘女’ 的同学(student表全部属性) 命令:select * from Student where class=95001 or sex='女';

合集下载

SQL语句练习题及答案

SQL语句练习题及答案

姓名:______________班级:__________________一、请根据以下要求,填写正确的SQL语句。

1.查询“学生”表中所有计算机专业的男生信息。

______________________________________________________________________________ 2.查询“学生”表中姓“李”且2006年出生的学生的学号、姓名、出生日期信息。

______________________________________________________________________________ 3.查询“学生”表中年龄最大的三名学生的学号、姓名、出生日期信息。

______________________________________________________________________________ 4.统计“学生”表中各专业男生人数,显示格式为:专业、人数。

______________________________________________________________________________ 5.查询每名“学生”的平均成绩,按平均成绩降序显示姓名和平均成绩信息。

______________________________________________________________________________ 6.已知“Student1”表结构与“Student”完全相同,现将“Student1”中所有“旅游管理”专业学生的学号、姓名及专业追加到“Student”中。

______________________________________________________________________________ 7.计算Grade等级字段的值。

计算规则为60分及以上为合格,其余为不合格。

数据库SQL语句练习题含答案

数据库SQL语句练习题含答案

SQL语句练习练习5. 1. 2: 基于不断滚动的电影数据库的实例:Movie( 电影名title,拍摄年代year ,长度length, inColor ,制片厂名studioName, 制片人证书号producerC# )StarsIn(电影名movieTitle,拍摄年份movieYear ,影星名starName) MovieStar (姓名name,地址address,性别gender ,生日birthdate) MovieExec( 姓名name,地址address ,证书号cert # ,净资产netWorth ) Studio(姓名name, 地址address,总裁证书号presC# )请写出下列SQL 查询语句:* ( a) 找出米高梅制片公司(MGM studios)的地址。

SELECT address AS Studio_AddressFROM Studio WHERE name = 'MGM';( b) 找出桑德拉·布洛克( Sandra Bullock ) 的出生日期( birthdate) 。

SELECT birthdate AS Star_BirthdateFROM MovieStar WHERE name = 'Sandra Bullock';* ( c) 找出在1980 年拍摄过电影的所有影星, 或者拍摄过电影名中含有“Love”的电影的所有影星。

SELECT starName FROM StarsInWHERE movieYear = 1980 OR movieTitle LIKE '%Love%';( d) 找出净资产至少1 000 万美元的所有行政长官。

SELECT name AS Exec_NameFROM MovieExec WHERE netWorth >= 10000000;( e) 找出所有的男影星或者是住址中含有Malibu 的影星。

sql练习题及答案

sql练习题及答案

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查询语句练习资料

SQL查询语句练习资料

SQL查询语句一.单表查询1.选择表中的若干列(即关系代数中的“投影”运算)1)查询指定列例1 查询全体学生的学号和姓名。

SELECT 学号,姓名FROM 学生;2)查询全部列例2 查询全体学生的详细记录。

SELECT *FROM 学生;3)查询经过计算的值例3 查询全体学生的姓名及其年龄。

SELECT 姓名,ROUND ( ( DATE()-出生日期) / 365,1 ) AS 年龄FROM 学生;2.选择表中的若干记录(即关系代数中的“选择”运算)1)消除取值重复的行例4 查询选修了课程的学生学号。

SELECT DISTINCT 学号FROM 成绩;2)查询满足条件的记录a)比较大小例5 查询所有少数民族同学的姓名和民族。

SELECT 姓名,民族FROM 学生WHERE民族<>”汉”b)字符匹配(模糊查询)例6 查询所有姓李的学生的姓名和性别。

SELECT 姓名,性别FROM 学生WHERE 姓名LIKE “李*”;例7 查询所有名字第2个字为“小”的学生姓名和性别。

SELECT 姓名,性别FROM 学生WHERE 姓名LIKE “?小*”;c)涉及空值的查询例8 查询缺少成绩的学生的学号和相应的课程号。

SELECT 学号, 课程编号FROM 成绩WHERE 成绩IS NULL;d)多重条件查询例9 查询所有白族男同学的姓名。

SELECT 姓名FROM 学生WHERE 性别=”男” AND 民族=”白族”;3.对查询结果排序例10查询选修了S0105 课程的学生的学号及其成绩,查询结果按分数降序排列。

SELECT 学号,成绩FROM 成绩WHERE 课程编号=”S0105”ORDER BY 成绩DESC;例11 查询全体学生情况,查询结果按所属院系的编号升序排列,同一系的学生按年龄升序排列。

SELECT *FROM 学生ORDER BY 所属院系ASC,出生日期DESC;4.使用集函数COUNT ([DISTINCT | ALL]*) 统计记录个数COUNT ([DISTINCT | ALL] <>) 统计一列中值的个数SUM ([DISTINCT | ALL] <>) 计算一列值的总和(此列必须是数值型)A VG ([DISTINCT | ALL] <>) 计算一列值的平均值(此列必须是数值型)MAX ([DISTINCT | ALL] <>) 求一列值中的最大值MIN ([DISTINCT | ALL] <>) 求一列值中的最小值例12 查询学生总人数。

sql数据库习题与答案

sql数据库习题与答案

sql数据库习题与答案SQL数据库习题与答案SQL(Structured Query Language)是一种用于管理关系型数据库的标准化语言。

在数据库管理系统中,SQL可以用于执行各种操作,如插入、更新、删除和查询数据。

对于学习SQL的人来说,练习SQL数据库习题是非常重要的。

下面将为大家提供一些常见的SQL数据库习题以及相应的答案。

1. 查询所有学生的信息答案:SELECT * FROM students;2. 查询所有学生的姓名和年龄答案:SELECT name, age FROM students;3. 查询所有学生的姓名,并按照年龄从小到大进行排序答案:SELECT name FROM students ORDER BY age;4. 查询学生表中年龄大于18岁的学生信息答案:SELECT * FROM students WHERE age > 18;5. 查询学生表中姓“张”的学生信息答案:SELECT * FROM students WHERE name LIKE '张%';6. 查询学生表中的姓名和对应的课程名称答案:SELECT , FROM students INNER JOIN course ON students.course_id = course.id;7. 查询学生表中每个班级的学生人数答案:SELECT class, COUNT(*) FROM students GROUP BY class;通过以上SQL数据库习题与答案的练习,可以帮助大家更好地理解和掌握SQL语言的基本操作和常用查询。

同时,也可以帮助大家提升解决实际问题的能力,为今后的数据库管理工作打下坚实的基础。

希望大家能够认真对待SQL数据库习题,不断提升自己的技能水平。

SQL语句练习参考答案(教学数据库)

SQL语句练习参考答案(教学数据库)

以下为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查询语句练习题

设教学数据库 Education 有三个关系: 学生关系 S ( SNO SNAMEAGE SEX SDEPT ;学习关系SC( SNO CNO GRADE ;课程关系 C (CNO CNAME CDEPT TNAME查询问题:检索计算机系的全体学生的学号,姓名和性别;检索学习课程号为 C2的学生学号与姓名; 检索选修课程名为“ DS'的学生学号与姓名; 检索选修课程号为 C2或C4的学生学号;检索至少选修课程号为 C2和C4的学生学号; 检索不学C2课的学生姓名和年龄; 检索学习全部课程的学生姓名;(1) SELECT Snq Sname Sex FROM SWHERE Sdept =' CS ;(2) 检索学习课程号为 C2的学生学号与姓名;放表建立它们二者的联系。

C T SC T S 基本思路:(1) 首先在 (2) 然后在 中的某个元素Sno 等于第二步中Sno 集合中某 和Sname 送入结果表列。

'DS));(4) 检索选修课程号为 C2或C4的学生学号;SELECT Sno FROM SCWHERE Cno=' C2' OR Cno= ‘ C4';(5) 检索至少选修课程号为 C2和C4的学生学号;SELECT Sno FROM SC X SC Y WHERE X.Sno=Y.Sno AND o=‘ C2' AND o=‘ C4';(6) 检索不学C2课的学生姓名和年龄;(IIS ....................在表I ER中找学生,要求这个学 在s (表中找学生S 在C 中不 学 FROM SC学pWCRSncmo : ‘C2);FROM SWHERE NOT EXISTS(SELECT *FROM CWHERE NOT EXISTS(SELECT *FROM SCWHERE SC.Sno=S.Sno AND o=o));(8)查询所学课程包含学生 S3所学课程的学生学号。

数据库sql查询语句练习

现在有一教学管理系统,具体的关系模式如下:Student (no, name, sex, birthday, class)Teacher (no, name, sex, birthday, prof, depart)Course (cno, cname, tno)Score (no, cno, degree)其中表中包含如下数据:Course表:Score表:Student表:Teacher表:根据上面描述完成下面问题:(注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原)DDL1.写出上述表的建表语句。

2.给出相应的INSERT语句来完成题中给出数据的插入。

单表查询3.以class降序输出student的所有记录(student表全部属性)4.列出教师所在的单位depart(不重复)。

5.列出student表中所有记录的name、sex和class列6.输出student中不姓王的同学的姓名。

7.输出成绩为85或86或88或在60-80之间的记录(no,cno,degree)8.输出班级为95001或性别为‘女’的同学(student表全部属性)9.以cno升序、degree降序输出score的所有记录。

(score表全部属性)10.输出男生人数及这些男生分布在多少个班级中11.列出存在有85分以上成绩的课程编号。

12.输出95001班级的学生人数13.输出‘3-105’号课程的平均分14.输出student中最大和最小的birthday日期值15.显示95001和95004班全体学生的全部个人信息(不包括选课)。

(student表全部属性)聚合查询16.输出至少有5个同学选修的并以3开头的课程的课程号,课程平均分,课程最高分,课程最低分。

17.输出所选修课程中最低分大于70分且最高分小于90分的学生学号及学生姓名18.显示所教课程选修人数多于5人的教师姓名19.输出’95001’班级所选课程的课程号和平均分20.输出至少有两名男同学的班级编号。

数据库中SQL查询语句习题含答案

有三个关系:查询问题:设教学数据库Education(5)检索至少选修课程号为C2和C4的学生学号;;学习关),SDEPTAGE学生关系S(SNO,SNAME,,SEXSELECT Sno,CNAME系SC(SNO,CNO,GRADE);课程关系C(CNO,FROM SC X,SC Y,TNAME)CDEPT WHERE = AND =‘C2' AND =‘C4' ;)检索计算机系的全体学生的学号,姓名和性别;(1(6)检索不学C2课的学生姓名和年龄;2)检索学习课程号为C2的学生学号与姓名;(Sname Sname DS”的学生学号与姓名;3()检索选修课程名为“ FROM S FROM S的学生学号;或C4C2(4)检索选修课程号为 WHERE Sno NOT IN WHERE NOT EXISTS和C4的学生学号;C2(5)检索至少选修课程号为( SELECT Sno( SELECT *FROM SC FROM SC)检索不学C2课的学生姓名和年龄;(6 WHERE Cno=‘C2'); WHERE =7()检索学习全部课程的学生姓名; AND Cno=‘C2');(S3所学课程的学生学号。

8)查询所学课程包含学生(7)检索学习全部课程的学生姓名;)检索计算机系的全体学生的学号,姓名和性别;(1在表S中找学生,要求这个学生学了全部课程。

换言之,,Sex SnameSELECT Sno,在S表中找学生,在C中不存在一门课程,这个学生没FROM S有学。

'WHERE Sdept =CS';SELECT Sname FROM S 的学生学号与姓名;)检索学习课程号为(2C2WHERE NOT EXISTS(SELECT *,Sname Sno Sname ,FROM S FROM C SC FROM S,WHERE Sno IN WHERE NOT EXISTS WHERE = ( SELECT Sno(SELECT *;'AND =‘C2 FROM SCFROM SC)‘C2'Cno= WHEREWHERE = AND =));( 3”的学生学号与姓名)检索选修课程名为“DS(8)查询所学课程包含学生S3所学课程的学生学号。

sql 查询 练习题

sql 查询练习题SQL查询练习题SQL是一种用于管理和操作关系型数据库的语言,它可以让我们轻松地从数据库中提取所需的数据。

在实际应用中,熟练掌握SQL查询语句的编写是非常重要的。

为了帮助大家提高SQL查询的能力,下面将给出一些SQL查询练习题。

1. 查询所有员工的姓名和工资。

```sqlSELECT 姓名, 工资 FROM 员工表;```2. 查询所有部门的名称和员工数量。

```sqlSELECT 部门名称, COUNT(*) AS 员工数量 FROM 员工表 GROUP BY 部门名称; ```3. 查询所有工资高于平均工资的员工信息。

```sqlSELECT * FROM 员工表 WHERE 工资 > (SELECT AVG(工资) FROM 员工表);```4. 查询每个部门工资最高的员工信息。

```sqlSELECT * FROM 员工表 WHERE (部门名称, 工资) IN (SELECT 部门名称, MAX(工资) FROM 员工表 GROUP BY 部门名称);```5. 查询没有分配部门的员工信息。

```sqlSELECT * FROM 员工表 WHERE 部门名称 IS NULL;```6. 查询每个部门的平均工资,并按照平均工资降序排列。

```sqlSELECT 部门名称, AVG(工资) AS 平均工资 FROM 员工表 GROUP BY 部门名称ORDER BY 平均工资 DESC;```7. 查询每个部门的员工数量,并按照员工数量升序排列。

```sqlSELECT 部门名称, COUNT(*) AS 员工数量 FROM 员工表 GROUP BY 部门名称ORDER BY 员工数量 ASC;```8. 查询员工表中工资排名前10的员工信息。

```sqlSELECT * FROM 员工表 ORDER BY 工资 DESC LIMIT 10;```9. 查询每个部门的员工工资排名前3的员工信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档