SQL数据库练习

判断题:

  1. 在数据库中产生数据不一致的根本原因是冗余。T
  2. 一个数据库只有一个模式和一个内模式。T
  3. 外模式/模式映像可以保证数据与程序的逻辑独立性。T
  4. 在SQL命令的短语中,WHERE子句中不允许使用聚集函数。T
  5. 在物理设计阶段,形成数据的外模式。F
  6. 数据库的三级模式结构能够提高系统的安全性。T
  7. 三级模式结构可提供数据独立性。T
  8. 实体完整性要求:关系中任何一个元组在组成“主键”的属性上不能取“空值”。T
  9. 一个关系模式可以有多个“候选键”。T
  10. SQL语言中,删除一个视图的命令是DELETE。F
  11. 为保证数据库的正确性,必须先写日志文件,后写数据库。T
  12. 实体完整性和参照完整性是基本关系的两个不变性。T
  13. 子查询的SELECT语句中不能使用ORDER BY子句。T
  14. 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。T
  15. 当主外健不能保证参照完整性和数据一致性时,还可以选择触发器来实现。T
  16. 参照完整性是指在基本表中,主属性不能取空值。F
  17. 域完整性是保证数据完整性的重要约束之一。T
  18. 在E-R图中,用来表示属性的图形是椭圆形。T
  19. 关系表中的每一行称为属性。F
  20. 一个关系模式只能有一个“主键”。T
  21. SELECT语句中的条件可以用WHERE或HAVING引出,但HAVING必须在GROUP BY之后使用。T
  22. SELECT语句中的ORDER BY子句中,如果有多个排序标准,它们之间用分号分隔,查询结果与排序标准的先后顺序有关。F
  23. ORDER BY子句仅对检索数据的显示有影响,并不改变表中行的内容顺序。T
  24. 使用WHERE子句是为了限制GROUP BY子句返回的行个数。F
  25. select * from books LIMIT 10语句中的LIMIT 10表示连续的10条,也就是0-9条。F
  26. 如果想要查询结果中不显示重复的数据,可以使用DISTINCT关键字。T
  27. SELECT语句不属于数据库对象。T
  28. 可以在表或临时表上创建视图。T
  29. 视图是一个虚拟表,并不表示任何物理数据,而只是用来查看数据的窗口而已。T
  30. 通过视图可以修改表的属性。F
  31. 当一个操作数为真时,逻辑与运算的结果由另一个操作数决定。T
  32. 视图中不能包含基本表中被定义为非空的列。F
  33. 一个数据库只能有一个外模式,而概念模式和内模式则可有多个。F
  34. SQL Server中唯一约束字段不允许存在多个NULL值。T
  35. 创建数据表时必须为字段设置数据类型。T
  36. 自连接查询指相互连接的表在物理上为同一个表,但逻辑上分为两个表。T
  37. 视图可以帮助用户屏蔽真实表结构变化带来的影响。T
  38. 同时删除多个数据表时使用逗号分隔。T
  39. 左连接“表1 LEFT JOIN 表2”的作用与“表2 RIGHT JOIN 表1”等价。T
  40. 主键用于唯一标识表中的记录。T
  41. 循环语句和判断语句可以互相嵌套。T
  42. 在回滚事务时,该事务内所有的操作都将撤销。T
  43. 主键约束的字段值要同时满足非空和唯一性。T
  44. SQL是关系型数据库语言的标准,所以不同数据库产品的SQL完全相同。F
  45. 数据字典通常包括数据项,数据结构,数据流,数据存储,和处理过程五个部分。T
  46. 触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。T
  47. 3NF 的模式也一定是 2NF 模式。T
  48. 已知系(系编号,系名称,系主任,电话,地点), 系关系的主码是系编号。T
  49. 外连接可以保留主表中与从表不匹配的记录。T
  50. 子查询指在一个查询里嵌套了其他的若干查询 ,只能在WHERE或HAVING子句中包含另一个SELECT查询语句。F


选择题:

1. 数据库应用程序的编写是基于数据库三级模式中的。

    A.模式  B.外模式 C.内模式 D.逻辑模式

2. 索引是在基本表的列上建立的一种数据库对象,它同基本表分开存储,使用它能够加快数据的______速度。

    A.插入 B.修改 C.删除 D.查询

3. 数据库系统是采用了数据库技术的计算机系统,数据库系统由数据库、数据库管理系统、应用系统和()。

    A.系统分析员 B.程序员 C.数据库管理员 D.操作员

4. 数据库系统的数据独立性体现在()。

    A.不会因为数据的变化而影响到应用程序

    B.不会因为数据存储结构与数据逻辑结构的变化而影响应用程序

    C.不会因为存储策略的变化而影响存储结构

    D.不会因为某些存储结构的变化而影响其他的存储结构

5. 关系数据库规范化是为了解决关系数据库中()的问题而引入的。

    A.提高查询速度

    B.保证数据的安全性

    C.保证数据的完整性

    D.插入、删除异常和数据冗余

6. 若数据库中只包含成功事务提交的结果,则称该数据库处于( )状态。

     A.安全 B.完整 C.一致 D.运行

7. 数据库系统的核心是( ) 。

A.数据库管理系统 B.数据库 C.数据模型 D.数据

8. 在数据库中,产生数据不一致的根本原因是( )

    A.数据存储量太大

    B.没有严格保护数据

    C.未对数据进行完整性控制

    D.数据冗余

9. 数据库系统的特点是( ) 、数据独立、减少数据冗余、避免数据不一致和加强了数据保护

     A.数据共享 B.数据存储 C.数据应用 D.数据保密

10. 数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作,这种功能称为( )

      A.数据定义功能 B.数据管理功能 C.数据操纵功能 D.数据控制功能

11. E-R图是数据库设计的工具之一,它适用于建立数据库的:

      A.概念模型 B.逻辑模型 C.结构模型 D.物理模型

12. 在数据库的概念设计中,最常用的数据模型是:

      A.形象模型 B.物理模型 C.逻辑模型 D.实体联系模型

13. SQL语言的GRANT和REVOKE语句主要是用来维护数据库的( )。

      A.完整性 B.可靠性 C.安全性 D.一致性

14. 数据库中( )是指数据的正确性和相容性。

      A.安全性 B.完整性 C.并发性 D.恢复性

15. 数据库三级模式体系结构的划分,有利于保持数据库的______。

      A.结构规范化 B.数据独立性 C.数据安全性 D.操作可行性

16. 判断下面的关系模式R是第几范式?

     

      A.1NF B.2NF C.3NF D.BCNF

17. 关系数据模型是目前最重要的一种数据模型,它的三个要素分别是( )。

      A.实体完整性、参照完整性、用户自定义完整性

      B.数据结构、关系操作、完整性约束

      C.数据增加、数据修改、数据查询

      D.外模式、模式、内模式

18. 关系数据库中,实现实体之间的联系是通过关系与关系之间的( )。

       A.公共索引 B.公共存储 C.公共元组 D.公共属性

19. 在数据库逻辑结构设计中,将E-R模型转换为关系模型应遵循相应原则。对于两个不同实体集和它们之间的一个多对多联系,最少应转换为多少个关系模式?

      A.3      B.4     C.5     D.6

20. 在关系数据模型中,域是指( )。

      A.字段 B.记录 C.属性 D.属性的取值范围

21. 与数据库有关的安全性主要包括:用户身份鉴别、()、多层存取控制、审计、数据加密等。

      A.视图 B.授权 C.测试 D.关系

22. 在关系模型中有三类完整性约束,任何关系必须满足其中的哪两种完整性约束条件。

      A.参照完整性,用户自定义完整性

      B.数据完整性,实体完整性

      C.实体完整性,参照完整性

      D.动态完整性,实体完整性

23. 关系数据库管理系统应能实现的专门关系运算包括( )

       A.排序、索引、统计

      B.选择、投影、连接

      C.关联、更新、排序

      D.显示、打印、制表

24. 关于数据库系统,下面说法正确的是_______。

      A.DBA应该是软件公司设计开发团队的人员

      B.DBA一般在应用程序交付使用后才开始接触应用系统

      C.高级语言编写的应用程序可以直接访问数据库文件

      D.数据库管理系统负责编译并执行高级语言程序发送来的SQl语句,将结果反馈给应用程序

25. 在数据库中删除触发器使用( )。

       A.ROLLBACK    B.DROP    C.DELALLOCATE    D.DELETE

26. 在数据库的表定义中,限制成绩属性列的取值在0到100的范围内,属于数据的________约束。

       A.实体完整性  B.参照完整性  C.用户自定义  D.用户操作

27. 给建立好的表添加约束的关键字是:

       A.add yueshu   B.add constraint   C.add cons   D.add straint

28. SQL的中文含义是:

       A.结构化查询语言   B.结构化定义语言   C.结构化操纵语言   D.结构化选择语言

29. SQL中,和 AGE IN(20,22)语义相同的是:

      A.AGE<=22 AND AGE >=20

      B.AGE <22 AND AGE >20

      C.AGE =20 AND AGE =22

      D.AGE =20 OR AGE =22

30. 使用关键字( )可以清除查询结果中的重复行。

       A.DISTINCT   B.UNION   C.ALL   D.TOP

31. 只有满足连接条件的记录才包含在查询结果中,这种联接为:

       A.左外连接   B.右外连接   C.内连接   D.交叉连接

32. 欲将表“学生”中的信息先按“学号”升序排序,再按“成绩”降序排列,SQL 语句能正确完成的是:

      A.SELECT * FROM 学生 ORDER BY 学号 , 成绩

      B.SELECT * FROM 学生 ORDER BY 学号 , 成绩 DESC

      C.SELECT * FROM 学生 ORDER BY 学号 ASC, AND 成绩 DESC

      D.SELECT * FROM 学生 ORDER BY 成绩 DESC,学号 ASC

33. 下列聚合函数中不忽略空值 (null) 的是:

       A.SUM (列名)   B.MAX (列名)   C.COUNT (*)   D.AVG (列名)

34. 在视图的定义语句中,只能包含:

       A.数据查询语句   B.数据增、删、改语句   C.创建表的语句   D.全部都可以

35. 设用户在某数据库中经常需要进行如下查询操作:

      SELECT * FROM T WHERE C1=’A’ ORDER BY C2  

设T表中已在C1列上建立了主码约束,且该表只建有该约束。为提高该查询的执行效率,下列方法中可行的是:

      A.在C1列上建立一个聚集索引,在C2列上建立一个非聚集索引

      B.在C1和C2列上分别建立一个非聚集索引

      C.在C2列上建立一个非聚集索引

      D.在C1和C2列上建立一个组合的非聚集索引

36. —个银行营业所可以有多个客户,一个客户也可以在多个营业所进行存取款业务,则客户和银行营业所之间的联系是:

      A.—对一   B.—对多   C.多对一   D.多对多

37. 在关系数据库中,二维表结构是:

       A.关系数据库采用的概念层数据模型

       B.关系数据库采用的组织层数据模型

       C.数据库文件的组织方式

       D.内模式采用的数据组织方式

38. 设有如下备份操作

      现从备份中对数据库进行恢复,正确的恢复顺序为:

      A.完整备份1,日志备份1,日志备份2,差异备份1,日志备份3,日志备份4

      B.完整备份1,差异备份1,日志备份3,日志备份4

      C.完整备份1,差异备份1

      D.完整备份1,日志备份4

39. 要保证数据库的逻辑数据独立性,需要修改的是( )。

      A.模式与外模式之间的映射

      B.模式与内模式之间的映射

      C.模式

      D.三级模式

40. 数据库系统实现数据独立性是因为采用了。

      A.层次模型   B.网状模型   C.关系模型   D.三级模式结构

41. 数据库中的数据除了具有永久存储、有组织的特点外还具有( )的特点?

      A.较高的冗余度   B.可共享   C.数据不具有独立性   D.由应用程序管理数据

42. 数据库中各种操作的执行是通过()来完成的。

      A.DB   B.DBS   C.DBMS   D.DBA

43. 下面哪一项不是数据模型的要素。

       A.数学模型   B.数据结构   C.数据的约束条件   D.数据操作

44. 根据实体完整性的规则,下面关于一个关系中主码的 描述正确的是

      A.主码分量的值不可以重复,但是可以为空

      B.主码分量的值不可以重复,也不可以为空

      C.主码分量的值可以重复,但是不可以为空

      D.以上都不对

45. 下面关于关系中的元组的描述正确的是______。

       A.元组的先后顺序不能任意颠倒,一定要按照输入的顺序排列

       B.元组的先后顺序可以颠倒,但是不能出现重复元组

       C.元组的先后顺序不能任意颠倒,一定要按照主码顺序排列

       D.元组的先后顺序颠倒后,会影响数据库中数据之间的关系

46. 已知关系student (sno,sname,age,gender,place), 查询姓名中含有”小”字的同学姓名,年龄的SQL语句,正确的是( )。 

      A.Select sname 姓名,age 年龄 From student Where sname = '小';

      B.Select sname 姓名, age 年龄 From student Where sname like '小%';

      C.Select sname 姓名, age 年龄 From student Where sname like '_小%';

      D.Select sname 姓名, age 年龄 From student Where sname like '%小%';

47. 在数据库设计中,将ER图转换成关系数据模型过程属于( )。

      A.需求分析阶段   B逻辑设计阶段   C.概念设计阶段   D.物理设计阶段

48. 若在两个局部ER图中,实体“职工”的编号一个被定义为数值型,另一个被定义为字符型,则称之为。

      A.命名冲突   B.属性冲突   C.联系冲突   D.结构冲突

49. 对创建数据库模式一类的数据库对象的授权可由CREATE USER时实现。新创建的数据库用户有三种权限,CONNECT、RESOURCE和DBA。拥有RESOURCE权限的用户( )

     A.不能创建基本表

     B.不能创建视图

     C.不能创建模式

     D.可以创建新用户

50. 数据库系统的核心和基础是( )

      A.数据库   B.数据库管理系统   C.数据模型   D.软件工具


编程题:

1. 查询2022年4月15日至5月15日之间签约的项目

本题目要求根据Projects表,返回2022年4月15日至5月15日之间签约的项目。

表结构:

CREATE TABLE Projects
(
  pid          INT      PRIMARY KEY,  -- 项目id
  vid          INT      NULL,         -- 供应商id
  sid          INT      NOT NULL,     -- 销售人员id
  contractdate DATETIME NOT NULL      -- 签约日期
);

表样例

Projects表:

pidvidsidcontractdate
105237272022/05/01 00:00:00.000
10524512022/05/01 00:00:00.000
10525912022/05/02 00:00:00.000
105557162022/06/02 00:00:00.000
105567322022/06/03 00:00:00.000
105574492022/06/03 00:00:00.000

输出样例:

pidcontractdate
105232022/05/01 00:00:00.000
105242022/05/01 00:00:00.000
105252022/05/02 00:00:00.000

SELECT pid,contractdate FROM Projects
WHERE contractdate
BETWEEN '2022-4-15' AND '2022-5-15';

2. 查询第一个字是“欧”,第4个字母为“文”的供应商。

本题目要求根据Vendors表,返回第一个字是“欧”,第4个字母为“文”的供应商。

提示:使用中文字符串时在前面加N,能避免出现中文乱码的可能性。

表结构:

CREATE TABLE Vendors
(
  vid       INT          PRIMARY KEY,   -- 供应商id
  vname     NVARCHAR(20) NOT NULL,      -- 姓名
  vaddress  NVARCHAR(30) NOT NULL,      -- 地址
  vprovince NVARCHAR(25) NOT NULL       -- 所在省份
);

表样例

Vendors表:

vidvnamevaddressvprovince
1邓云钊广州市海珠南路126号广东省
2欧阳宇文佛山市南桂西路25号广东省
3张文正北京市朝阳北路23号北京市
4欧晓文成都市大悦路518号四川省

输出样例:

vidvname
2欧阳宇文

SELECT vid,vname FROM Vendors
WHERE vname LIKE N'欧__文%';

3. 查询每个省份的供应商数量

本题目要求根据Vendors表,返回每个省份的供应商数量。

提示:使用中文字符串时在前面加N,能避免出现中文乱码的可能性。

表结构:

CREATE TABLE Vendors
(
  vid       INT          PRIMARY KEY,   -- 供应商id
  vname     NVARCHAR(20)  NOT NULL,      -- 姓名
  vaddress  NVARCHAR(30) NOT NULL,      -- 地址
  vprovince NVARCHAR(25) NOT NULL       -- 所在省份
);

表样例

Vendors表:

vidvnamevaddressvprovince
1Aaliyah广州市海珠南路126号广东省
2Abraham佛山市南桂西路25号广东省
3Dabria北京市朝阳北路23号北京市
4Sabina成都市大悦路518号四川省
5Dylan佛山市祖庙路2号广东省

输出样例:

vprovincevcount
广东省3
北京市1
四川省1

SELECT vprovince,count(vid) AS vcount
FROM Vendors
GROUP BY vprovince;

4. 查询欧阳宇文这个供应商实施的项目

本题目要求根据Vendors表和Projects表,返回欧阳宇文这个供应商实施的项目。

提示:使用中文字符串时在前面加N,能避免出现中文乱码的可能性。

表结构:

CREATE TABLE Vendors
(
  vid       INT          PRIMARY KEY,   -- 供应商id
  vname     NVARCHAR(20) NOT NULL,      -- 姓名
  vaddress  NVARCHAR(30) NOT NULL,      -- 地址
  vprovince NVARCHAR(25) NOT NULL       -- 所在省份
);
CREATE TABLE Projects
(
  pid          INT      PRIMARY KEY,  -- 项目id
  vid          INT      NULL,         -- 供应商id
  sid          INT      NOT NULL,     -- 销售人员id
  contractdate DATETIME NOT NULL      -- 签约日期
);

表样例

Vendors表:

vidvnamevaddressvprovince
1欧阳宇文广州市海珠南路126号广东省
2邓云钊佛山市南桂西路25号广东省
3张文正北京市朝阳北路23号北京市
4欧晓文成都市大悦路518号四川省
5周琦佛山市祖庙路2号广东省

Projects表:

pidvidsidcontractdate
10523372022/05/01 00:00:00.000
10524312022/05/01 00:00:00.000
10525212022/05/02 00:00:00.000
10555162022/06/02 00:00:00.000
10556422022/06/03 00:00:00.000
10557392022/06/03 00:00:00.000

输出样例:

vidvnamepidcontractdate
1欧阳宇文105552022/06/02 00:00:00.000
SELECT v.vid, v.vname, p.pid, p.contractdate
FROM Vendors v
JOIN Projects p ON v.vid = p.vid
WHERE v.vname = N'欧阳宇文';

5. 查询在2022年6月2日签约的供应商

本题目要求根据Vendors表和Projects表,返回在2022年6月2日签约的供应商。

提示:使用中文字符串时在前面加N,能避免出现中文乱码的可能性。

表结构:

CREATE TABLE Vendors
(
  vid       INT          PRIMARY KEY,   -- 供应商id
  vname     NVARCHAR(20) NOT NULL,      -- 姓名
  vaddress  NVARCHAR(30) NOT NULL,      -- 地址
  vprovince NVARCHAR(25) NOT NULL       -- 所在省份
);
CREATE TABLE Projects
(
  pid          INT      PRIMARY KEY,  -- 项目id
  vid          INT      NULL,         -- 供应商id
  sid          INT      NOT NULL,     -- 销售人员id
  contractdate DATETIME NOT NULL      -- 签约日期
);

表样例

Vendors表:

vidvnamevaddressvprovince
1欧阳宇文广州市海珠南路126号广东省
2邓云钊佛山市南桂西路25号广东省
3张文正北京市朝阳北路23号北京市
4欧晓文成都市大悦路518号四川省
5周琦佛山市祖庙路2号广东省

Projects表:

pidvidsidcontractdate
10523372022/05/01 00:00:00.000
10524312022/05/01 00:00:00.000
10525212022/05/02 00:00:00.000
10555162022/06/02 00:00:00.000
10556422022/06/03 00:00:00.000
10557392022/06/03 00:00:00.000

输出样例:

vidvname
1欧阳宇文
SELECT DISTINCT v.vid,v.vname
FROM Vendors v
JOIN Projects p ON v.vid = p.vid
WHERE CONVERT(DATE,p.contractdate) = '2022-06-02';

6. 查询在系统中最早签约的供应商

本题目要求根据Vendors表和Projects表,返回在系统中最早签约的供应商。

提示:使用中文字符串时在前面加N,能避免出现中文乱码的可能性。

表结构:

CREATE TABLE Vendors
(
  vid       INT          PRIMARY KEY,   -- 供应商id
  vname     NVARCHAR(20) NOT NULL,      -- 姓名
  vaddress  NVARCHAR(30) NOT NULL,      -- 地址
  vprovince NVARCHAR(25) NOT NULL       -- 所在省份
);
CREATE TABLE Projects
(
  pid          INT      PRIMARY KEY,  -- 项目id
  vid          INT      NULL,         -- 供应商id
  sid          INT      NOT NULL,     -- 销售人员id
  contractdate DATETIME NOT NULL      -- 签约日期
);

表样例

Vendors表:

vidvnamevaddressvprovince
1欧阳宇文广州市海珠南路126号广东省
2邓云钊佛山市南桂西路25号广东省
3张文正北京市朝阳北路23号北京市
4欧晓文成都市大悦路518号四川省
5周琦佛山市祖庙路2号广东省

Projects表:

pidvidsidcontractdate
10523372022/04/01 00:00:00.000
10524312022/05/01 00:00:00.000
10525212022/05/02 00:00:00.000
10555162022/06/02 00:00:00.000
10556422022/06/03 00:00:00.000
10557392022/06/03 00:00:00.000

输出样例:

vidvname
3张文正
SELECT v.vid,v.vname
FROM Vendors v
JOIN Projects p ON v.vid = p.vid
WHERE p.contractdate =(SELECT MIN(contractdate)FROM Projects);

  • 22
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值