第3章 关系数据库标准语言SQL——章末小结和习题

简介: 第3章 关系数据库标准语言SQL——章末小结和习题

第3章  关系数据库标准语言SQL


章末小结


     SQL可以分为数据定义、数据查询、数据更新、数据控制四大部分。人们有时把数据更新称为数据操纵,或把数据查询与数据更新合称为数据操纵。本章系统而详尽地讲解了前面三部分的内容。

     数据控制中的数据安全性和完整性控制将放在第5章和第6章中讲解。嵌入式SQL、过程性SQL与存储过程将放在第8章中讲解。

     本章在讲解SQL的同时,进一步讲解了关系数据库系统的基本概念,使关系数据库的许多概念更加具体、更加丰富。

     SQL是关系数据库语言的工业标准。目前,大部分数据库管理系统产品都能支持SQL 92,但是许多数据库系统只支持SQL 99、SQL 2008和SQL 2011的部分特征,至今尚没有一个数据库系统能够完全支持SQL 99以上的标准。

     SQL的数据查询功能是最丰富,也是最复杂的,读者应加强实验练习。


习题




1、试述SQL的特点。








2、说明在drop table时,restrictcascade的区别。








3、有两个关系S(A,B,C,D)T(C,D,E,F),写出与下列查询等价的SQL表达式:

11a0d1fb7dbc012285f820817fa0bfa81_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg

28426f3b8fce034b5c562c95311f4e08c_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg

317d3440c730c64b74636fc66e7c2d367_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg

42950b50f5069f85c04ffc2a7d98ea57a_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg

58a0b9e9f071885188d7111960a8403d1_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg

6fe2dd686a096a8429329126231d8a9b6_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg










4、用SQL语句建立第二章习题6中的四个表;针对建立的4个表用SQL语言完成第二章习题6中的查询。

设有一个SPJ数据库,包括SPJSPJ4个关系模式:

S(SNO,SNAME,STATUS,CITY);

P(PNO,PNAME,COLOR,WEIGHT);

J(JNO,JNAME,CITY);

SPJ(SNO,PNO,JNO,QTY);


供应商表S由供应商代码(SNO)、供应商姓名(SANME)、供应商状态(STATUS)、供应商所在城市(CITY)组成。

零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成。

工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成。

供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY


今有若干数据如下:

S


SPJ

SNO

SNAME

STATUS

CITY


SNO

PNO

JNO

QTY

S1

精益

20

天津


S1

P1

J1

200

S2

盛锡

10

北京


S1

P1

J3

100

S3

东方红

30

北京


S1

P1

J4

700

S4

丰泰盛

20

天津


S1

P2

J2

100

S5

为民

30

上海


S2

P3

J1

400

P


S2

P3

J2

200

PNO

PNAME

COLOR

WEIGHT


S2

P3

J4

500

P1

螺母

12


S2

P3

J5

400

P2

螺栓

绿

17


S2

P5

J1

400

P3

螺丝刀

14


S2

P5

J2

100

P4

螺丝刀

14


S3

P1

J1

200

P5

凸轮

40


S3

P3

J1

200

P6

齿轮

30


S4

P5

J1

100

J


S4

P6

J3

300

JNO

JNAME

CITY


S4

P6

J4

200

J1

三建

北京


S5

P2

J4

100

J2

一汽

长春


S5

P3

J1

200

J3

弹簧厂

天津


S5

P6

J2

200

J4

造船厂

天津


S5

P6

J4

50

J5

机车厂

唐山






J6

无线电厂

常州






J7

半导体厂

南京

















1)建表








2)使用SQL语句完成下列查询

求供应工程J1零件的供应商号码SNO



求供应工程J1零件P1的供应商号码SNO



求供应工程J1零件为红色的供应商号码SNO





求没有使用天津供应商生产的红色零件的工程号JNO











求至少用了供应商S1所供应的全部零件的工程号JNO











5、针对习题4中的4个表试用SQL完成以下各项操作:

1)找出所有供应商的姓名和所在城市;



2)找出所有零件的名称、颜色、重量;



3)找出使用供应商S1所供应零件的工程号码;



4)找出工程项目J2使用的各种零件的名称及其数量;




5)找出上海厂商供应的所有零件号码;





6)找出使用上海产的零件的工程名称;



7)找出没有使用天津产的零件的工程号码;









8)把全部红色零件的颜色改成蓝色;



9)由S5供给J4的零件P6改为由S3供应,请作必要的修改;





10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录;




11)请将(S2,J6,P4,200)插入供应情况关系。




6、什么是基本表?什么是视图?两者的区别和联系是什么?







7、试述视图的优点。






8、哪类视图是可以更新的,哪类视图是不可更新的?各举一例说明。







9、请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO)、零件代码(PNO)、供应数量(QTY)。针对该视图完成下列查询:

找出三建工程项目使用的各种零件代码及其数量。

找出供应商S1供应三建工程的情况。


相关文章
|
8天前
|
SQL 关系型数据库 MySQL
数据库开发之SQL简介以及DDL的详细解析
数据库开发之SQL简介以及DDL的详细解析
23 0
|
19天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
91 6
|
6天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
|
8天前
|
SQL XML 数据库
sql导入数据库命令
在SQL Server中,数据库导入可通过多种方式实现:1) 使用SSMS的“导入数据”向导从各种源(如Excel、CSV)导入;2) BULK INSERT语句适用于导入文本文件;3) bcp命令行工具进行批量数据交换;4) OPENROWSET函数直接从外部数据源(如Excel)插入数据。在操作前,请记得备份数据库,并可能需对数据进行预处理以符合SQL Server要求。注意不同方法可能依版本和配置而异。
|
11天前
|
SQL Oracle 关系型数据库
Oracle SQL*Plus的SPOOL命令:数据库世界的“录像机”
【4月更文挑战第19天】`SQL*Plus`的`SPOOL`命令是Oracle数据库中的“录像机”,能记录所有操作和输出。它在用户开始“SPOOL ON”时启动,记录SQL查询、输出、错误信息等。完成后,“SPOOL OFF”停止记录并生成日志文件,便于回顾和检查。日志文件可自定义保存位置和命名,支持多文件录制,方便分类管理。无论数据分析、SQL脚本编写还是日常维护,`SPOOL`都是强大的工具,值得一试!
|
11天前
|
SQL Oracle 关系型数据库
Oracle SQL*Plus的HELP命令:你的数据库“百事通”
【4月更文挑战第19天】`Oracle SQL*Plus` 的 `HELP` 命令是数据库查询的强大工具,犹如“百事通”。在遇到困惑时,`HELP` 可提供详细命令解释和用法示例,解答基础到高级的 SQL 和 PL/SQL 疑问。它还是“活字典”,揭示命令关联与区别,如 `SET` 和 `ALTER SESSION`。此外,`HELP` 解释数据库概念,如“事务”,并支持模糊查询。无论新手还是专家,`HELP` 都是数据库探索的得力助手。
|
11天前
|
SQL Oracle 关系型数据库
Oracle SQL*Plus的SET命令:你的数据库会话“调色板”
【4月更文挑战第19天】Oracle SQL*Plus的SET命令是数据库会话的“调色板”,用于设置输出格式、反馈信息和各种偏好。它能调整PAGESIZE和LINESIZE以优化显示,控制ECHO和FEEDBACK开关以定制反馈,以及统计命令执行时间(TIMING)和调试SQL(VERIFY)。更高级的选项如HEADING和COLSEP可改善输出的可读性。通过灵活运用SET命令,能提升工作效率和体验,是数据库管理员和开发者的必备工具。
|
12天前
|
SQL Oracle 关系型数据库
常用数据库的分页语句(mySQL、oracle、PostgreSQL、SQL Server)
常用数据库的分页语句(mySQL、oracle、PostgreSQL、SQL Server)
|
14天前
|
SQL NoSQL 关系型数据库
【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?-02
【4月更文挑战第13天】该文介绍了几个数据库查询优化技巧。首先,创建覆盖索引如<A,B,C>能加速`select A,B,C from student where A=? and B=? and C=?`的执行。其次,为常用于排序的列建立索引,如在`id,update_time`上建索引,可避免数据排序,显著提高查询速度。优化`count(*)`可通过预估值或使用Redis记录总数,但需注意数据一致性问题。使用索引提示如FORCE INDEX可强制使用特定索引,但应谨慎。将`having`的非聚合条件移到`where`里可提升效率。最后,处理深度分页时
21 3
|
14天前
|
SQL 安全 关系型数据库
关系型数据库控制语言(DCL)
DCL是SQL的一部分,用于控制数据库安全和访问权限。主要包括GRANT(授权)、REVOKE(撤销)和角色管理。GRANT用于给予用户访问数据库对象的权限,REVOKE用于撤销权限。角色管理则允许批量授予一组权限。DCL帮助管理员精细控制数据访问,确保安全性和完整性。不同RDBMS对DCL的实现可能略有差异,使用时需参考相应文档。
15 6