sql练习题

合集下载

sql 五十题

sql 五十题

sql 五十题以下是一些SQL练习题,共50题:1. 什么是SQL?2. 什么是关系型数据库?3. 什么是主键?4. 什么是外键?5. 什么是索引?6. 什么是查询?7. 什么是插入操作?8. 什么是更新操作?9. 什么是删除操作?10. 什么是聚合函数?11. 什么是分组操作?12. 什么是排序操作?13. 什么是联接操作?14. 什么是子查询?15. 什么是视图?16. 什么是存储过程?17. 什么是触发器?18. 如何使用WHERE子句进行过滤?19. 如何使用ORDER BY子句进行排序?20. 如何使用GROUP BY子句进行分组?21. 如何使用HAVING子句进行分组过滤?22. 如何使用JOIN操作联接表?23. 如何使用聚合函数SUM、AVG、MIN、MAX?24. 如何使用聚合函数COUNT、COUNT()和COUNT(列名)的区别?25. 如何使用子查询嵌套查询?26. 如何创建视图并查询视图数据?27. 如何创建存储过程并调用存储过程?28. 如何创建触发器并触发触发器?29. 如何使用INSERT INTO语句插入数据?30. 如何使用UPDATE语句更新数据?31. 如何使用DELETE语句删除数据?32. 如何使用TRUNCATE TABLE语句清空表数据?33. 如何使用UNION操作符合并多个查询结果?34. 如何使用UNION ALL操作符合并多个查询结果(包括重复行)?35. 如何使用IN操作符筛选符合条件的多个值?36. 如何使用LIKE操作符进行模糊查询?37. 如何使用NOT操作符进行否定筛选?38. 如何使用BETWEEN操作符筛选范围值?39. 如何使用EXISTS操作符检查子查询结果是否存在?40. 如何使用NOT EXISTS操作符检查子查询结果是否存在(否定筛选)?41. 如何使用CASE语句进行条件判断和值转换?42. 如何使用DISTINCT关键字去除查询结果的重复行?43. 如何使用LIMIT关键字限制查询结果的行数?44. 如何使用JOIN操作连接多个表并筛选数据?45. 如何使用INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL JOIN的区别和用法?46. 如何使用视图提高查询效率和维护数据安全性?47. 如何使用存储过程存储复杂的业务逻辑和重复使用的查询语句?48. 如何使用触发器自动执行特定事件或数据修改操作?49. 如何优化SQL查询性能,提高数据库的响应速度?50. 如何安全地管理和维护数据库,确保数据的完整性和可靠性?。

(完整版)sql语句练习题及答案

(完整版)sql语句练习题及答案

(完整版)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语句练习题完整版

1、查询Student表中的所有记录的Sname、Ssex和Class列2、查询教师所有的单位即不重复的Depart列。

3、查询Student表的所有记录。

4、查询Score表中成绩在60到80之间的所有记录。

5、查询Score表中成绩为85,86或88的记录。

6、查询Student表中“95031”班或性别为“女”的同学记录。

7、以Class降序查询Student表的所有记录。

8、以Cno升序、Degree降序查询Score表的所有记录。

9、查询“95031”班的学生人数。

10、查询Score表中的最高分的学生学号和课程号。

11、查询…3-105‟号课程的平均分。

12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。

13、查询最低分大于70,最高分小于90的Sno列。

14、查询所有学生的Sname、Cno和Degree列。

15、查询所有学生的Sno、Cname和Degree列。

16、查询所有学生的Sname、Cname和Degree列。

17、查询“95033”班所选课程的平均分。

18、假设使用如下命令建立了一个grade表:create table grade(low number(3,0),upp number(3),rank char(1));insert into grade values(90,100,‟A‟);insert into grade values(80,89,‟B‟);insert into grade values(70,79,‟C‟)insert into grade values(60,69,‟D‟);insert into grade values(0,59,‟E‟);commit;现查询所有同学的Sno、Cno和rank列。

19、查询选修“3-105”课程的成绩高于“109”号同学成绩的所有同学的记录。

20、查询score中选学一门以上课程的同学中分数为非最高分成绩的记录。

SQL专项练习题

SQL专项练习题

SQL专项练习题SQL专项练习题一、选择题:1、SQL语言的核心是_____。

A)数据查询B)数据定义C)数据操纵D)数据控制2、下列关于SQL语言特点的叙述错误的是_________。

A)SQL是一种一体化的语言B)SQL是一种高度过程化的语言C)SQL语言非常简洁D)SQL语言可以直接以命令方式交互使用,也可嵌入到程序中使用3、在SQL查询中,HAVING子句的作用是______。

A)指出分组查询的范围B)指出分组查询的值C)指出分组查询的条件人D)指出分组查询的字段4、在SQL中,与集合成员算术比较操作“元组<>ALL”的等价操作符是______。

A)NOT IN B)IN C)<>SOME D)=SOME5、下列利用空值查询的命令中,正确的一项是______。

A)IS NULL B)=NULL C)NULL D)SELECT NULL6、可以将两个SELECT语句的查询结果通过并运算合并成一个查询结果,需要子句_____。

A)WHERE B)UNION C)ORDER BY D)IN7、SQL的查询结果可以存放到多种类型的文件中,下列不能用来存放查询结果的是_________。

A)临时表B)永久性表C)视图D)文本文件8、下列不属于SQL数据操作功能的是_______。

A)新建表B)添加记录C)修改记录D)删除记录9、下列关于INSERT-SQL的叙述正确的是______。

A)在表末尾增加一条记录B)在表头增加一条记录C)在表中任意位置插入一条记录D)在表中可插入若干条记录10、若需统计“选课”表中已经选修了课程的学生人数,下面语句正确的是_____。

A)SELECT COUNT(DISTINCT 学生号)FROM 选课B)SELECT COUNT(学生号)FROM 选课C)SELECT COUNT(*)FROM 选课D)SELECT COUNT (DISTINCT *)FROM 选课11、“学生表”的结构为(学生号N(4),姓名C(8),性别C(2),年龄N(2)),其中学号为主索引,下面可使用SQL_INSERT插入到表中的记录是_______。

sql练习题

sql练习题

五、SQL语言及查询视图(一)选择题1. 在命令窗口执行SQL命令时,若命令要占用多行,续行符是______。

A)冒号(:) B)分号(;) C)逗号(,) D)连字符(-)2. 只有满足联接条件的记录才包含在查询结果中,这种联接为______。

A)左联接B)右联接C)内部联接D)完全联接3. SQL语言是______语言。

A)层次数据库B)网络数据库C)关系数据库D)非数据库4. SELECT-SQL语句是______。

A)选择工作区语句B)数据查询语句C)选择标准语句D)据修改语句5.SQL语言是具有______的功能。

A) 关系规范化、数据操纵、数据控制B)数据定义、数据操纵、数据控制C)数据定义、关系规范化、数据控制D)数据定义、关系规范化、数据操纵6.在SQL的计算查询中,用于求平均值的函数是______。

A)A VG B)A VERAGE C)SUM D)A VER7.SQL语句中查询条件短语的关键字是______。

A) WHERE B)FOR C) WHILE D)CONDITION8.SQL的核心是______。

A)数据查询B)数据修改C)数据定义D)数据控制9.SQL中可使用的通配符有______。

A)*(星号)B)%(百分号)C)_(下划线)D)B和C10.在SQL查询时,使用WHERE子句指出的是_____。

A)查询目标B)查询结果C)查询条件D)查询视图11.SQL实现分组查询的短语是______。

A)ORDER BY B)GROUP BY C)HA VING D)ASC12.将查询结果放在数组中应使用______短语。

A)INTO CURSOR B)TO ARRAY C)INTO TABLE D)INTO ARRAY13.SQL是哪几个英文单词的缩写?A)Standard Query Language B)Structured Query LanguageC)Select Query Language D)以上都不是14.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。

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. 取出关系中的某些列,并消去重复的元组的关系运算称为(投影运算)。

2. 在学生数据库中,用SQL语句列出所有女生的姓名,应该对学生关系进行(选择和投影)操作。

3. 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是(多对一)。

4. 在一个关系中,不能有相同的(属性)。

5. (数据库管理系统)是位于用户与操作系统之间的一层数据管理软件。

6. 数据库系统不仅包括数据库本身,还要包括相应的硬件,软件和(各类相关人员)。

7. SQL语言属于(据有关系代数和关系演算双重特点的语言)。

8. SQL Server采用的体系结构是(单进程、多线程)。

9. SQL语言是(结构化查询语言)。

10.SQL语言最主要功能是(数据查询)。

11.SQL Server2005在安装之前,应注意的事项是(SQL Server2005在安装之前,必须在操作系统级启用TCP/IP)。

12.下列关于身份验证模式叙述正确的是(只有Windows的当前用户才可选择Windows身份验证模式)。

13.在连接SQL Server时需要提供用户名和密码的身份验证模式是(SQL Server身份验证)。

14.在连接到数据库引擎时,有两种连接认证方式,其中在(SQL Server身份验证)方式下,需要客户端提供登录时需要的用户名和密码。

15.下列(pubs)不是SQL Server2005的系统数据库。

16.关于数据库事务日志文件叙述错误的是(如果未指定事务日志文件的增长量,则文件大小保持不变)。

17.每个数据库有且只能有一个(主数据文件)。

18.下面(队列、约束)不是SQL Server2005数据库对象。

19.如果数据库中的数据量非常大,除了将数据存储在主数据文件中,还可以将一部分数据存储在(次数据文件)。

20.用以交互地设计和测试T-SQL语句的是(查询命令窗口)。

sql练习题

sql练习题

sql练习题SQL练习题在现代信息化社会中,数据的处理和管理变得愈发重要。

而SQL(Structured Query Language)作为一种用于管理和处理关系型数据库的语言,也成为了各行各业从事数据分析和管理的必备技能之一。

为了提高自己的SQL技能,我们可以通过练习题来不断巩固和提升。

练习题一:查询商品信息假设有一个商品表(Product)和一个供应商表(Supplier),其中商品表包含了商品的ID、名称、价格和供应商ID等信息,供应商表包含了供应商的ID和名称等信息。

请写出一条SQL语句,查询出所有商品的名称、价格和供应商名称。

解答一:```sqlSELECT , Product.Price, FROM ProductJOIN Supplier ON Product.SupplierID = Supplier.ID;```练习题二:统计销售额假设有一个订单表(Orders)和一个订单详情表(OrderDetails),其中订单表包含了订单的ID、日期和客户ID等信息,订单详情表包含了订单详情的ID、订单ID、商品ID和数量等信息。

请写出一条SQL语句,统计每个客户的总销售额,并按销售额降序排序。

解答二:```sqlSELECT Orders.CustomerID, SUM(Product.Price * OrderDetails.Quantity) AS TotalSalesFROM OrdersJOIN OrderDetails ON Orders.ID = OrderDetails.OrderIDJOIN Product ON OrderDetails.ProductID = Product.IDGROUP BY Orders.CustomerIDORDER BY TotalSales DESC;```练习题三:查询员工信息假设有一个员工表(Employee)和一个部门表(Department),其中员工表包含了员工的ID、姓名和部门ID等信息,部门表包含了部门的ID和名称等信息。

sql语句练习50题

sql语句练习50题

sql语句练习50题Student(Sid,Sname,Sage,Ssex) 学⽣表Course(Cid,Cname,Tid) 课程表SC(Sid,Cid,score) 成绩表Teacher(Tid,Tname) 教师表练习内容:1.查询“某1”课程⽐“某2”课程成绩⾼的所有学⽣的学号;SELECT a.sid FROM (SELECT sid,score FROM SC WHERE cid=1) a,(SELECT sid,score FROM SC WHERE cid=3) b WHEREa.score>b.score AND a.sid=b.sid;此题知识点,嵌套查询和给查出来的表起别名2.查询平均成绩⼤于60分的同学的学号和平均成绩;SELECT sid,avg(score) FROM sc GROUP BY sid having avg(score) >60;此题知识点,GROUP BY 语句⽤于结合合计函数,根据⼀个或多个列对结果集进⾏分组。

group by后⾯不能接where,having代替了where3.查询所有同学的学号、姓名、选课数、总成绩SELECT Student.sid,Student.Sname,count(SC.cid),sum(score)FROM Student left Outer JOIN SC on Student.sid=SC.cid GROUP BY Student.sid,Sname4.查询姓“李”的⽼师的个数;select count(teacher.tid)from teacher where teacher.tname like'李%'5.查询没学过“叶平”⽼师课的同学的学号、姓名;SELECT Student.sid,Student.Sname FROM Student WHERE sid not in (SELECT distinct( SC.sid) FROM SC,Course,Teacher WHERE SC.cid=Course.cid AND Teacher.id=Course.tid AND Teacher.Tname='叶平');此题知识点,distinct是去重的作⽤6.查询学过“```”并且也学过编号“```”课程的同学的学号、姓名;select a.SID,a.SNAME from (select student.SNAME,student.SID from student,course,sc where cname='c++'and sc.sid=student.sid and sc.cid=course.cid) a,(select student.SNAME,student.SID from student,course,sc where cname='english'and sc.sid=student.sid and sc.cid=course.cid) b where a.sid=b.sid;标准答案(但是好像不好使)SELECT Student.S#,Student.Sname FROM Student,SC WHERE Student.S#=SC.S# ANDSC.C#='001'and exists( SELECT * FROM SC as SC_2 WHERE SC_2.S#=SC.S# AND SC_2.C#='002');此题知识点,exists是在集合⾥找数据,as就是起别名7.查询学过“叶平”⽼师所教的所有课的同学的学号、姓名;select a.sid,a.sname from (select student.sid,student.sname from student,teacher,course,scwhere teacher.TNAME='杨巍巍' and teacher.tid=course.tid and course.cid=sc.cid and student.sid=sc.sid) a标准答案:SELECT sid,Sname FROM Student WHERE sid in (SELECT sid FROM SC ,Course ,Teacher WHERE SC.cid=Course.cid AND Teacher.tid=Course.tid AND Teacher.Tname='杨巍巍' GROUP BY sid having count(SC.cid)=(SELECT count(cid) FROM Course,Teacher WHERE Teacher.tid=Course.tid AND Tname='杨巍巍'))8.查询课程编号“”的成绩⽐课程编号“”课程低的所有同学的学号、姓名;select a.sid,a.sname from(select student.SID,student.sname,sc.SCORE from student,sc where student.sid=sc.sid and sc.cid=1) a, (select student.SID,student.sname,sc.score from student,sc where student.sid=sc.sid and sc.cid=2) b where a.score<b.score anda.sid=b.sid标准答案:SELECT sid,Sname FROM (SELECT Student.sid,Student.Sname,score ,(SELECT score FROM SC SC_2 WHERE SC_2.sid=Student.sid AND SC_2.cid=1) score2 FROM Student,SCWHERE Student.sid=SC.sid AND cid=1) S_2 WHERE score2 <score;9.查询所有课程成绩⼩于分的同学的学号、姓名;SELECT sid,Sname FROM Student WHERE sid not in (SELECT Student.sid FROM Student,SC WHERE Student.sid=SC.sid AND score>60);此题知识点,先查出⼤于60分的,然后not in 就是⼩于60分的了10.查询没有学全所有课的同学的学号、姓名;SELECT Student.sid,Student.Sname FROM Student,SCWHERE Student.sid=SC.sid GROUP BY Student.sid,Student.Sname having count(cid) <(SELECT count(cid) FROM Course);11.查询⾄少有⼀门课与学号为“”的同学所学相同的同学的学号和姓名;12.查询⾄少学过学号为“”同学所有⼀门课的其他同学学号和姓名;SELECT student.sid,student.Sname FROM Student,SC WHERE Student.sid=SC.sid AND cid in (SELECT cid FROM SC WHERE sid=1)此题知识点,SELECT sid,Sname FROM Student,SC WHERE Student.sid=SC.sid AND cid in (SELECT cid FROM SC WHEREsid=1)这样写是错误的,因为from后⾯是两个表,不能明确是哪个表⾥⾯的sid和sname所以错误提⽰是“未明确定义列”13.把“SC”表中“叶平”⽼师教的课的成绩都更改为此课程的平均成绩;update sc set score=(select avg(score) from sc,course,teacher where course.cid=sc.cid and course.tid=teacher.tid andteacher.tname='杨巍巍')14.查询和“”号的同学学习的课程完全相同的其他同学学号和姓名;SELECT sid FROM SC WHERE cid in (SELECT cid FROM SC WHERE sid=6) GROUP BY sid having count(*)=(SELECT count(*) FROM SC WHERE sid=6);此题知识点,⽤数量来判断15.删除学习“叶平”⽼师课的SC表记录;delete from sc s where s.cid in (select c.cid from teacher t,course c where t.tid = c.tid and tname='李⼦')此题知识点,嵌套查询可以分布考虑,先查出李⼦⽼师都交了什么课的id,然后再删除那些id的值16.向SC表中插⼊⼀些记录,这些记录要求符合以下条件:没有上过编号“”课程的同学学号、课程的平均成绩;Insert into SC SELECT sid,2,(SELECT avg(score) FROM SC WHERE cid=2) FROM Student WHERE sid not in (SELECT sid FROM SC WHERE cid=2);17.按平均成绩从⾼到低显⽰所有学⽣的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显⽰:学⽣ID,,数据库,企业管理,英语,有效课程数,有效平均分;(没做出来)18.查询各科成绩最⾼和最低的分:以如下形式显⽰:课程ID,最⾼分,最低分;select cid as 课程号,max(score)as 最⾼分,min(score) as 最低分 from sc group by cid标准答案(但是运⾏不好使)SELECT L.cid As 课程ID,L.score AS 最⾼分,R.score AS 最低分FROM SC L ,SC AS RWHERE L.cid = R.cid ANDL.score = (SELECT MAX(IL.score)FROM SC AS IL,Student AS IMWHERE L.cid = IL.cid AND IM.sid=IL.sidGROUP BY IL.cid)AND R.Score = (SELECT MIN(IR.score) FROM SC AS IR WHERE R.cid = IR.cid GROUP BY IR.cid );19.按各科平均成绩从低到⾼和及格率的百分数从⾼到低顺序26.查询每门课程被选修的学⽣数select sc.cid,count(sc.sid) from sc,course where sc.cid=course.cid group by sc.cid27.查询出只选修了⼀门课程的全部学⽣的学号和姓名SELECT SC.sid,Student.Sname,count(cid) AS 选课数 FROM SC ,StudentWHERE SC.sid=Student.sid GROUP BY SC.sid ,Student.Sname having count(cid)=1;32.查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列SELECT Cid,Avg(score) FROM SC GROUP BY cid ORDER BY Avg(score),cid DESC ;37.查询不及格的课程,并按课程号从⼤到⼩排列SELECT cid,sid FROM sc WHERE score <60 ORDER BY cid38.查询课程编号为且课程成绩在分以上的学⽣的学号和姓名;select student.sid,student.sname from sc,student where sc.cid=1 and sc.score>60 and sc.sid=student.sid40.查询选修“叶平”⽼师所授课程的学⽣中,成绩最⾼的学⽣姓名及其成绩select student.sname,sc.score from sc,student,teacher,course c where teacher.tname='李⼦'and teacher.tid=c.tid and c.cid=sc.cid and sc.sid=student.sid and sc.score=(select max(score)from sc where sc.cid=c.cid)41.查询各个课程及相应的选修⼈数select sc.cid ,count(sc.sid)from sc,student where sc.sid=student.sid group by sc.cid43.查询每门功成绩最好的前两名44.统计每门课程的学⽣选修⼈数(超过⼈的课程才统计)。

数据库的sql语句练习题

数据库的sql语句练习题

数据库的sql语句练习题1. 练习题一:查询语句基础在学生表(students)中,包含以下字段:学号(id)、姓名(name)、年龄(age)、性别(gender)、班级(class)、成绩(score)。

请编写SQL语句实现以下需求:a) 查询学生表中所有学生的信息。

b) 查询学生表中的男性学生信息。

c) 查询学生表中年龄为18岁的学生信息。

d) 查询学生表中成绩大于等于90分的学生信息。

e) 查询学生表中姓“张”的学生信息。

2. 练习题二:修改语句练习在学生表(students)中,某个学生的学号为1001,需要将该学生的年龄修改为20岁,请编写相应的SQL语句实现此操作。

3. 练习题三:插入语句练习在学生表(students)中添加一条新纪录,学号为1002,姓名为李明,年龄为19岁,性别为男,班级为三年级,成绩为87分,请编写相应的SQL语句实现此操作。

4. 练习题四:删除语句练习在学生表(students)中,某个学生的学号为1003,需要将该学生的信息从表中删除,请编写相应的SQL语句实现此操作。

5. 练习题五:使用多表查询存在两张表,学生表(students)和课程表(courses)。

学生表包含字段:学号(id)、姓名(name)、班级(class);课程表包含字段:课程编号(course_id)、课程名称(course_name)。

已知约德尔学院中,学号为1001的学生参加了编号为1的课程,请编写SQL语句查询学号为1001的学生所选的课程及课程名称。

6. 练习题六:排序查询练习在学生表(students)中,查询所有学生的信息,并按照成绩从高到低进行排序。

以上是数据库的SQL语句练习题,请按照上述要求编写相应的SQL语句进行解答。

祝你练习愉快,取得好成绩!。

SQL练习题

SQL练习题

SQL练习题一.选择题:1 检索职工表中工资大于800元的职工号,正确的命令是() A、SELECT 职工号 WHERE 工资>800 B、SELECT 职工号 FROM 职工 SET 工资>800 C、SELECT 职工号 FROM 职工 WHERE 工资>800 D、SELECT 职工号 FROM 职工 FOR 工资>8002 找出在仓库面积大于500的仓库中工作的职工号,以及这些职工工作所在的城市,正确的命令是() A、SELECT 职工号,城市 FROM 职工;WHERE (面积>500).OR.(职工.仓库号=仓库.仓库号) B、SELECT 职工号,城市 FROM 职工;WHERE (面积>500).AND.(职工.仓库号=仓库.仓库号) C、SELECT 职工号,城市 FROM 仓库,职工;WHERE (面积>500).OR.(职工.仓库号=仓库.仓库号) D、SELECT 职工号,城市 FROM 仓库,职工;WHERE (面积>500).AND.(职工.仓库号=仓库.仓库号)3 利用SQL语句,检索仓库中至少有一名职工的仓库信息,正确的命令是() A、SELECT * FROM 仓库表 WHERE IN;(SELECT 仓库号 FROM 职工表) B、 SELECT * FROM 仓库表 WHERE NOT IN;(SELECT 仓库号 FROM 职工表) C、 SELECT * FROM 仓库表 WHERE 仓库号EXISTS;(SELECT * FROM 职工表 WHERE 仓库号=仓库表.仓库号) D、 SELECT * FROM 仓库表 WHERE EXISTS;(SELECT * FROM 职工表 WHERE 仓库号=仓库表.仓库号)4 从设备表中查询单价大于100000元的设备,并显示设备名称,正确的命令是() A、 SELECT 单价>100000 FROM 设备表 FOR 设备名称 B、 SELECT 设备名称FROM 设备表 FOR单价>100000 C、SELECT 单价>100000 FROM 设备表 WHERE 设备名称 D、SELECT 设备名称 FROM 设备表 WHERE 单价>1000005 为设备表增加一个“设备总金额N(10,2)”字段,正确的命令是() A、ALTER TABLE 设备表 ADD FIELDS 设备总金额N(10,2) B、ALTER TABLE 设备表 ADD 设备总金额N(10,2) C、ALTER TABLE 设备表 ALTER FIELDS 设备总金额N(10,2) D、ALTER TABLE 设备表 ALTER 设备总金额N(10,2)6 利用SQL数据更新功能,自动计算更新每个“设备总金额”字段的字段值,该字段值等于“单价*设备数量”的值,正确命令为() A、 UPDATE 设备表 SET 设备总金额=单价*设备数量 B、UPDATE 设备表 FOR 设备总金额=单价*设备数量C、 UPDATE 设备表 WITH 设备总金额=单价*设备数量 D、UPDATE 设备表 WHERE 设备总金额=单价*设备数量7 有如下SQL语句:SELECT 使用部门,SUM(单价*设备数量)AS 总金额 FROM 设备表;WHERE .NOT.(进口);GROUP BY 使用部门执行该语句后,第一条记录的“总金额”字段值是() A、196000 B、143000 C、294000 D、172008 SQL的查询结果可以存放到多种类型的文件中,下列都可以用来存放查询结果的文件类型是( ) A、临时表、视图、文本文件 B、数组、永久性表、视图 C、永久性表、数组、文本文件 D、视图、永久性表、文本文件9 语句“DELETE FROM 成绩表 WHERE 计算机<60”的功能是() A、物理删除成绩表中计算机成绩在60分以下的学生记录 B、物理删除成绩表中计算机成绩在60分以上的学生记录 C、逻辑删除成绩表中计算机成绩在60分以下的学生记录D、将计算机成绩低于60分的字段值删除,但保留记录中其它字段值10 关于SQL的超联接查询,说法错误的是() A、在SQL中可以进行内部联接、左联接、右联接和全联接 B、SQL的超联接运算符“*=”代表左联接,“=*”代表右联接 C、Visual FoxPro同样支持超联接运算符“*=”和“=*” D、利用全联接,即使两个表中的记录不满足联接条件,也会在目标表或查询结果中出现,只是不满足条件的记录对应部分为NULL11 在SQL语句中,表达式“工资BETWEEN 1220 AND 1250”的含义是() A、工资>1220.AND.工资<1250 B、工资>1220.OR.工资<1250 C、工资>=1220.AND.工资<=1250 D、工资>=1220.OR.工资<=125012 SQL语句中修改表结构的命令是() A、ALTER TABLE B、MODIFY TABLE C、ALTER STRUCTURE D、MODIFY STRUCTURE13 删除表的SQL命令是() A、DROP TABLE B、DELETE TABLE C、ERASE TABLED、KILL TABLE14 在SQL语句中用于分组的短语是() A、MODIFY B、ORDER BY C、GROUP BY D、SUM15 要为职工表的所有职工增加100元工资,正确的SQL命令是() A、REPLACE 职工 SET 工资=工资+100 B、UPDATE 职工 SET 工资=工资+100 C、EDIT 职工 SET 工资=工资+100 D、CHANGE 职工 SET 工资=工资+10016 要为职工表的所有职工增加100元工资,正确的SQL命令是() A、UPDATE 职工 SET 工资 WITH 工资+100 B、UPDATE 工资=工资+100 FOR 职工 C、UPDATE 工资 WITH 工资+100 FOR 职工 D、UPDATE 职工 SET 工资=工资+10017 SQL语言的核心是() A、数据查询 B、数据定义 C、数据操纵 D、数据控制18 SQL除了数据查询的功能,还有() A、数据定义 B、数据操纵 C、数据控制 D、以上答案均正确19 下列关于SQL语言特点叙述错误的是() A、SQL是一种一体化的语言 B、SQL是一种高度过程化的语言 C、SQL语言非常简洁 D、SQL语言可以直接以命令方式交互使用,也可嵌入到程序中使用20 在Visual FoxPro中,SQL没有提供() A、数据查询功能 B、数据定义功能 C、数据操纵功能 D、数据控制功能21 标准的SQL基本查询语句的结构是() A、SELECT FROM ORDER BY B、SELECT WHERE GROUP BY C、SELECT WHERE HAVING D、SELECT FROM WHERE22 在SQL SELECT中,要将查询结果进行排序,应该使用短语 A、ORDER BY B、GROUP BY C、COUNT D、SUM23 嵌套查询命令中的IN相当于() A、等号(=) B、集合运算符(∈) C、加号(+) D、减号(-)24 在SQL查询中,HAVING字句的作用是() A、指出分组查询的范围 B、指出分组查询的值 C、指出分组查询的条件 D、指出分组查询的字段25 下列利用空值查询的命令是,正确的一项是() A、IS NULL B、=NULL C、NULL D、SELECT NULL26 下列关于别名和自联接的说法中,正确的是() A、SQL语句允许在WHERE 短语中为关系定义别名 B、为关系定义别名的格式为:<别名><关系名> C、在关系的自联接操作中,别名是必不可少的 D、以上说法均正确27 Visual FoxPro的SQL SELECT语句的联接格式能实现联接表的个数为() A、一个表 B、两个表 C、三个表 D、任意多的表28 在显示结果时,只需要显示满足条件的前几个记录,则必须使用短语() A、TOP B、BOTTOM C、PERCENT D、BY29 下列不属于SQL数据操作功能的是() A、新建表 B、添加记录 C、修改记录 D、删除记录30 下列关于INSERT SQL的叙述正确的是() A、在表末尾增加一条记录 B、在表头增加一条记录 C、在表中任意位置插入一条记录 D、在表中可插入若干条记录31 下列关于SQL对表的定义说法错误的是() A、利用CREATE TABLE语句可以定义一个新的数据表结构 B、利用SQL的表定义语句可以定义表中的主索引 C、利用SQL的表定义语句可以定义表的域完整性、字段有效性规则等 D、对于自由表的定义,SQL同样可以实现其完整性、有效性规则等信息的设置32 若需统计“选课”表中已经选修了课程的学生人数,下面语句正确的是() A、SELECT COUNT(DISTINCT 学生号) FROM 选课 B、SELECT COUNT (学生号)FROM 选课 C、SELECT COUNT(*)FROM 选课 D、SELECT COUNT(DISTINCT *)FROM 选课33 “学生表”的结构为(学生号N(4),姓名C(8),性别C(2),年龄N (2)),其中学号为主索引,下面可使用SQL INSERT插入到表中的记录是()A、(“1001”,“张力”,“男”,“18”) B、(1001,“张力”,NULL,18) C、(NULL,“张力”,“男”,18) D、(1001,张力,男,18)34 SQL语言是() A、层次数据库语言 B、网状数据库语言 C、关系数据库语言 D、对立的数据库语言35 下列查询类型中,不属于SQL查询的是() A、简单查询 B、嵌套查询 C、联接查询 D、视图查询36 SQL中可使用通配符() A、~ B、* C、? D、第二选项和第三选项37 在SQL的计算查询中,用于计数的函数是() A、SUM B、COUNT C、AVG D、MAX38 下列关于SQL嵌套查询的说法,正确的是() A、既能对外层查询排序,又能对内层查询排序 B、只能对外层查询排序,不能对内层查询排序 C、不能对外层查询排序,只能对内层查询排序 D、既不能对外层查询排序,也不能对内层查询排序39 在SQL命令中设置为全联接的短语是() A、INNER JOIN B、LEFT JOIN C、RIGHT JOIN D、FULL JOIN40 如果要将由表派生出的视图中的字段重新命名,需要使用的短语是() A、AS B、FOR C、WHERE D、TO41 利用SQL的CREATE命令定义一个自由表,可以定义表的() A、字段名、字段类型、字段宽度 B、字段的主索引和域完整性的约束规则 C、定义字段的有效性规则 D、以上内容均可定义42 如果要查询工资表中,基本工资在1000~2000元之间的职工记录,则下列语句正确的是() A、SELECT * FROM 工资表 WHERE 基本工资 NOT BETWEEN 1000AND 2000 B、SELECT * FROM 工资表 WHERE 基本工资 BETWEEN 1000~2000 C、SELECT * FROM 工资表 WHERE 基本工资 BETWEEN 1000 AND 2000 D、SELECT 工资表 FROM * WHERE BETWEEN 1000 AND 200043 假设有学生表和成绩表两个数据表文件,如果要查找总分在350分以上的学生姓名及名次,下列语句中正确的是() A、SELECT 姓名,名次 FROM 学生表,成绩表 WHERE (总分>350).OR.(学生表.学号=成绩表.学号) B、SELECT 姓名,名次 FROM 学生表,成绩表 C、SELECT 姓名,名次 FROM 学生表,成绩表 WHERE (总分>350).AND.(学生表.学号=成绩表.学号) D、SELECT 姓名,名次 FROM 学生表,成绩表 WHERE (总分>=350).AND.(学生表.学号=成绩表.学号)44 在SQL语句中,修改表中数据的命令是() A、ALTER B、UPDATE C、DELETED、INSERT45 SQL的数据操作语言不包括() A、INSERT B、UPDATE C、DELETE D、CHANGE46 在SELECT SQL语句中,条件短语的关键字是() A、FROM B、WHERE C、FORD、CONDITION47 如果在SQL SELECT语句的ORDER BY字句中指定了DESC,则表示() A、按升序排序 B、按降序排序 C、按索引字段排序 D、错误语句48 用于显示部分查询结果的TOP短语,必须与下列()短语连用 A、WHERE B、ORDER BY C、FROM D、GROUP BY49 将两个SELECT语句的查询结果合并成一个查询结果的运算符是() A、WHEREB、JOINC、UNIOND、INTO50 在SQL的数据定义功能中,修改表结构的命令有3种,下列说法正确的是()A、3种命令格式都可以用来添加、修改和删除字段名B、3种命令格式都可以用来定义、修改和删除字段有效性规则C、3种命令格式都有各自的功能,不能将所有功能集于一种格式中D、以上说法均不正确二.填空题:1、从职工表中检索所有的工资值,将以下命令补充完整。

SQL50道练习题

SQL50道练习题

Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表CREATE TABLE Student(sid INT PRIMARY KEY AUTO_INCREMENT, sname VARCHAR(50),sage INT,ssex VARCHAR(4));CREATE TABLE Course(cid INT PRIMARY KEY AUTO_INCREMENT, cname VARCHAR(50),tid INT);CREATE TABLE sc(sid INT PRIMARY KEY AUTO_INCREMENT, cid INT,score DECIMAL(4,1));CREATE TABLE Teacher(tid INT PRIMARY KEY AUTO_INCREMENT,tname VARCHAR(50));问题:1、查询“001”课程比“002”课程成绩高的所有学生的学号;select a.S# from (select s#,score from SC where C#='001') a,(select s#,scorefrom SC where C#='002') bwhere a.score>b.score and a.s#=b.s#;2、查询平均成绩大于60分的同学的学号和平均成绩;select S#,avg(score)from scgroup by S# having avg(score) >60;3、查询所有同学的学号、姓名、选课数、总成绩;select Student.S#,Student.Sname,count(SC.C#),sum(score)from Student left Outer join SC on Student.S#=SC.S#group by Student.S#,Sname4、查询姓“李”的老师的个数;select count(distinct(Tname))from Teacherwhere Tname like '李%';5、查询没学过“叶平”老师课的同学的学号、姓名;select Student.S#,Student.Snamefrom Studentwhere S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平');6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002');7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;select S#,Snamefrom Studentwhere S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Cou rse.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶平'));8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 wher e SC_2.S#=Student.S# and SC_2.C#='002') score2from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2<score;9、查询所有课程成绩小于60分的同学的学号、姓名;select S#,Snamefrom Studentwhere S# not in (select Student.S# from Student,SC where S.S#=SC.S# and score>60);10、查询没有学全所有课的同学的学号、姓名;select Student.S#,Student.Snamefrom Student,SCwhere Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#)<(select count (C#) from Course);11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;select S#,Sname from Student,SC where Student.S#=SC.S# and C# in select C# from SC where S#='1001';12、查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名;select distinct SC.S#,Snamefrom Student,SCwhere Student.S#=SC.S# and C# in (select C# from SC where S#='001');13、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;update SC set score=(select avg(SC_2.score)from SC SC_2where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teach er.T# and Teacher.Tname='叶平');14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名;select S# from SC where C# in (select C# from SC where S#='1002')group by S# having count(*)=(select count(*) from SC where S#='1002');15、删除学习“叶平”老师课的SC表记录;Delect SCfrom course ,Teacherwhere Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='叶平';16、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“003”课程的同学学号、2、号课的平均成绩;Insert SC select S#,'002',(Select avg(score)from SC where C#='002') from Student where S# not in (Select S# from SC where C#='002');17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示:学生ID,,数据库,企业管理,英语,有效课程数,有效平均分SELECT S# as 学生ID,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='004') AS 数据库,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='001') AS 企业管理,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='006') AS 英语,COUNT(*) AS 有效课程数, AVG(t.score) AS 平均成绩FROM SC AS tGROUP BY S#ORDER BY avg(t.score)18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分SELECT L.C# As 课程ID,L.score AS 最高分,R.score AS 最低分FROM SC L ,SC AS RWHERE L.C# = R.C# andL.score = (SELECT MAX(IL.score)FROM SC AS IL,Student AS IMWHERE L.C# = IL.C# and IM.S#=IL.S#GROUP BY IL.C#)ANDR.Score = (SELECT MIN(IR.score)FROM SC AS IRWHERE R.C# = IR.C#GROUP BY IR.C#);19、按各科平均成绩从低到高和及格率的百分数从高到低顺序SELECT t.C# AS 课程号,max(ame)AS 课程名,isnull(A VG(score),0) AS 平均成绩,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分数FROM SC T,Coursewhere t.C#=course.C#GROUP BY t.C#ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT( *) DESC20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '0 01' THEN 1 ELSE 0 END) AS 企业管理平均分,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CAS E WHEN C# = '001' THEN 1 ELSE 0 END) AS 企业管理及格百分数,SUM(CASE WHEN C# = '002' THEN score ELSE 0 END)/SUM(CASE C# WHEN '002' T HEN 1 ELSE 0 END) AS 马克思平均分,100 * SUM(CASE WHEN C# = '002' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CAS E WHEN C# = '002' THEN 1 ELSE 0 END) AS 马克思及格百分数,SUM(CASE WHEN C# = '003' THEN score ELSE 0 END)/SUM(CASE C# WHEN '003' T HEN 1 ELSE 0 END) AS UML平均分,100 * SUM(CASE WHEN C# = '003' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CAS E WHEN C# = '003' THEN 1 ELSE 0 END) AS UML及格百分数,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' T HEN 1 ELSE 0 END) AS 数据库平均分,100 * SUM(CASE WHEN C# = '004' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) AS 数据库及格百分数FROM SC21、查询不同老师所教不同课程平均分从高到低显示SELECT max(Z.T#) AS 教师ID,MAX(Z.Tname) AS 教师姓名,C.C# AS 课程ID,MAX(ame) AS 课程名称,A VG(Score) AS 平均成绩FROM SC AS T,Course AS C ,Teacher AS Zwhere T.C#=C.C# and C.T#=Z.T#GROUP BY C.C#ORDER BY AVG(Score) DESC22、查询如下课程成绩第 3 名到第 6 名的学生成绩单:企业管理(001),马克思(002),UML (003),数据库(004)[学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩SELECT DISTINCT top 3SC.S# As 学生学号,Student.Sname AS 学生姓名 ,T1.score AS 企业管理,T2.score AS 马克思,T3.score AS UML,T4.score AS 数据库,ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) a s 总分FROM Student,SC LEFT JOIN SC AS T1ON SC.S# = T1.S# AND T1.C# = '001'LEFT JOIN SC AS T2ON SC.S# = T2.S# AND T2.C# = '002'LEFT JOIN SC AS T3ON SC.S# = T3.S# AND T3.C# = '003'LEFT JOIN SC AS T4ON SC.S# = T4.S# AND T4.C# = '004'WHERE student.S#=SC.S# andISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) NOT IN(SELECTDISTINCTTOP 15 WITH TIESISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score, 0)FROM scLEFT JOIN sc AS T1ON sc.S# = T1.S# AND T1.C# = 'k1'LEFT JOIN sc AS T2ON sc.S# = T2.S# AND T2.C# = 'k2'LEFT JOIN sc AS T3ON sc.S# = T3.S# AND T3.C# = 'k3'LEFT JOIN sc AS T4ON sc.S# = T4.S# AND T4.C# = 'k4'ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL( T4.score,0) DESC);23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[<60]SELECT SC.C# as 课程ID, Cname as 课程名称,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS [100 - 85] ,SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS [85 - 70] ,SUM(CASE WHEN score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) AS [70 - 60] ,SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS [60 -]FROM SC,Coursewhere SC.C#=Course.C#GROUP BY SC.C#,Cname;24、查询学生平均成绩及其名次SELECT 1+(SELECT COUNT( distinct 平均成绩)FROM (SELECT S#,A VG(score) AS 平均成绩FROM SCGROUP BY S#) AS T1WHERE 平均成绩 > T2.平均成绩) as 名次,S# as 学生学号,平均成绩FROM (SELECT S#,A VG(score) 平均成绩FROM SCGROUP BY S#) AS T2ORDER BY 平均成绩 desc;25、查询各科成绩前三名的记录:(不考虑成绩并列情况)SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 3 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#;26、查询每门课程被选修的学生数select c#,count(S#) from sc group by C#;27、查询出只选修了一门课程的全部学生的学号和姓名select SC.S#,Student.Sname,count(C#) AS 选课数from SC ,Studentwhere SC.S#=Student.S# group by SC.S# ,Student.Sname having count(C#)=1;28、查询男生、女生人数Select count(Ssex) as 男生人数 from Student group by Ssex having Ssex='男';Select count(Ssex) as 女生人数 from Student group by Ssex having Ssex='女';29、查询姓“张”的学生名单SELECT Sname FROM Student WHERE Sname like '张%';30、查询同名同性学生名单,并统计同名人数select Sname,count(*) from Student group by Sname having count(*)>1;;31、1981年出生的学生名单(注:Student表中Sage列的类型是datetime)select Sname, CONVERT(char (11),DA TEPART(year,Sage)) as agefrom studentwhere CONVERT(char(11),DATEPART(year,Sage))='1981';32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列Select C#,Avg(score) from SC group by C# order by Avg(score),C# DESC ;33、查询平均成绩大于85的所有学生的学号、姓名和平均成绩select Sname,SC.S# ,avg(score)from Student,SCwhere Student.S#=SC.S# group by SC.S#,Sname having avg(score)>85;34、查询课程名称为“数据库”,且分数低于60的学生姓名和分数Select Sname,isnull(score,0)from Student,SC,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# and ame='数据库'and score<60;35、查询所有学生的选课情况;SELECT SC.S#,SC.C#,Sname,CnameFROM SC,Student,Coursewhere SC.S#=Student.S# and SC.C#=Course.C# ;36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数;SELECT distinct student.S#,student.Sname,SC.C#,SC.scoreFROM student,ScWHERE SC.score>=70 AND SC.S#=student.S#;37、查询不及格的课程,并按课程号从大到小排列select c# from sc where scor e<60 order by C# ;38、查询课程编号为003且课程成绩在80分以上的学生的学号和姓名;select SC.S#,Student.Sname from SC,Student where SC.S#=Student.S# and Score>80 and C#=' 003';39、求选了课程的学生人数select count(*) from sc;40、查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩select Student.Sname,scorefrom Student,SC,Course C,Teacherwhere Student.S#=SC.S# and SC.C#=C.C# and C.T#=Teacher.T# and Teacher.Tname='叶平' and SC.score=(select max(score)from SC where C#=C.C# );41、查询各个课程及相应的选修人数select count(*) from sc group by C#;42、查询不同课程成绩相同的学生的学号、课程号、学生成绩select distinct A.S#,B.score from SC A ,SC B where A.Score=B.Score and A.C#<>B.C# ;43、查询每门功成绩最好的前两名SELECT t1.S# as 学生ID,t1.C# as 课程ID,Score as 分数FROM SC t1WHERE score IN (SELECT TOP 2 scoreFROM SCWHERE t1.C#= C#ORDER BY score DESC)ORDER BY t1.C#;44、统计每门课程的学生选修人数(超过10人的课程才统计)。

(完整版)sql练习题+答案

(完整版)sql练习题+答案

(一) 新建以下几个表student(学生表):其中约束如下:(1)学号不能存在相同的(2)名字为非空(3)性别的值只能是’男’或’女’(4)系包括这几个:信息系,计算机科学系,数学系,管理系,中文系,外语系,法学系(5)出生日期为日期格式(6)年龄为数值型,且在0~100之间cs(成绩表):其中约束如下:(1)sno和cno分别参照student和course表中的sno,cno的字段(2)cj(成绩)只能在0〜100之间,可以不输入值create table cs (sno smallint not null referencesstudent ( sno ), ----定义成外键cno smallint not null referencescourse ( cno ), ----定义成外键cj smallint constraint e check (cj between0 and 100 ),---- 检查约束一—j(成绩)只能在~100之间,可以不输入值constraint f primary key ( sno , cno )---- 定义学生学号和课程号为sc表的主键)course(课程表)其约束如下:(1)课程号(cno)不能有重复的(2)课程名(cname非空(三)针对学生课程数据库查询(1)查询全体学生的学号与姓名。

Select sno , sname from student(2)查询全体学生的姓名、学号、所在系,并用别名显示出结果。

(3)查询全体学生的详细记录。

select * from student(4)查全体学生的姓名及其出生年份。

select sname , birth from student(5)查询学校中有哪些系。

select distinct dept from student(6)查询选修了课程的学生学号。

select sno from cs where eno is not null(7)查询所有年龄在20岁以下的学生姓名及其年龄。

sql 查询 练习题

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的员工信息。

sql语句练习题库

sql语句练习题库

sql语句练习题库一、基础题1. 创建一个名为"students"的表,包含以下字段: - 学生编号(student_id),整数类型,主键- 姓名(name),字符串类型,最大长度为50 - 年龄(age),整数类型2. 向"students"表中插入以下记录:- 学生编号:1,姓名:张三,年龄:18- 学生编号:2,姓名:李四,年龄:20- 学生编号:3,姓名:王五,年龄:193. 查询"students"表中所有记录的姓名和年龄。

4. 查询年龄大于等于20岁的学生记录的姓名。

5. 修改学生编号为2的记录的姓名为"赵六"。

6. 删除学生编号为3的记录。

二、进阶题1. 创建一个名为"courses"的表,包含以下字段: - 课程编号(course_id),整数类型,主键- 课程名称(course_name),字符串类型,最大长度为50- 授课教师(teacher),字符串类型,最大长度为502. 向"courses"表中插入以下记录:- 课程编号:1,课程名称:数学,授课教师:张老师- 课程编号:2,课程名称:英语,授课教师:李老师- 课程编号:3,课程名称:物理,授课教师:王老师3. 查询"students"表和"courses"表中学生姓名和课程名称的组合。

4. 查询"students"表中没有选修课程的学生记录的姓名。

5. 查询每门课程的选修人数。

6. 查询选修课程人数最多的课程信息。

三、高级题1. 创建一个名为"scores"的表,包含以下字段:- 学生编号(student_id),整数类型,外键,关联"students"表 - 课程编号(course_id),整数类型,外键,关联"courses"表 - 分数(score),整数类型,取值范围为0-1002. 向"scores"表中插入以下记录:- 学生编号:1,课程编号:1,分数:88- 学生编号:1,课程编号:2,分数:92- 学生编号:2,课程编号:1,分数:75- 学生编号:2,课程编号:3,分数:85- 学生编号:3,课程编号:2,分数:90- 学生编号:3,课程编号:3,分数:783. 查询每个学生的平均分数。

sql语句练习题

sql语句练习题

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

它被广泛应用于数据管理和数据操作,是开发和维护数据库的重要工具。

为了提高对SQL语句的熟练程度,下面将提供一些SQL语句练习题,帮助读者巩固和扩展SQL的应用能力。

练习题一:查询学生表中所有学生的姓名和年龄。

```sqlSELECT 姓名, 年龄 FROM 学生表;```练习题二:查询学生表中年龄大于等于18岁的学生的姓名和年龄。

```sqlSELECT 姓名, 年龄 FROM 学生表 WHERE 年龄 >= 18;```练习题三:查询学生表中姓“张”的学生的姓名和年龄。

```sqlSELECT 姓名, 年龄 FROM 学生表 WHERE 姓名 LIKE '张%';```练习题四:查询学生表中年龄在18到20岁之间的学生的姓名和年龄。

```sqlSELECT 姓名, 年龄 FROM 学生表 WHERE 年龄 BETWEEN 18 AND 20;```练习题五:查询学生表中年龄最大的学生的姓名和年龄。

```sqlSELECT 姓名, 年龄 FROM 学生表 ORDER BY 年龄 DESC LIMIT 1;```练习题六:查询学生表中每个班级的学生人数。

```sqlSELECT 班级, COUNT(*) AS 人数 FROM 学生表 GROUP BY 班级;```练习题七:查询学生表中每个班级的平均年龄。

```sqlSELECT 班级, AVG(年龄) AS 平均年龄 FROM 学生表 GROUP BY 班级;```练习题八:查询学生表中每个班级的男生人数和女生人数。

```sqlSELECT 班级, SUM(CASE WHEN 性别 = '男' THEN 1 ELSE 0 END) AS 男生人数, SUM(CASE WHEN 性别 = '女' THEN 1 ELSE 0 END) AS 女生人数FROM 学生表GROUP BY 班级;```练习题九:查询学生表中没有选修任何课程的学生的姓名。

SQL语句练习题

SQL语句练习题

SQL语句练习题S Q L语言一、选择题1.S Q L语言是()的语言,容易学习。

A.过程化B.非过程化C.格式化D.导航式2. S Q L语言的数据操纵语句包括S E L E C T、I N S E R T、U PD A T E、D E L E T E等。

其中最重要的,也是使用最频繁的语句是()。

A.S E L E C TB.I N S E R TC.U P D A T ED.D E L E T E3.在视图上不能完成的操作是()。

A.更新视图B.查询C.在视图上定义新的表D.在视图上定义新的视图4.S Q L语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,C R E A T E、D R O P、A L T E R语句是实现哪种功能()。

A.数据查询B.数据操纵C.数据定义D.数据控制5.S Q L语言中,删除一个视图的命令是()。

A.D E L E T EB.D R O PC.C L E A RD.R E M O V E6.在S Q L语言中的视图V I E W是数据库的()。

A.外模式B.模式C.内模式D.存储模式7.下列的S Q L语句中,()不是数据定义语句。

A.C R E A T E T A B L EB.D R O P V I E WC.C R E A T E V I E WD.G R A N T8.若要撤销数据库中已经存在的表S,可用()。

A.D E L E T E T A B L E SB.D E L E T E SC.D R O P T A B L E SD.D R O P S9.若要在基本表S中增加一列C N(课程名),可用()。

A.A D D T A B L E S(C N C H A R(8))B.A D D T A B L E S A L T E R(C N C H A R(8))C.A L T E R T A B L E S A D D(C N C H A R(8))D.A L T E R T A B L E S(A D D C N C H A R(8))10.学生关系模式S(S#,S n a m e,S e x,A g e),S的属性分别表示学生的学号、姓名、性别、年龄。

SQL练习题

SQL练习题

6
24. 查询男生、女生人数
6
25. 查询姓“张”的学生名单
6
26. 查询同名同性学生名单,并统计同名人数
6
27. 98 年出生的学生名单(注:Student 表中Sage 列的类型是number)
6
28. 查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列
6
29. 查询平均成绩大于85 的所有学生的学号、姓名和平均成绩
程号升序排列
7
41. 检索至少选修两门课程的学生学号
7
42. 查询全部学生都选修的课程的课程号和课程名
7
43. 查询没学过“谌燕”老师讲授的任一门课程的学生姓名
7
44. 查询两门以上不及格课程的同学的学号及其平均成绩
8
45. 检索“c004”课程分数小于60,按分数降序排列的同学学号
8
46. 删除“s002”同学的“c00”课程的成绩
17. 查询各科成绩最高和最低的分:以如下形式显示:课程 ID,最高分,最低分
18. 按各科平均成绩从低到高和及格率的百分数从高到低顺序
19. 查询不同老师所教不同课程平均分从高到低显示
20. 统计列印各科成绩,各分数段人数:课程ID,课程名称,[0085],[85-70],[70-60],[ <60]
28. 查询每门课程的平均成绩,结果按平均成绩升序排列,平 均成绩相同时,按课程号降序排列
6/8
虹猫学园
二.习题
29. 查询平均成绩大于85 的所有学生的学号、姓名和平均成

30. 查询课程名称为“数据库”,且分数低于60 的学生姓名和分 数
31. 查询所有学生的选课情况;

SQL查询语句练习(50题)

SQL查询语句练习(50题)

SQL查询语句练习(50题)Student(S#,Sname,Sage,Ssex) 学生表Course(C#,Cname,T#) 课程表SC(S#,C#,score) 成绩表Teacher(T#,Tname) 教师表问题:1、查询“001”课程比“002”课程成绩高的所有学生的学号;2、查询平均成绩大于60分的同学的学号和平均成绩;3、查询所有同学的学号、姓名、选课数、总成绩;4、查询姓“李”的老师的个数;5、查询没学过“叶平”老师课的同学的学号、姓名;6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名;7、查询学过“叶平”老师所教的所有课的同学的学号、姓名;8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名;9、查询所有课程成绩小于60分的同学的学号、姓名;10、查询没有学全所有课的同学的学号、姓名;11、查询至少有一门课与学号为“1001”的同学所学相同的同学的学号和姓名;12、查询至少学过学号为“001”同学所有一门课的其他同学学号和姓名;13、把“SC”表中“叶平”老师教的课的成绩都更改为此课程的平均成绩;14、查询和“1002”号的同学学习的课程完全相同的其他同学学号和姓名;15、删除学习“叶平”老师课的SC表记录;16、向SC表中插入一些记录,这些记录要求符合以下条件:没有上过编号“003”课程的同学学号、002号课的平均成绩;17、按平均成绩从高到低显示所有学生的“数据库”、“企业管理”、“英语”三门的课程成绩,按如下形式显示:学生ID,,数据库,企业管理,英语,有效课程数,有效平均分18、查询各科成绩最高和最低的分:以如下形式显示:课程ID,最高分,最低分19、按各科平均成绩从低到高和及格率的百分数从高到低顺序20、查询如下课程平均成绩和及格率的百分数(用"1行"显示): 企业管理(001),马克思(002),OO&UML (003),数据库(004)21、查询不同老师所教不同课程平均分从高到低显示22、查询如下课程成绩第 3 名到第 6 名的学生成绩单:企业管理(001),马克思(002),UML (003),数据库(004)[学生ID],[学生姓名],企业管理,马克思,UML,数据库,平均成绩23、统计列印各科成绩,各分数段人数:课程ID,课程名称,[100-85],[85-70],[70-60],[ <60]24、查询学生平均成绩及其名次25、查询各科成绩前三名的记录:(不考虑成绩并列情况)26、查询每门课程被选修的学生数27、查询出只选修了一门课程的全部学生的学号和姓名28、查询男生、女生人数29、查询姓“张”的学生名单30、查询同名同性学生名单,并统计同名人数31、1981年出生的学生名单(注:Student表中Sage列的类型是datetime)32、查询每门课程的平均成绩,结果按平均成绩升序排列,平均成绩相同时,按课程号降序排列33、查询平均成绩大于85的所有学生的学号、姓名和平均成绩34、查询课程名称为“数据库”,且分数低于60的学生姓名和分数35、查询所有学生的选课情况;36、查询任何一门课程成绩在70分以上的姓名、课程名称和分数;37、查询不及格的课程,并按课程号从大到小排列38、查询课程编号为003且课程成绩在80分以上的学生的学号和姓名;39、求选了课程的学生人数40、查询选修“叶平”老师所授课程的学生中,成绩最高的学生姓名及其成绩41、查询各个课程及相应的选修人数42、查询不同课程成绩相同的学生的学号、课程号、学生成绩43、查询每门功成绩最好的前两名44、统计每门课程的学生选修人数(超过10人的课程才统计)。

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

一、选择题1. 数据库的英文缩写是( )A.DBSB.DBMSC.DBOD.DB2.数据库系统的英文缩写是( )A.DBSB.DBMSC.DBOD.DB3.数据库管理系统的英文缩写是( )A.DBSB.DBMSC.DBOD.DB4.目前,商品化的数据库管理系统以( )为主.A.网状模型B.层次模型C.关系模型D.其他模型5.在SQL SERVER 2000的某工具中,可以创建查询和其他SQL 脚本,并针对SQL SERVER 2000数据库执行它他,这个工具是( )A.服务管理器B.查询分析器C.企业管理器D.服务器网络实用工具6、下面语句中,哪种语句用来创建视图()?A、CREATE TABLEB、ALTE VIEWC、DROP VIEWD、CREATE VIEW7、下面语句中,哪种语句用来修改视图()。

A、CREATE TABLEB、ALTE VIEWC、DROP VIEWD、CREATE VIEW8、下面语句中,哪种语句用来删除视图()。

A、CREATE TABLEB、ALTE VIEWC、DROP VIEWD、CREATE VIEW9、sp_help属于哪一种存储过程()?A、系统存储过程B、用户定义存储过程C、扩展存储过程D、其他10、下列哪些语句用于创建存储过程()?A、CREATE PROCEDUREB、CREATE TABLEC、DROP PROCEDURED、其他11、下列哪些语句用于删除存储过程()?A、CREATE PROCEDUREB、CREATE TABLEC、DROP PROCEDURED、其他12、下列哪些语句用于创建触发器()?A、CREATE PROCEDUREB、CREATE TRIGGERC、ALTER TRIGERD、DROP TRIGGER13、下列哪些语句用于删除触发器()?A、CREATE PROCEDUREB、CREATE TRIGGERC、ALTER TRIGERD、DROP TRIGGER14、每个数据库有且只能有一个()。

A、次数据文件B、主数据文件C、日志文件D、其他15、如果数据库中的数据量非常大,除了存储在主数据文件中,可以将一部分数据存储在()。

A、次数据文件B、主数据文件C、日志文件D、其他16、()不属于任何文件组。

A、次数据文件B、主数据文件C、日志文件D、其他17、使用下列哪种语句可以创建数据库()。

A、CREATE DATABASEB、CREATE TABLEC、ALTER DATABASED、ALTER TABLE18、使用下列哪种语句可以修改数据库()。

A、CREATE DATABASEB、CREATE TABLEC、ALTER DATABASED、ALTER TABLE19、使用下列哪种语句可以删除数据库()。

A、DROP DATABASEB、CREATE TABLEC、ALTER DATABASED、DROP TABLE20、在哪种索引中,表中各行的物理顺序与键值的逻辑(索引)顺序相同()?A、聚簇索引B、非聚簇索引C、两者都是D、两者都不是21、下列哪种完整性中,将每一条记录定义为表中的惟一实体,即不能重复()?A、域完整性B、引用完整性C、实体完整性D、其他22、UNIQUE约束和主键约束也是哪种完整性的体现()?A、域完整性B、引用完整性C、实体完整性D、其他23、下列哪种语句用来创建规则()?A、CREATE RULE B、DROP RULE C、CREATE TABLE D、其他24. Microsoft公司的SQL Server2000数据库管理系统一般只能运行于()。

A. Windows平台B. UNIX平台C. LINX平台D. NetWare平台25. 当一条SELECT语句访问一张大表里的有限几行数据时,SQL Server2000通常会()。

A. 为数据加上页级锁B. 为数据加上行级锁C. 需要用户的干涉和参与D. 使用户独占数据库26. 当采用Windows认证方式登录数据库服务器时,SQL Server2000客户端软件会向*作系统请求一个()。

A. 信任连接B. 邮件集成C. 并发控制D. 数据转换服务27. 以下对SQL Server2000描述不正确的是()。

A. 支持XMLB. 支持用户自定义函数C. 支持邮件集成D. 支持网状数据模型28. 如果在SQL Server2000上运行一个非常大的数据库,为取得较好效果应选用安装()。

A. 企业版B. 标准版C. 个人版D. 开发版29. 提高SQL Server2000性能的最佳方法之一是()。

A. 增大硬盘空间B. 增加内存C. 减少数据量D. 采用高分辨率显示器30. SQL Server2000标准版不支持的操作系统是()。

A. Windows 2000 ServerB. Windows NT ServerC. Windows98D. Windows 2000 Advanced Server31. 如果希望完全安装SQL Server2000,则应选择()。

A. 典型安装B. 最小安装C. 自定义安装D. 仅连接32 要想使SQL Server2000数据库管理系统开始工作,必须首先启动()。

A. SQL Server服务器B. 查询分析器C. 网络实用工具D. 数据导入和导出程序33. 用于配置客户端网络连接的工具是()。

A. 企业管理器B. 客户端网络实用工具C. 查询分析器D. 联机帮助文档34. SQL Server2000的物理存储主要包括3类文件()。

A. 主数据文件、次数据文件、事务日志文件B. 主数据文件、次数据文件、文本文件C. 表文件、索引文件、存储过程D. 表文件、索引文件、图表文件35. 当数据库损坏时,数据库管理员可通过何种方式恢复数据库()。

A. 事务日志文件B. 主数据文件C. DELETE语句D. 联机帮助文件36. SQL Server2000系统中的所有系统级信息存储于哪个数据库()。

A. masterB. modelC. tempdbD. msdb37. 下面关于tempdb数据库描述不正确的是()。

A. 是一个临时数据库B. 属于全局资源C. 没有权限限制D. 是用户建立新数据库的模板38. Transact-SQL对标准SQL的扩展主要表现为()。

A. 加入了程序控制结构和变量B. 加入了建库和建表语句C. 提供了分组(Group By)查询功能D. 提供了Min、Max等统计函数二、填空题1.数据模型主要有三种:____­_____、______________ 和______________。

2.SQL的全称是______________。

3.DDL的全称是_______________。

4.DML的全称是_______________。

5.在Transact---SQL语言中,有4种常见的DML 语句,分别为:______________、_________、__________和____________6、SQL SERVER2000提供系统存储过程_________ 和_________来获取视图信息。

7、在SQL SERVER2000 中,一共有三种类型的存储过程,分别为:________、__________和________________。

8、在SQL SERVER 2000 中有两种类型的触发器,分别为:_____________和_____________。

9、视图的主要优点有:________________、_____________。

10、触发器的作用是________________11、从物理结构层次上说,SQL SERVER2000 数据库是由两个或多个文件组成,根据文件的作用,可以将这些文件分三类:___________、_________和_____________。

12、在SQL SERVER 2000中,一共有5种约束,分别是:_________、_____________、__________、__________和_____________。

13、系统存储过程________ 用于将规则绑定列。

14、可以使用系统存储过程将默认值绑定到列,可以使用__________ 来解除默认值对象与列绑定。

15、SQL SERVER 2000 为用户提供了两种登录认证模式:_______和_________。

16、属于语句权限范畴的语句包括:____________、____________、___________、_________________等。

17、属于对象权限范畴的语句包括:____________、____________、___________等。

18、安装SQL SERVER2000后,系统会自动创建一些固定的服务器角色,如______________、____________、_____________、等。

19、安装SQL SERVER2000后,系统会自动创建一些固定的数据库角色,如_______________、__________________、等。

20、2、在SQL SERVER2000中,有4种备份类型,分别为:______________、_____________、______________和________________。

21、SQL SERVER2000支持两种类型的备份设备:_______________和______________。

三、判断题1、使用存储过程可以减少网络流量。

()2、存储过程使代码具有重用性。

()3、存储过程可以作为一个安全机制来使用。

()4、触发器不用被调用,它可以自动执行。

()5、触发器可通过数据库中的相关表实现级联运行。

()6、强制数据完整性可以确保数据库存中的数据质量。

()7、规则可以在其他数据库中创建。

()8、一个数据表中只能有一个主键约束,但可以有多个UNIQUE约束。

()9、主键约束中的字段不能接受空值,UNIQUE约束的字段不能接受空值。

()10、默认值属于数据完整性的范畴。

()四、问答题1、创建视图myview,定义为搜索所有学生的选课信息,包含学号、姓名、课程名称、志愿。

2、在表class创建触发器,当更新classno列时,能自动更新student表的classno列。

3、在SQL SERVER 2000自带的实例数据库pubs中创建存储过程,其功能是:调用存储过程时,根据给定的作者编号(au_id)在数据表authors中查找,然后打印出作者的姓名。

4、在SQL SERVER 2000自带的的实例数据库pubs中的表titles上创建触发器,确保商业类(type字段值为bussiness)的书籍不能被删除,并返回消息给用户。

相关文档
最新文档