【数据库系统原理与设计(第三版)万常选】第3章 SQL查询语言

SQL查询语言?

写在前面:SQL查询语言对我们应该是非常重要的,以后在就业的时候,还是查询用的多,故而做出本章笔记,意在系统地理清学习思路,不至于思路以及知识点一团糟。
首先对于任何章节,我们都要有个清晰的思路,以下是第三章SQL查询语言的大纲,首先列出来:

在这里插入图片描述

1、SQL概述

 由以上大纲图,我们可知,在SQL概述中我们主要由四大部分:SQL发展、SQL语言的组成、SQL特点、SQL查询基本概念。
1.1 SQL发展?

以下是SQL发展的过程(以下是SQL语言的名字):

SQL-86
SQL-92
SQL-99
SQL-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
  • 消除重复元组的作用效果是将多个重复的元组消除,例如:
institute
1会计学院
2会计学院
3信息管理学院
4信息管理学院
5计算机学院
6计算机学院

在使用关键字DISTINCT后,sql语句如下:

SELECT DISTINCT institute
FROM Class

使用方法也是如此在所要消除重复元组的表前加关键词DISTINCT,该语句产生的效果为:

institute
1会计学院
2信息管理学院
3计算机学院
查询所有列
  • 查询所查表的所有列,使用的符号:*
  • 用法举例:
SELECT *
FROM Class
给属性列表取别名
  • 主要的作用是在SELECT映射出来的表中的取别名。
  • 方法1:可在列名后加AS别名
  • 方法2:直接在列名后加别名
  • 用法举例:
1、SELECT classNO AS 班级编号
 FROM Class
2、SELECT classNO 班级编号
FROM Class

取别名前:

classNO
13
24

取别名后:

班级编号
13
24

取名是为了帮助我们直观地看出我们所查询的信息。

查询经过计算的列
  • SELECT可直接+列名,但也可以加相关函数以及计算方式,在计算列名后有默认显示值,也可取别名。
  • 用法:
select lower(classname) 课程名
from class

其中,函数lower()表示将大写字母改为小写字母,查询结果示例:

课程名
1大学语文
2c语言程序设计

未完待续,持续更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暮起

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值