从1.1.1节的介绍可以看到,在数据库管理系统出现之前,人们对数据的操作是直接针对数据文件编写应用程序实现的,这种模式会产生很多问题。对于1.1.1小节中列举的学生基本信息管理和学生选课管理两个子系统,如果使用数据库技术来管理,其实现方式如图1-4所示。保证数据的安全是通过数据库管理系统的安全控制机制实现的,保证数据的可靠是通过数据库管理系统的备份和恢复机制实现的。......
2025-09-30
SQL的数据查询语句中包括SELECT,FROM,WHERE,GROUP BY和ORDER BY子句。SELECT语句具有数据查询、统计、分组和排序的功能,其语句表达能力非常强大。
1.SELECT语句的语法
SELECT语句的语法格式为:
SELECT<目标列组>
FROM<数据源>
[WHERE<元组选择条件>]
[GROUP BY<分列组>[HAVⅠNG<组选择条件>]]
[ORDER BY<排序列1><排序要求1>[,……n];
查询语句的功能是从FROM子句指定的数据源(基本表或视图组)中,选择满足元组选择条件的元组数据,并对它们进行分组、统计、排序和投影,形成查询结果集。
在查询语句中共有5种子句,其中SEL ECT和FROM语句为必选子句,而WHERE、GROUP BY和ORGER BY子句为任选子句。
(1)SELECT子句
SELECT子句用于指明查询结果集的目标列。目标列可以是直接从数据源中投影得到的字段、与字段相关的表达式或数据统计的函数表达式,目标列还可以是常量。如果目标列中使用了两个基本表(或视图)中相同的列名,则要在列名前加表名限定,即使用“<表名>.<列名>”表示。
(2)FROM子句
FROM子句用于指明查询的数据源。查询操作需要的数据源指基本表(或视图表)组,表间用“,”分割。如果查询使用的基本表或视图不在当前数据库中,还需要在表或视图前加上数据库名加以说明,即使用“<数据库名>.<表名>”的形式表示。如果在查询中需要一表多用,则每种使用都需要一个表的别名标识,并在各自使用中用不同的表别名表示。
定义表别名的格式为“<表名>.<别名>”。
(3)WHERE子句
WHERE子句通过条件表达式描述关系中元组的选择条件。DBMS处理语句时,按元组为单位,逐个考察每个元组是否满足条件,将不满足条件的元组筛选掉。
(4)GROUP BY子句
GROUP BY子句的作用是按分组列的值对结果集分组。分组可以使同组的元组集中在一起,也使数据能够分组统计。当SELECT子句后的目标列中有统计函数,如果查询语句中有分组子句,则统计为分组统计,否则为对整个结果集统计。GROUP BY子句后可以带上HAVⅠNG子句表达组选择条件,组选择条件为带有函数的条件表达式,它决定着整个组记录的取舍条件。
(5)ORDER BY子句
ORDER BY子句的作用是对结果集进行排序。查询结果集可以按多个排序列进行排序,每个排序列后都可以跟一个排序要求:当排序要求为ASC时,元组按排序列值的升序排序;排序要求为DESC时,结果集的元组按排序列值的降序排列。
2.SELECT语句的操作符
SELECT语句中使用的操作符包括算术操作符、比较操作符、逻辑操作符、组合查询操作符和在字段中出现的其他操作符。下面介绍这5类操作符。(https://www.chuimin.cn)
(1)算术操作符
算术操作符在SQL语句中表达数学运算操作。SQL的数学运算操作符只有4种,它们是:+(加好)、-(减号)、×(乘号)和/(除号)。
(2)比较操作符
比较操作符用于测试两个数据是否相等、不相等、小于或大于某个值。SQL中的比较操作符包括:=(等于)、>(大于)、<(小于)、<=(小于等于)、>=(大于等于)、!=或<>(不等于)、!>(不大于)和!<(不小于),共9种操作符。
(3)逻辑操作符(见表4-2)
表4—2 SQL的逻辑操作符

可以看出,SQL的逻辑操作符种类比较多,功能也很强大。在这些逻辑操作符中,有些是在其他计算机语言也曾遇到过的,比如NOT、AND和OR,其语义和使用方法读者应比较清楚。表中的一些逻辑操作符,例如ⅠN、ANY、LⅠKE等,读者可能不太熟悉,后面的例题中会对它们做更详细和更深入的介绍。
(4)组合查询操作符
SQL的组合查询操作符是针对传统关系运算的操作符,它包括UNⅠON(并查询)、MⅠNUS(差查询)和ⅠNTERSECT(交查询),共3种。组合查询操作符的使用格式为:
<查询1><组合操作符><查询2>
①UNⅠON操作符。并查询操作,操作结果为将<查询1>和<查询2>的结果合并,即取(查询1>和<查询2>的元组,并在结果集中去掉重复行。
②MⅠNUS操作符。差查询操作,操作结果为取<查询1>得到的元组,而<查询2>没有的元组。
③ⅠNTERSECT操作符。交查询操作,操作结果为取<查询1>和<查询2>共有的元组。
(5)其他SQL操作符
其他SQL操作符是针对SELECT子句中的字段表设计的,它用于简写结果集的字段表和对字段值的限制说明。其他SQL操作符包括、ALL和DⅠSTⅠNCT 3种。
①操作符。为字段组的省略写法,说明取全部字段或表中的全部字段。使用格式为:
或<表名.
②ALL操作符。全部操作符:ALL说明在查询结果中保留重复值,如果查询中有统计函数,ALL要求计算重复值。ALL的使用格式为:
ALL<字段>或ALL<字段组>
③DⅠSTⅠNCT操作符。去掉重复值操作DⅠSTⅠNCT和ALL相反,它说明在查询结果集中去掉重复值,或在统计函数中不计重复值。DⅠSTⅠNCT的使用格式为:
DⅠSTⅠNCT<字段>或DⅠSTⅠNCT<字段组>
相关文章
从1.1.1节的介绍可以看到,在数据库管理系统出现之前,人们对数据的操作是直接针对数据文件编写应用程序实现的,这种模式会产生很多问题。对于1.1.1小节中列举的学生基本信息管理和学生选课管理两个子系统,如果使用数据库技术来管理,其实现方式如图1-4所示。保证数据的安全是通过数据库管理系统的安全控制机制实现的,保证数据的可靠是通过数据库管理系统的备份和恢复机制实现的。......
2025-09-30
关键字Modify File用以表示按后面的文件说明,在指定的数据库中修改相应数据库文件。下面的语句可在学籍管理数据库增加一个新数据库文件,同时要修改原数据库文件StuFile l的最大文件尺寸为2000 MB。Alter Database StuDataAdd FileModify File又如,如果要删除学籍管理数据库文件StuFile2,则可使用如下命令:Alter Database StuDataRemove File StuFile2......
2025-09-30
例如,一名学生可以用信息“”描述,这样的一行数据称为一条记录。单看这行数据我们很难知道其确切含义,但对其进行如下解释:张三是9912101班的男学生,1981年出生,计算机系应用软件专业,其内容就是有意义的。因此,数据是信息存在的一种形式,只有通过解释或处理才能成为有用的信息。数据的静态特征包括数据的基本结构、数据间的联系以及对数据取值范围的约束。数据的动态特征是指对数据可以进行符合一定规则的操作。......
2025-09-30
如果要使用缺省参数创建一个学籍管理数据库StuData,可以使用如下命令:Create Database StuData如果希望为数据库或事务日志指定一个或者多个特定文件,增加一个On Primary子句,列出一个或者多个文件,并可为分配这个文件的空间指定一个可选值,其命令形式如下:Create Database StuDataOn Primary,;如果为了提高性能和可恢复性,则可以使用Log On子句来指定数据库的SQL Server事务日志将存储在一个与数据库对象不同的设备上,示例如下:Create Database StuDataOn Primary,Log On;GO......
2025-09-30
例如,学生选课实例,语法树表示为如图2-3所示。图2—3语法树图2—4关系代数语法树图2—5优化后的语法树2.把语法树转换成标准(优化)形式利用优化算法,把原始的语法树转换成优化的形式。......
2025-09-30
下面给出几个应用关系代数进行查询的实例。解题说明:该题的求解思路是在全部学号中去掉选修“C2”课程的学生学号,就得出没有选修课程号为“C2”课程的学生学号。应当特别注意的是,由于选择操作为元组操作,本题不能写为求既选修“C2”课程,又选修“C3”课程的学生学号。①除关系和被除关系都为选课表。通过选择运算,求出学号为“98002”学生所选课程的元组;通过投影运算,得出除关系的结构。......
2025-09-30
约束元组变量和自由元组变量若在元组关系演算公式中:元组变量前有全称量词或存在量词,该变量为约束元组变量;否则为自由元组变量。元组关系演算公式的递归定义①每个原子公式都是公式。④在元组关系演算公式中,运算符的优先次序为:括号算术比较存在量词、全称量词逻辑非、与、或。⑤元组关系演算公式是有限次应用上述规则的公式,其他公式不是元组关系演算公式。......
2025-09-30
数据库管理系统是提供建立、管理、维护和控制数据库功能的一组计算机软件。数据库管理系统的目标是使用户能够科学地组织和存储数据,能够从数据库中高效地获得需要的数据,能够方便地处理数据。数据库管理系统能够提供以下4个方面的主要功能。数据操纵功能是数据库的基本操作功能,数据库管理系统通过提供数据操纵语言实现数据操纵功能。......
2025-09-30
相关推荐