文档库 最新最全的文档下载
当前位置:文档库 › sql数据库练习题

sql数据库练习题

sql数据库练习题

第一讲

1、什么是数据管理?

答:对数据进行分类、组织、编码、存储、检索和维护,是数据处理的中心问题。

2、在数据库的三个模式中( C )。

A.内模式只有一个,而模式和外模式可以有多个

B.模式只有一个,而模式和外模式可以有多个

C.模式和内模式只有一个,而外模式可以有多个

D.模式、内模式和外模式均只有一个

3、学生社团可以接纳多名学生参加,但每个学生只能参加一个社团,从社团到学生之间的联系类型是( D )

A.多对多

B.一对一

C.多对一

D.一对多

4、储蓄所有多个储户,一个储户可以在多个储蓄所存取款,储蓄所和储户之间的联系类型是:A

A.多对多

B.一对一

C.多对一

D.一对多

5、学生、系、系与学生之间的一对多联系:

学生(学号,姓名,年龄,性别,系号,年级)

系(系号,系名,办公地点)

6、系、系主任、系与系主任间的一对一联系

联系隐含在关系内部:

系(系号,系名,办公地点)

系主任(教师编号,姓名,年龄,性别,所在系号)

第四讲

1、什么是关系数据库?

答:关系数据库(P18):所谓关系数据库就是采用关系模型作为数据的组织方式,换名话说就是支持关系模型的数据库系统。

2、关系数据的操作语言有哪几类,分别是什么?

答:(1)、关系代数

(2)、关系演算

(3)、SQL语言

3、关系数据的完整性约束分别是什么?

答:(1)、实体完整性

(2)、参照完整性

(3)、用户定义完整性

4、什么是码及候选码?并找出下述关系中的候选码。

职工编号姓名部门号身份证号联系方式555294562马丽00134545657345783535575 225577578刘小00134556578787964546576 745766845林立00235567677979864544657

答:(1)、码(P20):在关系的各个属性中,能够用来惟一标识一个元

组的属性或属性组。

(2)、候选码(P20):若在一个关系中,某一个属性或属性组的值能唯一地标识该关系的元组,而真子集不行,则称该属性或属性组为候选码。

(3)、该关系的候选码为:职工编号,身份证号。

5、关系数据操作的对象和结果都是什么?

答:集合

6、给出三个域:

D1=SUPERVISOR ={ 张清玫,刘逸}

D2=SPECIALITY={计算机专业,信息专业}

D3=POSTGRADUATE={李勇,刘晨,王敏}

则D1,D2,D3的笛卡尔积为:

D1×D2×D3 =

{(张清玫,计算机专业,李勇),

(张清玫,计算机专业,刘晨),

(张清玫,计算机专业,王敏),

(张清玫,信息专业,李勇),

(张清玫,信息专业,刘晨),

(张清玫,信息专业,王敏),

(刘逸,计算机专业,李勇),

(刘逸,计算机专业,刘晨),

(刘逸,计算机专业,王敏),

(刘逸,信息专业,李勇),

(刘逸,信息专业,刘晨),

(刘逸,信息专业,王敏) }

7、现有关系表:学生(宿舍编号,宿舍地址,学号,姓名,性别,

专业)的主键为:B

A宿舍编号B学号

C宿舍地址,姓名D宿舍编号,学号

8、现有关系表:医疗(患者编号,医生编号,医生姓名,诊断日

期,诊断结果,恢复情况)的主键是:A

A患者编号,医生编号,诊断日期B医生编号

C诊断日期D患者编号

9、现有如下关系:

职工(职工号、姓名、性别、职务、部门编号)

部门(部门编号、部门名称、姓名、部门地址、电话)

其中,职工关系中的外键是(A)

A部门编号B姓名

C职工号D职工号,姓名

10、关系数据库(实体完整性规则)规定元组在组成主码的属性上不能取空值。

11、关系数据库(参照完整性规则)规定一个基本关系的外码(对应于另一个基本关系的主码)取值只允许为空值,或者等于它所对应的

基本关系中某个主码值。

12、有如下关系R与S,分别求出:R∪S,R∩S,R-S,R×S。R: S:

A B C a 2 c

a 4 d

b 4 c

A B C a 2 c

a 4 d

b 4 c

c 6 d

R∪S

A B C a 2 c

R-S A B C a 4 d

a 6 d

b 4 c

A B C

a 4 d

b 4 c

R∩S

R.A R.B R.C S.A S.B S.C

a 2 c a 4 d

a 2 c a 6 d

a 2 c

b 4 c

a 4 d a 4 d

a 4 d a 6 d

a 4 d

b 4 c

b 4

c a 4 d

b 4

c a 6 d

b 4

c b 4 c

R×S

13、如下图所示,两个关系R1和R2,它们进行_D__运算后得到R3。

A、交

B、并

C、笛卡尔积

D、连接

A B C a 1 x c 2 y d

1

y

R1 R2

A B C D E

M

a 1 x 1 m i d 1 y 1 m i c

2

y

2

n

j

R3

14、关系代数运算中,专门的关系运算有?答:选择、投影、连接、除。 15、查询信息系(IS 系)全体学生σSdept = 'IS' (Student)或σ5 ='IS' (Student) 16、查询年龄小于20岁的学生σSage <

20(Student)

或σ4 < 20(Student)

17、(1)、在Reader 关系中查找男性读者。

D E M 1 m j 2 n

j

5

m k

(2)、查找计算机系所有读者。

答案:

(1)、在Reader关系中查找男性读者。

σsex=…男?(Reader) 或σ3=…男?(Reader)

结果如下:

cardid name sex dept class

T0001 刘勇男计算机系 1

S0111 张清锋男培训部 3

(2)、查找计算机系所有读者。

σdept=…计算机系?(Reader) 或

σ4=…计算机系?(Reader)

结果如下:

cardid name sex dept class

T0001 刘勇男计算机系 1

T0002 张伟女计算机系 1

18、(1)、查询关系Book中所有图书的书名和对应的出版社。(2)、查询“中国水利水电出版社”出版的所有藏书的书名和库存数量。

(1)、查询关系Book中所有图书的书名和对应的出版社。

∏bookname,publish(book)

结果如下:

bookname publish

数据结构清华大学出版社

数据结构中国水利水电出版社

高等数学中国水利水电出版社

数据库系统人民邮电出版社

数据库原理与应用中国水利水电出版社

(2)、查询“中国水利水电出版社”出版的所有藏书的书名和库存数量(,出版社)。

∏bookname,Qty( σpublish=…中国水利水电出版社?(Bo ok) ) 结果如下:

bookname Qty

数据结构50

高等数学60

数据库原理与应用10

19、查询选修了2号课程的学生的学号。

πSno(σCno='2'(SC ))

20、下列关系运算中,哪些不属于专门的关系运算(D)

A. 选择

B. 投影

C. 除法

D.并

21、下列关系运算中,哪些不属于专门的关系运算(C)

A. 选择

B. 投影

C.广义笛卡尔积

D.除法

22、现有关系数据库如下:

学生(学号,姓名,性别,专业,出生日期)

教师(教师编号,姓名,所在部门,职称)

授课(教师编号,学号,课程编号,课程名称,教材,学分,学

生成绩)

用关系代数表达式实现:

1.检索学习“数据库原理”课程且成绩不及格的学生的学号和教师编号。

2.检索学习“英语”课程的“计算机应用”专业的学生学号、姓名、成绩。

3.检索所有课程成绩都及格的学生的学号、姓名和专业;

第六讲

1、SQL语言的主要四个功能:

答:数据定义、数据查询、数据操作、数据控制

2、SQL数据定义语句对操作对象(如基本表、视图、索引)的三种操作方式有:

答:创建、删除、修改

3、建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成。其中学号不能为空,

值是唯一的,并且姓名取值也唯一。

CREATE TABLE Student

(Sno CHAR(5) NOT NULL UNIQUE,

Sname CHAR(20) UNIQUE,

Ssex CHAR(1) ,

Sage INT,

Sdept CHAR(15))

4、建立一个“学生选课”表SC,它由学号Sno、课程号Cno,选修课成绩Grade组成,其中(Sno, Cno)为主码。

CREATE TABLE SC

( Sno CHAR(5) ,

Cno CHAR(3) ,

Grade int,

CONSTRAINT PK_SC Primary key (Sno, Cno))

5、使用SQL语言完成如下操作

(1)、在一个名为“test”的数据库创建一个名为“customers”

的表,该表包含“customerid”和“companyname”两个字段,分别为char(5)和char(40)类型

(2)、然后修改“companyname”字段的定义:数据类型由char(40)改为varchar(40),属性NULL改为NOT NULL。

(3)、在customers表中增加五个新的字段,分别为contactName、address、city、phone,fax。请同学们根据实际情况来定义各字段的数

据类型及长度。

(4)、为该表增加primary key约束。

(5)、删除表中的phone字段。

6、为学生-课程数据库中的Student,Course,SC三个表建立索引。其中Student表按学号升序建唯一索引,Course表按课程号升序建唯一索引,SC表按学号升序和课程号降序建唯一索引。

CREATE UNIQUE INDEX Stusno ON Student(Sno);CREATE UNIQUE INDEX Coucno ON Course(Cno);

CREATE UNIQUE INDEX SCno

ON SC(Sno ASC,Cno DESC);

7、查询所有读者卡号和姓名。

select cardid,name

from reader

查询结果:

cardid name

TP-0001 李小

SD-0012 刘民

8、查询全体学生的学号与姓名。

SELECT Sno,Sname

FROM Student

9、查询全体学生的姓名、学号、所在系。

SELECT Sname,Sno,Sdept

FROM Student

10、(1)查询每个学生所选修的课程数量

(2)求学校的男生人数及女生人数分别是多少.

(3)求各门课程的最高分.

11、(1)检索学生表中所有男生的记录,并以学号降序排列.select *

from student

where ssex=…男?

order by sno desc

(2)检索选修表中多于5名学生选修的并以3开头的课程的平均成绩.

select avg(grade)

from sc

where cno like?3%?

group by cno

having count(sno)>=5

(3)检索最高成绩小于90分,最低成绩大于70分的学生的学号.select sno

from sc

group by sno

having max(grade)<90 and min(grade)>70

(4)检索选修了课程的学生中最高分与最低分相差12分的学生的学号及其最高分与最低分.(注:没有成绩的课程不参与统计)select sno,max(grade),min(grade)

from sc where grade

group by sno

having max(grade)-min(grade)=12

12、(1)查询所有学生所选的课程号、成绩及相应的课程名。

(2)查询每门课程的课程名及其平均分

13、(1)查询考试不及格的学生姓名和成绩及相应的课程名。select sname,grade,cname

from student,sc,course

where student.sno=sc.sno and https://www.wendangku.net/doc/2819351773.html,/doc/534772272.html,o=http://www.doczj .com/doc/534772272.html,o

(2)查询和刘晨同一个系的学生的姓名和性别。

select s2.sname,s2ssex

from student s1,student s2

where s1.sdept=s2.sdept and s1.sname=…刘晨?

(3)查询选修人数在2人以上的课程名和学分。

select cname,ccredit

from sc join curse

on

https://www.wendangku.net/doc/2819351773.html,/doc/534772272.html,o=http://www.doczj .com/doc/534772272.html,o

group by cname,ccredit

having count(*)>=2

14、(1)查询成绩大于70的学生姓名和所在系

select sname,sdept

from student

where sno in

(select sno

from sc

where agrade>70)

(2)查询与“数据库”这门课程的学分相同的课程号,课程名.

select cno,cname

from course

where ccredit=

(select ccredit

from course

where cname=…数据库?)

15、设有如下关系表:

R(NO,NAME,SEX,AGE,CLASS)

主码是NO,其中NO为学号,NAME为姓名,SEX为性别,AGE 为年龄,CLASS为班号。写出实现下列功能的SQL语句。(1)、插入一个记录(25,“李明”,“男”,21,“95031”)(2)、插入班号为“95031” 学号为30、姓名为“郑和”的学生记录(3)、将学号为10的学生姓名改为“王华”

(4)、将所有“95101”班号改为“95091”

(5)、删除学号为20的学生记录

(6)、删除姓“王”的学生记录

答案:

(1)、INSERT

INTO R

V ALUES(25,?李明?,?男?,21,?95031?)

(2)、INSERT

INTO R(NO,NAME,CLASS)

V ALUES(30、…郑和?、…95031?)

(3)、UPDATE R

SET NAME=王华

WHERE NO=10

(4)、UPDATE R

SET CLASS=95091

WHERE CLASS=95101

(5)、DELETE

FROM R

WHERE NO=20

(6)、DELETE

FROM R

WHERE NAME LIKE …王%…

16、建立信息系选修了1002号课程且成绩在90分以上的学生的

视图。

CREATE VIEW IS_S2

AS

SELECT Sno,Sname,Grade

FROM IS_S1

WHERE Grade>=90

17、定义一个反映学生出生年份的视图。

CREATE VIEW BT_S(Sno,Sname,Sbirth)

AS

SELECT Sno,Sname,2000-Sage

FROM Student

设置一些派生属性列, 也称为虚拟列--Sbirth

带表达式的视图必须明确定义组成视图的各个属性列名18、将学生的学号及他的平均成绩定义为一个视图

假设SC表中“成绩”列Grade为数字型

CREAT VIEW S_G(Sno,Gavg)

AS

SELECT Sno,A VG(Grade)

FROM SC

sql练习题及答案

sql练习题及答案 SQL练习题及答案 SQL(Structured Query Language)是一种用于管理和操作关系型数据库的语言。在数据库管理系统中,SQL被广泛应用于数据的查询、插入、更新和删除等操作。掌握SQL语言对于数据库开发和数据分析非常重要。在这篇文章中,我们将提供一些SQL练习题及其答案,帮助读者巩固和提升SQL的应用能力。 1. 查询员工表中所有员工的姓名和工资。 答案: ```sql SELECT 姓名, 工资 FROM 员工表; ``` 2. 查询员工表中工资大于5000的员工的姓名和工资。 答案: ```sql SELECT 姓名, 工资 FROM 员工表 WHERE 工资 > 5000; ``` 3. 查询员工表中工资在3000到5000之间的员工的姓名和工资。 答案: ```sql SELECT 姓名, 工资 FROM 员工表 WHERE 工资 BETWEEN 3000 AND 5000; ``` 4. 查询员工表中姓"张"的员工的姓名和工资。

```sql SELECT 姓名, 工资 FROM 员工表 WHERE 姓名 LIKE '张%'; ``` 5. 查询员工表中工资最高的员工的姓名和工资。 答案: ```sql SELECT 姓名, 工资 FROM 员工表 WHERE 工资 = (SELECT MAX(工资) FROM 员工表); ``` 6. 查询员工表中每个部门的员工数量。 答案: ```sql SELECT 部门, COUNT(*) AS 员工数量 FROM 员工表 GROUP BY 部门; ``` 7. 查询员工表中每个部门的平均工资。 答案: ```sql SELECT 部门, AVG(工资) AS 平均工资 FROM 员工表 GROUP BY 部门; ``` 8. 查询员工表中工资高于部门平均工资的员工的姓名和工资。 答案:

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 https://www.wendangku.net/doc/2819351773.html,, https://www.wendangku.net/doc/2819351773.html, FROM students INNER JOIN course ON students.course_id = course.id; 7. 查询学生表中每个班级的学生人数 答案:SELECT class, COUNT(*) FROM students GROUP BY class; 通过以上SQL数据库习题与答案的练习,可以帮助大家更好地理解和掌握SQL

数据库SQL练习题

数据库应用(SQL Server)练习题 一题:单选 1. 在Transact-SQL中,下列命令能让程序完全跳出循环的是( C )。 (A) CASE (B) WAIT (C) BREAK (D) CONTINUE 2. 在SQL SERVER 2008中,不能恢复的操作是( D )。 (A) DELETE (B) UPDATE (C) INSERT (D) TRUNCATE TABLE 3. 在SQL SERVER 2008中,默认的事务隔离级别是(A )。 (A) READ COMMITTED (B) READ UNCOMMITTED (C) REPEATABLE READ (D) SERIALIZABLE 4. 当对关系R和S使用自然联接时,一般要求R和S至少含有一个共同的(D )。 (A) 元组(B) 关键字(C) 记录(D) 属性 5. 若关系模式R(A,B,C,D,E)上的函数依赖集F={AB->C,A->D,A->E},为了满足BCNF,可以将R分解为( B )。 (A) R1(A,B,C,D) R2(A,E) (B) R1(A,B,C) R2(A,D,E) (C) R1(A,B,C) R2(D,E) (D) R1(A,B) R2(A,C,D,E) 6. SQL语言查询一次的结果是一个(B )。 (A) 元组(B) 表(C) 属性(D) 数据库 7. 在关系模式R(U,F)中,如果X→Y,且存在X的真子集X1,使X1→Y,则称函数依赖X→Y为(B )。 (A) 平凡函数依赖(B) 部分函数依赖(C) 完全函数依赖(D) 传递函数依赖 8. 如果删除表中的数据,而不删除表,应使用的选项是(A )。 (A) DELETE (B) DROP (C) UNION (D) REMOVE 9. 下列关于DELETE语句的说法中错误的是(D )。 (A) DELETE语句可以删除一行数据(B) DELETE语句可以删除表中所有数据 (C) DELETE语句可以带有子查询(D) DELETE语句可以删除多个表中的数据 10. 下列选项中,可以正确表达姓“张”的通配符是(B )。 (A) 张_ (B) 张% (C) 张^ (D) 张& 11. 下列聚合函数中正确的是(C )。 (A) SUM (*) (B) MAX (*) (C) COUNT (*) (D) A VG (*) 12. 如果某一列的数据类型是FLOAT,则不允许对该列使用的函数是(C )。 (A) SUM (B) ABS (C) LEFT (D) ROUND 13. 在SQL的SELECT语句中,与投影运算对应的子句是(A )。 (A) SELECT (B) FROM (C) WHERE (D) GROUP BY 14. 在SQL语言中,给表起别名应使用(A )。 (A) AS (B) RENAME (C) SET (D) FOR 15. 在SELECT语句中使用GROUP BY SNO时,SNO必须(C )。 (A) 在WHERE中出现(B) 在FROM中出现(C) 在SELECT中出现(D) 在HA VING中出现 16. 要想使关系R和S进行等值连接时,结果集不仅包含符合连接条件的匹配元组,也包括S和R中的所有元组,应使用(D )。 (A) JOIN (B) LEFT JOIN (C) RIGHT JOIN (D) FULL JOIN 17. 在SQL语言中,下面关于谓词EXISTS说法错误的是(C )。 (A) 谓词EXISTS后面可以跟相关子查询(B) 谓词EXISTS后面可以跟不相关子查询 (C) 谓词EXISTS后面的子查询返回一个记录的集合(D) 谓词EXISTS可以用在WHERE子句中 18. 在SQL语言中,不可以和ANY谓词一起使用的运算符是(D )。 (A) AND (B) > (C) <> (D) = 19. 在动态SQL中,下列语句表示立刻执行一个SQL语句文本的是(A )。 (A) EXECUTE (B) EXECUTE IMMEDIATE (C) PROCESS (D) PROCESS IMMEDIATE 20. 在Transact-SQL中,下列选项不属于数值型数据类型的是(D )。 (A) NUMERIC (B) DECIMAL (C) INTEGER (D) DATE

(完整版)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 references student ( sno ), ----定义成外键 cno smallint not null references course ( cno ), ----定义成外键 cj smallint constraint e check (cj between 0 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)查询学校中有哪些系。

数据库sql课后练习题及答案解析

数据库sql课后练习题及答案解析 第一篇:数据库sql课后练习题及答案解析 先创建下面三个表: (book表) (borrow表) (reader表) 1)找出姓李的读者姓名(NAME)和所在单位(COMPANY)。 2)列出图书库中所有藏书的书名(BOOK_NAME)及出版单位(OUTPUT)。3)查找“高等教育出版社”的所有图书名称(BOOK_NAME)及单价(PRICE),结果按单价降序排序。 4)查找价格介于10元和20元之间的图书种类(SORT),结果按出版单位(OUTPUT)和单价(PRICE)升序排序。 5)查找书名以”计算机”开头的所有图书和作者(WRITER)。 6)检索同时借阅了总编号(BOOK_ID)为112266和449901两本书的借书证号(READER_ID)。 ##7)* 查找所有借了书的读者的姓名(NAME)及所在单位(COMPANY)。8)* 找出李某所借所有图书的书名及借书日期(BORROW_DATE)。 9)* 无重复地查询2006年10月以后借书的读者借书证号(READER_ID)、姓名和单位。 ##10)* 找出借阅了一书的借书证号。 11)找出与”赵正义”在同一天借书的读者姓名、所在单位及借书日期。12)查询2006年7月以后没有借书的读者借书证号、姓名及单位。#13)求”科学出版社”图书的最高单价、最低单价、平均单价。##14)* 求”信息系”当前借阅图书的读者人次数。 #15)求出各个出版社图书的最高价格、最低价格和总册数。#16)分别找出各单位当前借阅图书的读者人数及所在单位。 17)* 找出当前至少借阅了2本图书(大于等于2本)的读者姓名及其所在单位。18)分别找出借书人次数多于1人次的单位及人次数。

SQL语句练习及答案

sql语句练习题1 数据库有如下四个表格: student(sno,sname,sage,ssex,sdpt) 学生表 系表(dptno,dname) course(cno,cname, gradet, tno) 课程表 sc(sno,cno,score) 成绩表 teacher(tno,tname) 教师表 要求:完成以下操作 1.查询姓"欧阳"且全名为三个汉字的学生的姓名。selectsnamefromstudent wheresnamelike“欧阳__; 2.查询名字中第2个字为"阳"字的学生的姓名和学号。 selectsname,snofromstudent wheresnamelike'_阳%'; 3.查询所有不姓刘的学生姓名。 selectsname,sno,ssex fromstudent wheresnamenotlike“刘%”; 4.查询db_design课程的课程号和学分。 selectcno,ccredit fromcourse wherecnamelike'db_design' 5.查询以"db_"开头,且倒数第3个字符为i的课程的详细情况。 select*fromcourse wherecnamelike'db%i__'; 6.某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查 询缺少成绩的学生的学号和相应的课程号。

selectsno,cnofromscwheregradeisnull; 7.查所有有成绩的学生学号和课程号。 selectsno,cnofromscwheregradeisnotnull; 8.查询计算机系年龄在20岁以下的学生姓名。selectsnamefromstudent wheresdept='cs'andsage<20; 9.查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。selectsno,gradefromsc wherecno='3' orderbygradedesc; 10.查询学生总人数。 selectcount(*)fromstudent; 11.查询选修了课程的学生人数。 selectcount(distinctsno)fromsc; 12.计算1号课程的学生平均成绩。 selectavg(grade)fromsc wherecno='1'; 13.查询选修1号课程的学生最高分数。 selectmax(grade)fromsc wherecno='1'; 14.查询学生2选修课程的总学分数。 selectsum(grade)fromsc,course where sno='2'and=; 15.查询选修了3门以上课程的学生学号。

数据库(sql)课堂练习题(答案)

假设有如下4个样表 student(学号,姓名,性别,出生日期,班级) teacher(教工号,姓名,性别,出生日期,职称,所在系) course(课程号, 课程名,教工号) score(学号,课程号,成绩) 1、查询学生信息表中所有的姓名、性别和班级 select sname,sex,class from student 2、查询成绩表中成绩在60到80之间的所有记录 select * from score where degree between 60 and 80 3、查询学生信息表中‘95031’班的学生或性别为‘女’的学生记录 select * from student where class=95031 or sex='女' 4、以班级降序显示学生信息表的所有记录 select * from student order by class desc 5、以课程号升序、成绩降序显示成绩表的所有记录 select * from score order by cno asc , degree desc 6、查询‘95031’班的学生人数 select count(sno) 人数 from student where class=95031 7、查询成绩表中的最高分的学生的学号,课程号 select sno,cno from score where degree=(select max(degree) from score) 8、查询成绩表中课程号为‘3-105’的平均分*/ select avg(degree) 平均成绩 from score where cno='3-105' 9、显示成绩表中至少有5名学生选修的并以3开头的课程号的平均分数 select avg(degree) 平均分数 from score where cno like '3%' group by cno having count(sno)>=5 10、列出95033班和95031班全体学生的记录 select * from student where class in('95031','95033') 11、显示所有学生的姓名、课程号和成绩 select sname,cno,degree from student,score where student.sno=score.sno 12、列出所有同学的姓名、课程名和成绩 select sname,cname,degree from student,score,course where student.sno=score.sno and https://www.wendangku.net/doc/2819351773.html,o=https://www.wendangku.net/doc/2819351773.html,o 13、显示'张旭'教师任课的学生成绩 select student.sno, sname,degree from student,score where student.sno=score.sno and cno in (select cno from course where tno in (select tno from teacher where name='张旭' ) ) 14、列出存在有85分以上成绩的课程号 select distinct cno from score where degree in (select degree from score where degree>85) 15、列出最高分同学的学号、课程号和成绩*/ select * from score where sno= (select sno from score where degree= (select max(degree) from score)) 16、列出所有未讲课的教师的姓名和系别 select name,depart from teacher where not exists (select * from course where course.tno=teacher.tno)

sql server 练习题

sql server 练习题 SQL Server是一种关系型数据库管理系统,广泛用于存储和管理大量结构化数据。为了帮助大家熟练掌握SQL Server的使用,以下是一些练习题,涵盖了SQL Server的常见操作和语法。通过完成这些练习题,你可以增强对SQL Server的理解和应用能力。 第一题:创建数据库 在SQL Server中,创建数据库使用CREATE DATABASE语句。请根据以下要求创建一个名为"Company"的数据库: 要求: 1. 数据库的字符集为UTF-8; 2. 数据库的校对规则选择Chinese_PRC_CI_AS。 解答: ``` CREATE DATABASE Company COLLATE Chinese_PRC_CI_AS; ``` 第二题:创建表格 在创建数据库后,我们需要创建表格来存储具体的数据。请根据以下要求创建一个名为"Employees"的表格:

要求: 1. 表格包含以下字段:EmployeeID(整数类型,主键),LastName (字符串类型),FirstName(字符串类型),Age(整数类型),Salary(浮点数类型); 2. 字符串类型的字段长度分别为50个字符; 3. 浮点数类型的字段保留两位小数。 解答: ``` CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, LastName NVARCHAR(50), FirstName NVARCHAR(50), Age INT, Salary FLOAT(2) ); ``` 第三题:插入数据

sql server练习题

sql server练习题 本文将围绕SQL Server练习题展开探讨,帮助读者提升SQL Server 的应用能力和解决问题的能力。 一、基础练习 1. 创建一个名为"Employees"的表,包含以下字段:员工ID、姓名、性别、年龄、部门ID。并插入几条员工记录。 2. 查询出所有部门ID为1的员工记录,按照员工ID升序排列。 3. 将性别为男性的所有员工的年龄增加5岁。 4. 删除年龄大于50岁的员工记录。 二、高级练习 1. 创建一个存储过程,该存储过程接受一个部门ID作为参数,返 回该部门的员工人数。 2. 编写一个触发器,当在"Employees"表中插入新记录时,自动更新对应部门的员工人数。 3. 创建一个视图,显示每个部门所拥有的员工人数。 4. 编写一个存储过程,该存储过程接受两个参数(部门ID和年龄 增量),将指定部门的所有员工的年龄增加指定的增量。 三、性能优化 1. 分析并优化下面的SQL查询语句,提高查询性能:

``` SELECT * FROM Employees WHERE Age BETWEEN 30 AND 40 ``` 2. 设计并实施一个索引策略,提高"Employees"表的查询性能。 3. 使用查询执行计划分析下面的SQL查询语句,找出潜在的性能瓶颈并提出优化建议: ``` SELECT https://www.wendangku.net/doc/2819351773.html,, D.DepartmentName FROM Employees E JOIN Departments D ON E.DepartmentID = D.ID WHERE E.Age > 25 ``` 四、应用开发 1. 设计一个数据库模型,用于存储一个图书馆的图书、作者和借阅记录信息。 2. 编写一个存储过程,根据图书ID检查该图书是否可借阅。如果可借阅,则将借阅信息插入借阅记录表。 3. 创建一个视图,显示每本图书的名称、作者和借阅次数。 4. 设计并实现一个包含身份验证的应用程序,该应用程序连接SQL Server数据库,提供用户登录和访问受限制的功能。 五、备份与恢复

sql 编程 练习题

sql 编程练习题 SQL编程练习题 SQL(Structured Query Language)是一种用于与关系型数据库进行 交互的编程语言。通过编写SQL语句,我们可以对数据库中的数据进 行查询、插入、更新和删除等操作。下面将介绍一些SQL编程练习题,帮助您提升SQL编程能力。 题目1:查询 统计学生表中男生和女生的人数各是多少。 ```sql SELECT COUNT(CASE WHEN gender = '男' THEN 1 END) AS 男生人数, COUNT(CASE WHEN gender = '女' THEN 1 END) AS 女生人数 FROM 学生表; ``` 题目2:插入 向学生表中插入一条新记录,包含学生姓名、性别、年龄和班级信息。 ```sql

INSERT INTO 学生表 (姓名, 性别, 年龄, 班级) VALUES ('张三', '男', 18, '1班'); ``` 题目3:更新 将学生表中年龄大于18岁的学生的年龄加1。```sql UPDATE 学生表 SET 年龄 = 年龄 + 1 WHERE 年龄 > 18; ``` 题目4:删除 删除成绩表中数学成绩小于60分的记录。 ```sql DELETE FROM 成绩表 WHERE 科目 = '数学' AND 成绩 < 60; ``` 题目5:模糊查询 查询学生表中姓氏为"李"的学生信息。

```sql SELECT * FROM 学生表 WHERE 姓名 LIKE '李%'; ``` 题目6:排序 查询成绩表中英语成绩最高的5个学生的姓名和成绩。 ```sql SELECT 姓名, 成绩 FROM 成绩表 WHERE 科目 = '英语' ORDER BY 成绩 DESC LIMIT 5; ``` 题目7:关联查询 查询学生表和班级表,找出分数在80分以上的男生所在的班级信息。 ```sql

数据库sql例题

数据库sql例题 本文将介绍一些数据库SQL的例题,包括基础查询、条件查询、聚合函数、连接查询等内容。希望能够帮助读者提高 SQL 查询的能力。 1. 基础查询 假设有一个学生表(student)包含学生的姓名、年龄、性别等信息。要查询所有学生信息的语句如下: SELECT * FROM student; 其中的 * 表示查询所有列,也可以指定查询特定列,比如: SELECT name, age FROM student; 2. 条件查询 假设需要查询年龄大于 18 岁的学生信息,可以使用 WHERE 子句来实现: SELECT * FROM student WHERE age > 18; 也可以查询女生的信息: SELECT * FROM student WHERE gender = '女'; 3. 聚合函数 聚合函数是 SQL 中常用的一种函数,可以对数据进行统计。比如,计算学生表中的平均年龄: SELECT AVG(age) FROM student; 统计男生和女生的人数: SELECT gender, COUNT(*) FROM student GROUP BY gender;

4. 连接查询 连接查询用于查询多个表之间的关联数据。假设有一个课程表(course),包含课程名称和教师姓名,要查询每个学生所选的课程以及授课教师的姓名,可以使用 INNER JOIN: SELECT https://www.wendangku.net/doc/2819351773.html,, c.course_name, c.teacher_name FROM student s INNER JOIN course c ON s.course_id = c.course_id; 以上就是一些数据库 SQL 的例题,包括基础查询、条件查询、聚合函数和连接查询等内容。希望读者可以通过学习这些例题,进一步掌握 SQL 查询的技巧和应用。

sql server经典练习题

sql server经典练习题 SQL Server是一种关系型数据库管理系统,被广泛应用于企业和个 人的数据管理。熟练掌握SQL Server的使用和编程技巧对于数据库开 发人员至关重要。本文将介绍一些SQL Server的经典练习题,帮助读 者巩固和提升SQL Server的技术能力。 1. 查询表中所有的列名和数据类型 在SQL Server中,我们可以使用以下语句查询表中所有的列名和对 应的数据类型: ```sql SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'YourTableName' ``` 将上述代码中的"YourTableName"替换为你需要查询的表名,即可 获得相应的结果。 2. 查询表中的前N条数据 有时候我们只需要查看表中的前几条数据,可以使用以下语句实现:```sql SELECT TOP N *

FROM YourTableName ``` 将上述代码中的"N"替换为你需要查询的条数,"YourTableName"替换为你需要查询的表名。 3. 查询表中符合某个条件的数据 要查询表中符合某个条件的数据,可以使用以下语句: ```sql SELECT * FROM YourTableName WHERE Condition ``` 将上述代码中的"YourTableName"替换为你需要查询的表名,"Condition"替换为你需要的条件。例如,要查询表中年龄大于18岁的员工信息: ```sql SELECT * FROM Employee WHERE Age > 18 ```

数据库的sql语句练习题

数据库的sql语句练习题 数据库的SQL语句练习题 数据库是计算机领域中非常重要的一部分,它用于存储和管理大量的数据。而SQL(Structured Query Language)则是用于操作数据库的标准语言。掌握SQL 语句的使用对于数据库的管理和查询至关重要。下面将给出一些SQL语句的练习题,帮助读者巩固和提升SQL的应用能力。 1. 创建表格 假设我们需要创建一个学生表格,其中包含学生的学号、姓名、年龄和性别等字段。请写出创建该表格的SQL语句。 ``` CREATE TABLE students ( student_id INT PRIMARY KEY, name VARCHAR(50), age INT, gender VARCHAR(10) ); ``` 2. 插入数据 现在我们已经创建了学生表格,接下来需要往表格中插入一些数据。请写出插入两条学生记录的SQL语句。 ``` INSERT INTO students (student_id, name, age, gender)

VALUES (1, '张三', 20, '男'); INSERT INTO students (student_id, name, age, gender) VALUES (2, '李四', 22, '女'); ``` 3. 更新数据 假设学生张三的年龄发生了变化,需要将其年龄更新为21岁。请写出更新该学生记录的SQL语句。 ``` UPDATE students SET age = 21 WHERE student_id = 1; ``` 4. 删除数据 假设学生李四已经毕业离校,需要从学生表格中删除其记录。请写出删除该学生记录的SQL语句。 ``` DELETE FROM students WHERE student_id = 2; ``` 5. 查询数据 现在我们已经创建了学生表格并插入了一些数据,接下来需要进行一些查询操作。请写出查询学生表格中所有学生记录的SQL语句。

sql数据库练习题

sql数据库练习题 SQL数据库练习题 在现代信息技术的发展中,数据库技术扮演着至关重要的角色。SQL (Structured Query Language)作为一种用于管理和操作关系型数据库的语言,被广泛应用于各行各业。为了提高我们的SQL技能,下面将给出一些SQL数据库练习题,帮助读者巩固和深化对SQL的理解。 1. 创建数据库和表格 首先,我们需要创建一个数据库和一些表格。假设我们要创建一个学生信息管 理系统,其中包含两个表格:学生表格和课程表格。学生表格包括学生ID、姓名、性别和年龄等字段,课程表格包括课程ID、课程名称和教师ID等字段。 请使用SQL语句创建这两个表格。 2. 插入数据 接下来,我们需要向表格中插入一些数据。假设我们有以下学生和课程信息: 学生表格: 学生ID 姓名性别年龄 1 张三男 20 2 李四女 22 3 王五男 21 课程表格: 课程ID 课程名称教师ID 1 数学 1001 2 英语 1002

3 物理 1003 请使用SQL语句将以上数据插入到对应的表格中。 3. 查询数据 现在,我们已经成功插入了数据,接下来可以使用SQL语句查询这些数据。请 使用SQL语句完成以下查询: a) 查询所有学生的姓名和年龄。 b) 查询所有课程的名称和对应的教师姓名。 c) 查询年龄大于20岁的学生的姓名和性别。 d) 查询教师ID为1001的课程名称。 4. 更新数据 有时候,我们需要对数据库中的数据进行更新。请使用SQL语句完成以下操作: a) 将学生ID为1的学生的年龄更新为22岁。 b) 将课程ID为3的课程的教师ID更新为1004。 5. 删除数据 在某些情况下,我们需要从数据库中删除数据。请使用SQL语句完成以下操作: a) 删除学生ID为3的学生的记录。 b) 删除课程ID为2的课程的记录。 6. 数据库连接 在实际应用中,我们经常需要在多个表格之间进行连接查询。请使用SQL语句 完成以下操作: a) 查询每个学生所选的课程名称和对应的教师姓名。 b) 查询教师ID为1003的教师所教的所有课程名称。

sql练习题

sql练习题 SQL练习题 在现代信息化社会中,数据的处理和管理变得愈发重要。而SQL(Structured Query Language)作为一种用于管理和处理关系型数据库的语言,也成为了各 行各业从事数据分析和管理的必备技能之一。为了提高自己的SQL技能,我们 可以通过练习题来不断巩固和提升。 练习题一:查询商品信息 假设有一个商品表(Product)和一个供应商表(Supplier),其中商品表包含了 商品的ID、名称、价格和供应商ID等信息,供应商表包含了供应商的ID和名 称等信息。请写出一条SQL语句,查询出所有商品的名称、价格和供应商名称。解答一: ```sql SELECT https://www.wendangku.net/doc/2819351773.html,, Product.Price, https://www.wendangku.net/doc/2819351773.html, FROM Product JOIN Supplier ON Product.SupplierID = Supplier.ID; ``` 练习题二:统计销售额 假设有一个订单表(Orders)和一个订单详情表(OrderDetails),其中订单表 包含了订单的ID、日期和客户ID等信息,订单详情表包含了订单详情的ID、 订单ID、商品ID和数量等信息。请写出一条SQL语句,统计每个客户的总销 售额,并按销售额降序排序。 解答二:

```sql SELECT Orders.CustomerID, SUM(Product.Price * OrderDetails.Quantity) AS TotalSales FROM Orders JOIN OrderDetails ON Orders.ID = OrderDetails.OrderID JOIN Product ON OrderDetails.ProductID = Product.ID GROUP BY Orders.CustomerID ORDER BY TotalSales DESC; ``` 练习题三:查询员工信息 假设有一个员工表(Employee)和一个部门表(Department),其中员工表包 含了员工的ID、姓名和部门ID等信息,部门表包含了部门的ID和名称等信息。请写出一条SQL语句,查询出每个部门的员工数量,并按员工数量升序排序。 解答三: ```sql SELECT https://www.wendangku.net/doc/2819351773.html,, COUNT(Employee.ID) AS EmployeeCount FROM Department LEFT JOIN Employee ON Department.ID = Employee.DepartmentID GROUP BY https://www.wendangku.net/doc/2819351773.html, ORDER BY EmployeeCount ASC; ``` 练习题四:分页查询

SQL数据库复习题整理

SQL数据库复习题整理 复习练习题 一、选择题 1.当关系模式R(A,B)已属于3NF,下列说法正确的是(B) A.它一定消除了插入和删除异常 B.仍存在一定的插入和删除异常 C.一定属于BCNF D.A和C都是 2.在关系模式R中,若其函数依赖集中所有候选关键字都是决定因素,则R最高范式是(C) A.2NF B.3NF C.4NF D.5NF 3.在关系模式中,如果属性A和B存在1对1的联系,则说(C) A.A→B B.B→A C.A B D.以上都不是4.候选关键字中的属性称为(B) A.非主属性 B.主属性 C.复合属性 D.关键属性 5.关系模式R中的属性全部都是主属性,则R的最高范式必定是(B) A.2NF B.3NF C.BCNF D.4NF

6.消除部分函数依赖的INF的关系模式,必定是(B) A.1NF B.2NF C.3NF D.4NF 7.如下不能正确执行的语句是(D) A. select * from table name where 1>2 B. truncate table table name C. delete from table name where null-null D. alter table table name add column id dint 8.在SQL Server 中将两个或更多查询结果组合为单个结果集的运作符是(C )A. join B. link C. union D. add 9.小王创建了一个表,语句如下: Create table test ( T __ id int T __ name char(10) ) 现在他想查询test表中所有记录,并按t __ id升序排列,下列查询语句中能实现这一功能的是(BC)(选二项) A.Select*from test order by t __ id dese B.Select*from test order by t __ id asc C.Select*from test order by t __ id D.Select*from test order by 10.你是bennet公司的SQL server数据库管理员。你维护一个名称为benet的数据库。公司新购置一台服务器,需要你将原来的数据库移动到新的服务器上(在移动数据库期间,原服务器始终运作)。完成任务需要(A) A.在原来的服务器上分离benet数据库,将本额头数据库的数据文件和日志文

sql语句练习题及答案

sql语句练习题及答案 一在数据库 school 中建立student , sc, course 表。 学生表、课程表、选课表属于数据库School ,其各自的数据结构如下:学生Student (Sno,Sname,Ssex,Sage,Sdept) 序号列名含义数据类型长度 1 Sno 学号字符型(char) 6 2 Sname 姓名字符型(varchar) 8 3 Ssex 性别字符型(char) 2 4 Sage 年龄整数(smallint) 5 sdept 系科字符型(varchar) 15 课程表course(Cno,Cname,Cpno,Ccredit) 序号列名含义数据类型长度 1 Cno 课程号字符型(char) 4 2 cname 课程名字符型(varchar) 20 3 Cpno 先修课字符型(char) 4 4 Ccredit 学分短整数(tinyint) 学生选课SC(Sno,Cno,Grade) 序号列名含义数据类型长度 1 Sno 学号字符型(char) 6 2 Cno 课程号字符型(char) 4 3 Grade 成绩小数(decimal) 12,2 二设定主码 1 Student表的主码:sno 2 Course表的主码:cno 3 Sc表的主码:sno,cno 1写出使用 Create T able 语句创建表 student , sc, course 的SQL 语句 2在student表中插入信息 学号姓名性别年龄系科4001 赵茵男20 SX

4002 杨华女21 JSJ 3 删除student表中的元组 4在数据库school中删除关系student 5在student表添加属性sbirthdate 类型datetime Delete 1 删除所有JSJ 系的男生delete from Student where Sdept=’JSJ’ and Ssex=’男’; 2 删除“数据库原理”的课的选课纪录 delete from SC where Cno in (select Cno fromCourse where Cname=’数据库原理’); Update 1 修改0001 学生的系科为: JSJ 2 把陈小明的年龄加1岁,性别改为女。 2 修改李文庆的1001课程的成绩为9 3 分 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 表中的学生共分布在那几个系中。(distinct) 7查询0001号学生1001,1002课程的成绩。 二统计

SQL语言课后练习[大全5篇]

SQL语言课后练习[大全5篇] 第一篇:SQL语言课后练习 岳阳市湖湘认证培训学校学院路504号************ SQL语言课后练习题 以下练习都是基于数据库XSG,及数据库表XSCJ与XSDA中操作,表结构如下: XSCJ(学号C(10),语文N(4,1),数学N(4,1),英语N(4,1),计算机N(4,1),平均成绩N(4,1)) XSDA(学号C(10),姓名C(10),性别C(4),班级C(10),出生日期D,籍贯C(20),家庭情况G,简历M,照片G) 1、用SQL语句建立XSDA表,并为学号字段创建为主关键字,约束性别字段的值只能为男或为女,如果在不输入信息的情况下默认值是女。 2、用SQL语句建立XSCJ表,并与XSDA表建立联系。 3、为XSDA表增加一个学费字段,要求为货币型,约束字段有效性规则:学费必须在0至20000元 内(含),否则提示:学费错了。 4、修改XSDA表学费字段,要求学费必须在2000-20000间(含),否则提示:学费错了。 5、修改XSDA表学费字段,删除它的字段有效性规则。 6、修改XSDA表学费字段,将其改名为:学杂费。 7、修改XSDA表的籍贯字段的宽度为10。 8、删除XSDA表的学费字段。 9、将XSDA表的姓名字段和性别字段定义为候选索引,索引名为:TEMP。 10、删除XSDA表的候选索引TEMP。 11、删除XSDA表及XSCJ表。 12、在XSCJ表中插入一个元组:学号:19980405,语文:78,数学:68,英语:74,计算机:

90,平均成绩:77.50。 13、在XSDA表中插入一个元组:学号:19980405,姓名:王小辉,性别:男,出生日期:1981 年12月5日 14、在XSCJ表中为所有学生的英语成绩加10分 15、在XSDA表中为学号为:19980405的学生的籍贯改为岳阳市 16、删除XSDA表中学号为19980405的记录 17、将XSDA表复制到XSDABAK表 18、从XSG数据库中的XSDA表查找所有学生的学号、姓名和班级的情况 19、从XSG数据库的XSDA表查找计981班的学生的学号、姓名和班级的情况 20、从XSG数据库中的XSCJ表中查找计算机成绩大于80的学生的学号 21、从XSG数据库的XSDA表查找所有学生的学号、姓名和班级的情况,并按学号降序排序 22、从XSG数据库中的XSCJ表中查找计算机成绩大于60的学生学号、语文、计算机和平均成绩,并按计算机的降序排序,如计算机成绩相同,按学号的升序排序 23、从XSG数据库的XSDA表查找前4个学生的情况,按学号降序排序 24、从XSG数据库中的XSCJ表中查找计算机成绩大于70的前40%学生的学生信息,并按计算 机的降序排序 25、从XSG数据库的XSDA和XSCJ表查找所有学生的姓名、语文、数学、英语和计算机成绩。 (用两种方式,其中一种是INNER JOINON) 26、查询哪些班级有计算机成绩大于等于90分的学生 27、查询班级和学号为:19980102相同的学生的XSDA信息

相关文档