SQL语言综合练习题

合集下载

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插入到表中的记录是_______。

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

(完整word版)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语句2在student表中插入信息3 删除student表中的元组4在数据库school中删除关系student5在student表添加属性sbirthdate 类型datetime练习Delete1 删除所有JSJ 系的男生delete from Student where Sdept=’JSJ’ and Ssex=’男’;2 删除“数据库原理”的课的选课纪录delete from SC where Cno in (select Cno fromCourse where Cname=’数据库原理’);1 修改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练习题及答案1(合集五篇)

SQL练习题及答案1(合集五篇)

SQL练习题及答案1(合集五篇)第一篇:SQL练习题及答案1SQL练习题:商品销售数据库商品销售数据库Article(商品号 char(4),商品名char(16),单价 Numeric(8,2),库存量 int)Customer(顾客号char(4),顾客名 char(8),性别 char(2),年龄 int)OrderItem(顾客号 char(4),商品号 char(4),数量 int, 日期date)1.用SQL建立三个表,须指出该表的实体完整性和参照完整性,对性别和年龄指出用户自定义的约束条件。

(性别分成男女,年龄从10到100)。

顾客表的数据用插入语句输入数据,其它两表可用任意方式输入数据。

create table OrderItem(顾客号char(4),商品号char(4),日期datetime,数量 smallint,primary key(顾客号,商品号,日期),foreign key(商品号)references Article(商品号), foreign key(顾客号)references Custommer(顾客号));2.检索定购商品号为…0001‟的顾客号和顾客名。

select distinct 顾客号,顾客名from OrderItem where 商品号='0001'3.检索定购商品号为…0001‟或…0002‟的顾客号。

select distinct 顾客号 from OrderItem where 商品号='0001' or 商品号='0002';4.检索至少定购商品号为…0001‟和…0002‟的顾客号。

select 顾客号 from OrderItem where 商品号='0001' and 顾客号 in(select 顾客号 from OrderItem where 商品号='0002');5.检索至少定购商品号为…0001‟和…0002‟的顾客号。

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等。

3-SQL语句练习题参考答案

3-SQL语句练习题参考答案

标准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(时间戳)的列不能赋值,系统自动赋值。

SQL语言习题及答案(好)

SQL语言习题及答案(好)
(第一大题)
职工 E(ename,e#,bdate,addr,salary,se#,d#) 部门 D(dname,d#,部门负责人的工号mgre#)
项目 P(pname,p#,所在城市city,主管部门编号d#) 工作 W(职工工号e#,项目编号p#,工作时间hours) 职工家属Depend(e#,家属的姓名name,家属的性别sex)
2021/6/16 18
9.检索为居住在Duluth的所有客户订购过商品的经销商
的编号及其佣金百分比,并按照佣金百分比的降序输 出查询结果
➢ 关系代数
▪ 答案 Select aid, percent From Agents A
Where not exist ( select * from Customers C where C.city = ‘Duluth’ and C.cid not in ( select O.cid from Orders O where O.aid = A.aid)) Order by percent desc
2021/6/16 1
(第一大题) 1.检索部门Research的所有职工的姓名和家庭地址
➢ 关系代数
select ename, addr from E, D where D.d# = E.d# and dname = ’Research’
2021/6/16 2
(第一大题)
2.检索位于Stafford的每个项目的编号、主管部门的 编号及其部门负责人的姓名和家庭地址
2021/6/16 15
6.检索居住在Dallas的所有客户都订购过的商品编号
➢ 关系代数 Select pid from Products P where not exist ( select * from Customers C where C.city = ‘Dallas’ and C.cid not in ( select O.cid from Orders O where O.pid = P.pid ) )

SQL综合练习(填空操作)

SQL综合练习(填空操作)

SQL综合练习(填空操作)第一篇:SQL综合练习(填空操作)一,选择题1,下面关于SQL语言的叙述中,哪一条是错误的().A.SQL既可作为联机交互环境中的查询语言又可嵌入到主语言中B.SQL没有数据控制功能C.使用SQL用户只能定义索引而不能引用索引D.使用SQL用户可以定义和检索视图2,SQL语言是()A.高级语言B.编程语言C.结构化查询语言D.宿主语言3,在学生数据库中,用SQL语句列出的所有女生的姓名,应该对学生关系进行()操作.A.选择 B.连接 C.投影 D.选择和投影4,NULL是指()A.0B.空格C.无任何值D.空字符串5,下列哪条语句不属于SQL数据操纵功能范围()A.SELECTB.CREAT TABLEC.DELETED.INSERT6,用()命令可建立唯一索引A.CREATE TABLEB.CREATE CLUSTERC.CREATE INDEXD.CREATE UNIQUE INDEX二,填空题1,SQL语言的使用方式有两种,一种是 ,另一种是2,在SQL查询中,WHERE子句的功能是.3,视图是一个虚表,它是从的表.4,SQL语言的数据操纵功能包括 , , ,和,5,在SQL支持的关系数据库三级模式结构中,外模式对应于,模式对应于,内模式对应于.6,在SELECT语句中,HAVING子句必须跟在子句后面.三,问题及操作题1,名词解释SQL模式 SQL数据库基本表视图相关子查询联接查询嵌入式SQL 游标2,对于教学数据库的三个基本表学生 S(S#,SNAME,AGE,SEX)学习SC(S#,C#,GRADE)课程 C(C#,CNAME,TEACHER)试用SQL的查询语句表达下列查询:(1)检索LIU老师所授课程的课程号和课程名.(2)检索年龄大于23岁的男学生的学号和姓名.(3)检索至少选修LIU老师所授课程中一门课程的女学生姓名.(4)检索WANG同学不学的课程的课程号.(5)检索至少选修两门课程的学生学号.(6)检索全部学生都选修的课程的课程号与课程名.(7)检索选修课程包含LIU老师所授课的学生学号.3, 设有两个基本表R(A,B,C)和S(A,B,C)试用SQL查询语句表达下列关系代数表达式:(1)R∪S(2)R∩S(3)R-S(4)πA,B(R)πB,C(S)4, 试用SQL查询语句表达下列对教学数据库中三个基本表S,SC,C 的查询:(1)统计有学生选修的课程门数.(2)求选修C4课程的学生的平均年龄.(3)求LIU老师所授课程的每门课程的学生平均成绩.(4)统计每门课程的学生选修人数(超过10人的课程才统计).要求输出课程号和选修人数, 查询结果按人数降序排列,若人数相同,按课程号升序排列.(5)检索学号比WANG同学大,而年龄比他小的学生姓名.(6)检索姓名以WANG 打头的所有学生的姓名和年龄.(7)在SC中检索成绩为空值的学生学号和课程号.(8)求年龄大于女同学平均年龄的男学生姓名和年龄.5, 试用SQL更新语句表达对教学数据库中三个基本表S,SC,C的各个更新操作:(1)往基本表S中插入一个学生元组('S9','WU',18).(2)在基本表S 中检索每一门课程成绩都大于等于80分的学生学号,姓名和性别, 并把检索到的值送往另一个已存在的基本表STUDENT(S#,SANME,SEX).(3)在基本表SC中删除尚无成绩的选课元组.(4)把WANG同学的学习选课和成绩全部删去(5)把选修MATHS课不及格的成绩全改为空值.(6)把低于总平均成绩的女同学成绩提高5%.(7)在基本表SC中修改C4课程的成绩,若成绩小于等于75分时提高5%, 若成绩大于75分时提高4%(用两个UPDATE语句实现).6, 在宿主语言的程序中使用SQL语句有哪些规定7,嵌入式SQL语句何时不必涉及到游标何时必须涉及到游标答案:一,1,B 2,C 3,D 4,C 5,B 6,D二,1,嵌入式交互式 2,选择3,基本表导出的表 4,数据查询数据更新数据插入数据删除5,视图或部分基本表基本表存储文件6,GROUP BY三,1,名词解释SQL模式:SQL模式是表和授权的静态定义.一个SQL模式定义为基本表的集合.一个由模式名和模式拥有者的用户名或账号来确定,并包含模式中每一个元素(基本表,视图,索引等)的定义.SQL数据库:SQL(Structured Query Language),即'结构式查询语言',采用英语单词表示和结构式的语法规则.一个SQL数据库是表的汇集,它用一个或多个SQL模式定义.基本表:在SQL中,把传统的关系模型中的关系模式称为基本表(Base T able).基本表是实际存储在数据库中的表,对应一个关系.视图:在SQL中,把传统的关系模型中的子模式称为视图(View),视图是从若干基本表和(或)其他视图构造出来的表.相关子查询:在嵌套查询中出现的符合以下特征的子查询:子查询中查询条件依赖于外层查询中的某个值, 所以子查询的处理不只一次,要反复求值,以供外层查询使用.联接查询:查询时先对表进行笛卡尔积操作,然后再做等值联接,选择,投影等操作.联接查询的效率比嵌套查询低.嵌入式SQL:嵌入在高级语言的程序中使用的SQL语言称为嵌入式SQL.游标:游标是与某一查询结果相联系的符号名,用于把集合操作转换成单记录处理方式.2,(1)检索LIU老师所授课程的课程号和课程名.SELECT C#,CNAME FROM CWHERE TEACHER='LIU'(2)检索年龄大于23岁的男学生的学号和姓名.SELECT S#,SNAMEFROM SWHERE(AGE>23)AND(SEX='M')(3)检索至少选修LIU老师所授课程中一门课程的女学生姓名.SELECT SNAMEFROM SWHERE SEX='F' AND S# IN(SELECT S#FROM SCWHERE C# IN(SELECT C#FROM CWHERE TEACHER='LIU')NOTICE:有多种写法,比如联接查询写法:SELECT SNAMEFROM S,SC,CWHERE SEX='F' AND SC.S#=S.S#AND SC.C#=C.C#AND TEACHER='LIU'但上一种写法更好一些.(4)检索WANG同学不学的课程的课程号.SELECT C#FROM CWHERE C# NOT IN(SELECT C#FROM SCWHERE S# IN(SELECT S#FROM SWHERE SNAME='WANG'))(5)检索至少选修两门课程的学生学号.SELECT DISTINCT X.SNOFROM SC X,SC YWHERE X.SNO=Y.SNO AND ONotice:对表SC进行自连接,X,Y是SC的两个别名.(6)检索全部学生都选修的课程的课程号与课程名.SELECT C#,CNAMEFROM CWHERE NOT EXISTS(SELECT *FROM SWHERE S# NOT IN(SELECT *FROM SCWHERE SC.C#=C.C#))要从语义上分解:(1)选择课程的课程号与课程名,不存在不选这门课的同学.其中,“不选这门课的同学”可以表示为:SELECT *FROM SWHERE S# NOT IN(SELECT *FROM SCWHERE SC.C#=C.C#)或者SELECT *FROM SWHERE NOT EXISTS(SELECT *FROM SCWHERE S.S#=C.S# ANDSC.C#=C.C#)(7)检索选修课程包含LIU老师所授课的学生学号.SELECT DISTINCT S#FROM SCWHERE C# IN(SELECT C#FROM CWHERE TEACHER='LIU'))3,(1)SELECT A,B,CFROM RUNIONSELECT A,B,CFROM S(2)SELECT A,B,CFROM RINTERSECTSELECT A,B,CFROM S(3)SELECT A,B,CFROM RWHERE NOT EXISTS(SELECT A,B,CFROM SWHERE R.A=S.A AND R.B=S.B AND R.C=S.C)(4)SELECT R.A,R.B,S.CFROM R,SWHERE R.B=S.B4,(1)统计有学生选修的课程门数.SELECT COUNT(DISTINCT C#)FROM SC(2)求选修C4课程的学生的平均年龄.SELECT AVG(AGE)FROM SWHERE S# IN(SELECT S#FROM SCWHERE C#='C4')或者,SELECT AVG(AGE)FROM S,SCWHERE S.S#=SC.S# AND C#='004'(3)求LIU老师所授课程的每门课程的学生平均成绩.SELECT CNAME,AVG(GRADE)FROM SC ,CWHERE SC.C#=C.C# AND TEACHER='LIU'GROUP BY C#(4)统计每门课程的学生选修人数(超过10人的课程才统计).要求输出课程号和选修人数, 查询结果按人数降序排列,若人数相同,按课程号升序排列.SELECT DISTINCT C#,COUNT(S#)FROM SCGROUP BY C#HAVING COUNT(S#)>10ORDER BY 2 DESC, C# ASC(5)检索学号比WANG同学大,而年龄比他小的学生姓名.SELECT X.SNAMEFROM S AS X, S AS YWHERE Y.SNAME='WANG' AND X.S#>Y.S# AND X.AGE(SELECT AVG(AGE)FROM S AS Y WHERE Y.SEX='女') 5,(1)往基本表S中插入一个学生元组('S9','WU',18).INSERT INTO S(S#,SNAME,AGE)VALUES('59','WU',18)(2)在基本表S中检索每一门课程成绩都大于等于80分的学生学号,姓名和性别, 并把检索到的值送往另一个已存在的基本表STUDENT(S#,SANME,SEX).INSERT INTO STUDENT(S#,SNAME,SEX)SELECT S#,SNAME,SEXFROM S WHERE NOT EXISTS(SELECT * FROM SC WHEREGRADE<80 AND S.S#=SC.S#)(3)在基本表SC中删除尚无成绩的选课元组.DELETE FROM SCWHERE GRADE IS NULL(4)把WANG同学的学习选课和成绩全部删去.DELETE FROM SCWHERE S# IN(SELECT S#FROM SWHERE SNAME='WANG')(5)把选修MATHS课不及格的成绩全改为空值.UPDATE SCSET GRADE=NULLWHERE GRADE<60 AND C# IN(SELECT C#FROM CWHERE CNAME='MATHS')6)把低于总平均成绩的女同学成绩提高5%.UPDATE SCSET GRADE=GRADE*1.05WHERE GRADE(7)在基本表SC中修改C4课程的成绩,若成绩小于等于75分时提高5%, 若成绩大于75分时提高4%(用两个UPDATE语句实现).UPDATE SCSET GRADE=GRADE*1.05WHERE C#='C4' AND GRADE756, 在宿主语言的程序中使用SLQ语句有以下规定:(1)在程序中要区分SQL语句与宿主语言语句(2)允许嵌入的SQL语句引用宿主语言的程序变量(称为共享变量),但有两条规定:1)引用时,这些变量前必须加“:”作为前缀标识,以示与数据库中变量有区别.2)这些变量由宿主语言的程序定义,并用SQL的DECLARE语句说明.(3)SQL的集合处理方式与宿主语言单记录处理方式之间要协调.需要采用游标机制,把集合操作转换成单记录处理方式.7,(1)INSERT,DELETE,UPDATE语句,查询结果肯定是单元组时的SELECT语句, 都可直接嵌入在主程序中使用,不必涉及到游标.(2)当SELECT语句查询结果是多个元组时,此时宿主语言程序无法使用, 一定要用游标机制把多个元组一次一个地传送给宿主语言处理.第二篇:SQL语句练习1.用SQL语句在“商学院教学管理”数据库中建立学生表、课程表、成绩表、教师表、授课表、班级表。

SQL语句练习及答案

SQL语句练习及答案

sql语句练习题1数据库有如下四个表格:student(sno,sname,sage,ssex,sdpt) 学生表系表(dptno,dname)course(cno,cname, gradet, tno) 课程表sc(sno,cno,score) 成绩表teacher(tno,tname) 教师表要求:完成以下操作1.查询姓"欧阳"且全名为三个汉字的学生的姓名。

select sname from student where sname like “欧阳__‟;2.查询名字中第2个字为"阳"字的学生的姓名和学号。

select sname,sno from student where sname like '_阳%';3.查询所有不姓刘的学生姓名。

select sname,sno,ssexfrom studentwhere sname not like “刘%”;4.查询db_design课程的课程号和学分。

select cno,ccredit from coursewhere cname like 'db_design'5.查询以"db_"开头,且倒数第3个字符为i的课程的详细情况。

select * from course where cname like 'db%i_ _';6.某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。

查询缺少成绩的学生的学号和相应的课程号。

select sno,cno from sc where grade is null;7.查所有有成绩的学生学号和课程号。

select sno,cno from sc where grade is not null;8.查询计算机系年龄在20岁以下的学生姓名。

select sname from student where sdept= 'cs' and sage<20;9.查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。

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

姓名:
SQL语言综合练习题
设有一个学生课程数据库,包括学生关系表Student、课程关系表Course、选修关系表SC,图1所示:(数据库系统为Oracle)
表Student
表Course
表SC
图1学生-课程数据库
写出完成下列要求的SQL语句:
1)查询所有年龄在20岁(包括20岁)以下的学生信息。

2)查询姓“刘”的学生信息。

3)查询先行课为6的课程名称。

4)查询课程学分大于3的课程号和课程名称。

5)在表SC中,按照学生成绩降序排列。

6)求最高成绩
7)求平均成绩
8)查询成绩在90分以上的学生姓名和课程名。

9)向表Student中添加一条记录:学号为“95005”,姓名为“孙辉”,性别为“男”,年龄为“19”,所在系为“机电系”。

10)删除表Course中课程名为“操作系统”的课程信息。

11)将学生刘晨的年龄改为“17”,所在系改为“会计系”。

相关文档
最新文档