sql练习题
- 格式:doc
- 大小:45.00 KB
- 文档页数:5
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语句练习题及答案⼀在数据库 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 表中的学⽣共分布在那⼏个系中。
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专项练习题一、选择题: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语言及查询视图(一)选择题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(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. 取出关系中的某些列,并消去重复的元组的关系运算称为(投影运算)。
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(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题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语句练习题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语句进行解答。
祝你练习愉快,取得好成绩!。
一、选择题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)的书籍不能被删除,并返回消息给用户。