2023年6月21日发(作者:)
【数据库系统原理与设计(第三版)万常选】第3章SQL查询语⾔SQL查询语⾔?写在前⾯:SQL查询语⾔对我们应该是⾮常重要的,以后在就业的时候,还是查询⽤的多,故⽽做出本章笔记,意在系统地理清学习思路,不⾄于思路以及知识点⼀团糟。⾸先对于任何章节,我们都要有个清晰的思路,以下是第三章SQL查询语⾔的⼤纲,⾸先列出来:1、SQL概述 由以上⼤纲图,我们可知,在SQL概述中我们主要由四⼤部分:SQL发展、SQL语⾔的组成、SQL特点、SQL查询基本概念。1.1 SQL发展?以下是SQL发展的过程(以下是SQL语⾔的名字):SQL-86SQL-92SQL-99SQL-2003主要是以上四个阶段,每个阶段不再详细叙述,感兴趣的可以查阅资料;值得⼀提的是:⽬前许多数据库⼚商都⽀持SQL-92的绝⼤多数标准,以及SQL-99和SQL-2003的部分标准,并对SQL语⾔进⾏了扩展(不同⼚家都有SQL语⾔的扩展,并有不同名字:Oracle产品将SQL称为PL/SQL,Sybase和Microsoft SQL Server 产品将SQL称为Transact-SQL。)1.2 SQL语⾔的组成SQL语⾔的组成数据定义语⾔ DDL数据操纵语⾔ DML数据控制语⾔ DCL其他这部分虽然⽼师没仔细讲解,但我认为这对我们了解SQL语⾔还是有很⼤的帮助。1. 数据定义语⾔(DDL):主要⽤于定义数据库的逻辑结构,包括数据库、基本表、视图、索引等;DDL包括三类语⾔,定义、修改、删除。2. 数据操纵语⾔(DML):主要是对数据库数据的检索和更新。3. 数据库控制语⾔(DCL):主要是对进⾏授权、⽤户维权(创建修改删除)、完整性规则定义、事务定义。4. 其他:嵌⼊语⾔和动态语⾔的定义、规定了SQL语⾔在宿主语⾔中使⽤的规则、扩展了SQL还包括数据库数据的重新组织、备份与恢复等功能。1.3 SQL特点我们还是先放⼤纲图,以便于⼤家了解。SQL特点综合统⼀⾼度⾮过程化⾯向集合的操作⽅式同⼀种语法结构提供两种使⽤⽅法语⾔简洁这些特点在这⾥不上官⽅术语,我⼤概描述主要内容,要想查看具体内容,找到了王珊⽼师的内容跟我们的很相似,点击1. 综合统⼀:SQL语⾔将数据定义语⾔(DDL)、数据操纵语⾔(DML)、数据控制语⾔(DCL)的功能于⼀体。2. ⾼度⾮过程化:SQL语⾔进⾏数据操作时,⽤户只需要描述做什么、不必指明怎么做。3. ⾯向集合的操作⽅式:采⽤集合操作⽅式,其操作对象、操作结果都是元组的集合。4. 同⼀种语法结构提供两种使⽤⽅式:SQL语⾔既是⾃含式语⾔(主要特点为嵌⼊到⾼级语⾔中执⾏,不能单独使⽤;),⼜是嵌⼊式语⾔(能嵌⼊到⾼级语⾔程序中的语⾔)。5. 语⾔简洁:sql语⾔ 真的好难 简洁明了,易学易⽤。1.4 SQL查询基本概念SQL查询的基本概念:基本表、视图、查询表、存储⽂件。SQL查询基本概念基本表视图查询表存储⽂件1. 基本表:数据库中独⽴存在的表称为基本表。(切记是独⽴存在)2. 视图:视图是指从⼀个或⼏个基本表(视图)中导出的表,是虚表,只存放视图的定义⽽不存放对应的数据。3. 查询表:查询表是指查询结果对应的表。4. 存储⽂件:存储⽂件是指数据库中存放关系的物理⽂件,其逻辑结构组成了关系数据库的内模式,其物理结构对⽤户是透明的。2、单表查询单表查询的⼤纲图,如下:2.1 sql三个基本结构的⼦句1. SELECT⼦句SELECT⼦句对应于关系代数中的投影运算,⽤来指定查询结果中所需要的属性或表达式。2. FROM⼦句FROM⼦句对应于关系代数中的,⽤来查询所涉及的表(基本表、视图、查询表)3. WHERE⼦句WHERE⼦句对应于关系代数中的选择运算,⽤来指定查询结果元组中所需要满⾜的选择条件。OK,兜兜转转说了那么多,也没有见着怎么去使⽤SQL语⾔,现在开始,不过在本章节全部都是单表查询下的,也就是只是⼀个表没有和其它表连接在⼀起,现在开始步⼊正题:2.2 投影运算为了⽅便理解记忆,我做出了⼤纲图,如下:消除重复元组sql查询中,默认不消除重复元组,要消除重复元组,可使⽤关键字DISTINCT。消除重复元组的作⽤效果是将多个重复的元组消除,例如:institute123456会计学院institute会计学院信息管理学院信息管理学院计算机学院计算机学院在使⽤关键字DISTINCT后,sql语句如下:SELECT DISTINCT instituteFROM Class使⽤⽅法也是如此在所要消除重复元组的表前加关键词DISTINCT,该语句产⽣的效果为:institute123会计学院信息管理学院计算机学院查询所有列查询所查表的所有列,使⽤的符号:*⽤法举例:SELECT *FROM Class给属性列表取别名主要的作⽤是在SELECT映射出来的表中的列取别名。⽅法1:可在列名后加AS别名⽅法2:直接在列名后加别名⽤法举例:1、SELECT classNO AS 班级编号 FROM Class2、SELECT classNO 班级编号FROM Class取别名前:classNO1234取别名后:班级编号1234班级编号取名是为了帮助我们直观地看出我们所查询的信息。查询经过计算的列SELECT可直接+列名,但也可以加相关函数以及计算⽅式,在计算列名后有默认显⽰值,也可取别名。⽤法:select lower(classname) 课程名from class其中,函数lower()表⽰将⼤写字母改为⼩写字母,查询结果⽰例:课程名12⼤学语⽂c语⾔程序设计未完待续,持续更新
2023年6月21日发(作者:)
【数据库系统原理与设计(第三版)万常选】第3章SQL查询语⾔SQL查询语⾔?写在前⾯:SQL查询语⾔对我们应该是⾮常重要的,以后在就业的时候,还是查询⽤的多,故⽽做出本章笔记,意在系统地理清学习思路,不⾄于思路以及知识点⼀团糟。⾸先对于任何章节,我们都要有个清晰的思路,以下是第三章SQL查询语⾔的⼤纲,⾸先列出来:1、SQL概述 由以上⼤纲图,我们可知,在SQL概述中我们主要由四⼤部分:SQL发展、SQL语⾔的组成、SQL特点、SQL查询基本概念。1.1 SQL发展?以下是SQL发展的过程(以下是SQL语⾔的名字):SQL-86SQL-92SQL-99SQL-2003主要是以上四个阶段,每个阶段不再详细叙述,感兴趣的可以查阅资料;值得⼀提的是:⽬前许多数据库⼚商都⽀持SQL-92的绝⼤多数标准,以及SQL-99和SQL-2003的部分标准,并对SQL语⾔进⾏了扩展(不同⼚家都有SQL语⾔的扩展,并有不同名字:Oracle产品将SQL称为PL/SQL,Sybase和Microsoft SQL Server 产品将SQL称为Transact-SQL。)1.2 SQL语⾔的组成SQL语⾔的组成数据定义语⾔ DDL数据操纵语⾔ DML数据控制语⾔ DCL其他这部分虽然⽼师没仔细讲解,但我认为这对我们了解SQL语⾔还是有很⼤的帮助。1. 数据定义语⾔(DDL):主要⽤于定义数据库的逻辑结构,包括数据库、基本表、视图、索引等;DDL包括三类语⾔,定义、修改、删除。2. 数据操纵语⾔(DML):主要是对数据库数据的检索和更新。3. 数据库控制语⾔(DCL):主要是对进⾏授权、⽤户维权(创建修改删除)、完整性规则定义、事务定义。4. 其他:嵌⼊语⾔和动态语⾔的定义、规定了SQL语⾔在宿主语⾔中使⽤的规则、扩展了SQL还包括数据库数据的重新组织、备份与恢复等功能。1.3 SQL特点我们还是先放⼤纲图,以便于⼤家了解。SQL特点综合统⼀⾼度⾮过程化⾯向集合的操作⽅式同⼀种语法结构提供两种使⽤⽅法语⾔简洁这些特点在这⾥不上官⽅术语,我⼤概描述主要内容,要想查看具体内容,找到了王珊⽼师的内容跟我们的很相似,点击1. 综合统⼀:SQL语⾔将数据定义语⾔(DDL)、数据操纵语⾔(DML)、数据控制语⾔(DCL)的功能于⼀体。2. ⾼度⾮过程化:SQL语⾔进⾏数据操作时,⽤户只需要描述做什么、不必指明怎么做。3. ⾯向集合的操作⽅式:采⽤集合操作⽅式,其操作对象、操作结果都是元组的集合。4. 同⼀种语法结构提供两种使⽤⽅式:SQL语⾔既是⾃含式语⾔(主要特点为嵌⼊到⾼级语⾔中执⾏,不能单独使⽤;),⼜是嵌⼊式语⾔(能嵌⼊到⾼级语⾔程序中的语⾔)。5. 语⾔简洁:sql语⾔ 真的好难 简洁明了,易学易⽤。1.4 SQL查询基本概念SQL查询的基本概念:基本表、视图、查询表、存储⽂件。SQL查询基本概念基本表视图查询表存储⽂件1. 基本表:数据库中独⽴存在的表称为基本表。(切记是独⽴存在)2. 视图:视图是指从⼀个或⼏个基本表(视图)中导出的表,是虚表,只存放视图的定义⽽不存放对应的数据。3. 查询表:查询表是指查询结果对应的表。4. 存储⽂件:存储⽂件是指数据库中存放关系的物理⽂件,其逻辑结构组成了关系数据库的内模式,其物理结构对⽤户是透明的。2、单表查询单表查询的⼤纲图,如下:2.1 sql三个基本结构的⼦句1. SELECT⼦句SELECT⼦句对应于关系代数中的投影运算,⽤来指定查询结果中所需要的属性或表达式。2. FROM⼦句FROM⼦句对应于关系代数中的,⽤来查询所涉及的表(基本表、视图、查询表)3. WHERE⼦句WHERE⼦句对应于关系代数中的选择运算,⽤来指定查询结果元组中所需要满⾜的选择条件。OK,兜兜转转说了那么多,也没有见着怎么去使⽤SQL语⾔,现在开始,不过在本章节全部都是单表查询下的,也就是只是⼀个表没有和其它表连接在⼀起,现在开始步⼊正题:2.2 投影运算为了⽅便理解记忆,我做出了⼤纲图,如下:消除重复元组sql查询中,默认不消除重复元组,要消除重复元组,可使⽤关键字DISTINCT。消除重复元组的作⽤效果是将多个重复的元组消除,例如:institute123456会计学院institute会计学院信息管理学院信息管理学院计算机学院计算机学院在使⽤关键字DISTINCT后,sql语句如下:SELECT DISTINCT instituteFROM Class使⽤⽅法也是如此在所要消除重复元组的表前加关键词DISTINCT,该语句产⽣的效果为:institute123会计学院信息管理学院计算机学院查询所有列查询所查表的所有列,使⽤的符号:*⽤法举例:SELECT *FROM Class给属性列表取别名主要的作⽤是在SELECT映射出来的表中的列取别名。⽅法1:可在列名后加AS别名⽅法2:直接在列名后加别名⽤法举例:1、SELECT classNO AS 班级编号 FROM Class2、SELECT classNO 班级编号FROM Class取别名前:classNO1234取别名后:班级编号1234班级编号取名是为了帮助我们直观地看出我们所查询的信息。查询经过计算的列SELECT可直接+列名,但也可以加相关函数以及计算⽅式,在计算列名后有默认显⽰值,也可取别名。⽤法:select lower(classname) 课程名from class其中,函数lower()表⽰将⼤写字母改为⼩写字母,查询结果⽰例:课程名12⼤学语⽂c语⾔程序设计未完待续,持续更新
发布评论