文章目录

  • [XJTUSE DATABASE]——第三章 关系数据库标准语言SQL
    • 一、SQL概述
    • 二、数据定义
      • 模式的定义与删除
        • 定义模式
        • 删除模式
      • 基本表的定义、删除与修改
        • 数据类型
        • 模式与表
        • 修改基本表
        • 删除基本表
      • 索引的建立与删除
        • 建立索引
        • 修改索引
        • 删除索引
      • 数据字典
    • 三、数据查询【重点】
      • 单表查询
        • 1、查询指定列
        • 2、查询全部列
        • 3、查询经过计算的值
        • 4、消除取值重复的行
        • 5、查询满足条件的元组
          • 1) 确定大小
          • 2) 确定范围
          • 3) 确定集合
          • 4) 字符匹配
          • 5) 涉及空值
          • 6) 多重条件查询
        • 6、ORDER BY子句
        • 7、聚集函数
        • 8、GROUP BY 字句
      • 连接查询
        • 1、等值连接
        • 2、自然连接
        • 3、自连接
        • 4、外连接
        • 5、多表连接
      • 嵌套查询
        • 不相关子查询与相关子查询
        • 带有IN谓词的子查询
        • 带有比较运算符的子查询
        • 带有ANY(SOME)或者ALL的子查询
        • 带有EXISTS谓词的子查询
      • 集合查询
      • 基于派生表的查询
      • 总结【重点】
        • 目标表达式格式
        • 聚集表达式格式
        • WHERE子句的条件表达式的可选格式
    • 四、数据更新
      • 插入数据
        • 插入元组
        • 插入子查询
      • 修改数据
        • 修改某一个元组的值
        • 修改多个元组的值
        • 带子查询的修改语句
      • 删除数据
        • 删除某一个元组的值
        • 删除多个元组的值
        • 带子查询的删除语句
    • 五、视图【了解】
      • 建立视图
      • 删除视图
        • 查询视图、更新视图
    • 六、嵌入式SQL
      • 嵌入式SQL的处理过程
      • 嵌入式SQL语句与主语言之间的通信
      • SQL语句类别
    • 七、书本习题与解答
    • 八、课后习题答案

[XJTUSE DATABASE]——第三章 关系数据库标准语言SQL

一、SQL概述

1️⃣ SQL(Structured Query Language)

结构化查询语言,是关系数据库的标准语言

SQL是一个通用的、功能极强的关系数据库语言

2️⃣ SQL的产生与发展

1972:IBM开始研究System R系统,配置了数据库语言SQUARE

1974:Boyce和Chamberlin将SQUARE修改为SEQUEL,后简称为SQL (Structured Query Language)

1970s末起:主流数据库厂商纷纷支持SQL

Oracle、DB2、Sybase

3️⃣ SQL的特点

综合统一

高度非过程化

面向集合的操作方式

一种语法结构多种使用方式

既是独立的语言,又是嵌入式语言

语言简洁易学

4️⃣ 基本表

SQL中一个关系就对应一个基本表

本身独立存在的表

一个(或多个)基本表对应一个存储文件

一个表可以带若干索引

5️⃣ 存储文件

逻辑结构组成了关系数据库的内模式

物理结构对用户是隐蔽的

二、数据定义

模式的定义与删除

定义模式

定义模式实际上定义了一个命名空间。

在这个空间中可以定义该模式包含的数据库对象例如基本表、视图、索引等。

在CREATE SCHEMA中可以接受CREATE TABLE,CREATE VIEW和GRANT子句。

CREATE SCHEMA <模式名> AUTHORIZATION <用户名>[<表定义子句>|<视图定义子句>|<授权定义子句>]

示例:为用户ZHANG创建了一个模式TEST,并且在其中定义一个表TAB1

CREATE SCHEMA TEST AUTHORIZATION ZHANG
CREATE TABLE TAB1 ( COL1 SMALLINT,COL2 INT,COL3 CHAR(20),COL4 NUMERIC(10,3),COL5 DECIMAL(5,2)  );

删除模式

DROP SCHEMA <模式名> <CASCADE|RESTRICT>

CASCADE(级联)

删除模式的同时把该模式中所有的数据库对象全部删除

RESTRICT(限制)

如果该模式中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行。

仅当该模式中没有任何下属的对象时才能执行。

示例:
DROP SCHEMA ZHANG CASCADE
删除模式ZHANG 同时该模式中定义的表TAB1也被删除

基本表的定义、删除与修改

定义基本表

CREATE TABLE <表名>
(<列名> <数据类型>[ <列级完整性约束条件> ]
,<列名> <数据类型>[ <列级完整性约束条件>]
…
[,<表级完整性约束条件> ] );

<表名>:所要定义的基本表的名字

<列名>:组成该表的各个属性(列)

<列级完整性约束条件>:涉及相应属性列的完整性约束条件

<表级完整性约束条件>:涉及一个或多个属性列的完整性约束条件

如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表级。

示例:学生—课程数据库

学生-课程模式 S-T

学生表:Student(Sno,Sname,Ssex,Sage,Sdept)

课程表:Course(Cno,Cname,Cpno,Ccredit)

学生选课表:SC(Sno,Cno,Grade)

1️⃣ 建立“学生”表Student。学号是主码,姓名取值唯一

CREATE TABLE Student(Sno CHAR(9) PRIMARY KEY,  /* 列级完整性约束条件,Sno是主码*/Sname CHAR(20) UNIQUE, /* Sname取唯一值约束 */Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20));

2️⃣ 建立课程表Course

CREATE TABLE Course(Cno CHAR(4) PRIMARY KEY,Cname CHAR(40) NOT NULL, /*列级完整性约束,Cname不能取空值*/Cpno CHAR(4),/*表示先修课*/Ccredit SMALLINTFOREIGN KEY (Cpno) REFERENCES Course(Cno) /*表级完整性约束,Cpno是外码,被参照表是Course, 被参照列是Cno*/);

3️⃣ 建立选课表SC

CREATE TABLE SC(Sno CHAR(9),Cno CHAR(4),Grade SMALLINT,PRIMARY KEY (Sno,Cno),/* 主码由两个属性构成,必须作为表级完整性进行定义*/FOREIGN KEY (Sno) REFERENCES Student(Sno),/* 表级完整性约束条件,Sno是外码,被参照表是Student */FOREIGN KEY (Cno)REFERENCES Course(Cno)/* 表级完整性约束条件, Cno是外码,被参照表是Course*/);

数据类型

SQL中域的概念用数据类型来实现

定义表的属性时需要指明其数据类型及长度

选用哪种数据类型

取值范围

要做哪些运算

数据类型 描述
CHARACTER(n) 字符/字符串。固定长度 n。
VARCHAR(n) 或 CHARACTER VARYING(n) 字符/字符串。可变长度。最大长度 n。
BINARY(n) 二进制串。固定长度 n。
BOOLEAN 存储 TRUE 或 FALSE 值
VARBINARY(n) 或 BINARY VARYING(n) 二进制串。可变长度。最大长度 n。
INTEGER§ 整数值(没有小数点)。精度 p。
SMALLINT 整数值(没有小数点)。精度 5。
INTEGER 整数值(没有小数点)。精度 10。
BIGINT 整数值(没有小数点)。精度 19。
DECIMAL(p,s) 精确数值,精度 p,小数点后位数 s。例如:decimal(5,2) 是一个小数点前有 3 位数,小数点后有 2 位数的数字。
NUMERIC(p,s) 精确数值,精度 p,小数点后位数 s。(与 DECIMAL 相同)
FLOAT§ 近似数值,尾数精度 p。一个采用以 10 为基数的指数计数法的浮点数。该类型的 size 参数由一个指定最小精度的单一数字组成。
REAL 近似数值,尾数精度 7。
FLOAT 近似数值,尾数精度 16。
DOUBLE PRECISION 近似数值,尾数精度 16。
DATE 存储年、月、日的值。
TIME 存储小时、分、秒的值。
TIMESTAMP 存储年、月、日、小时、分、秒的值。
INTERVAL 由一些整数字段组成,代表一段时间,取决于区间的类型

模式与表

每一个基本表都属于某一个模式

一个模式包含多个基本表

定义基本表所属模式

1️⃣ 方法一:在表名中明显地给出模式名

Create table"S-T".Student(......); /*模式名为 S-T*/
Create table "S-T".Cource(......);
Create table "S-T".SC(......);

2️⃣ 方法二:在创建模式语句中同时创建表

3️⃣ 方法三:设置所属的模式

创建基本表(其他数据库对象也一样)时,若没有指定模式,系统根据搜索路径来确定该对象所属的模式

关系数据库管理系统会使用模式列表中第一个存在的模式作为数据库对象的模式名

若搜索路径中的模式名都不存在,系统将给出错误

显示当前的搜索路径: SHOW search_path;

搜索路径的当前默认值是:$user, PUBLIC

数据库管理员用户可以设置搜索路径,然后定义基本表

SET search_path TO "S-T",PUBLIC;
Create table Student(......);

结果建立了S-T.Student基本表。关系数据库管理系统发现搜索路径中第一个模式名S-T,就把该模式作为基本表Student所属的模式。

修改基本表

ALTER TABLE <表名>[ ADD[COLUMN] <新列名> <数据类型> [ 完整性约束 ] ][ ADD <表级完整性约束>][ DROP [ COLUMN ] <列名> [CASCADE| RESTRICT] ][ DROP CONSTRAINT<完整性约束名>[ RESTRICT | CASCADE ] ]ALTER COLUMN <列名><数据类型> ] ;

<表名>是要修改的基本表

[XJTUSE DATABASE]——第三章 关系数据库标准语言SQL相关推荐

  1. 第三章关系数据库标准语言SQL

    第三章关系数据库标准语言SQL 3.1_SQL的特点 3.3_数据定义 3.3.1_基本表的定义.删除与修改 3.3.3_索引的建立与删除 3.4_数据查询 3.4.1_查询时消除重复行 3.4.2_ ...

  2. 数据库系统-第三章-关系数据库标准语言SQL

    内容来自2021春季学期<数据库系统>课程的PPT SQL概述 SQL(Structured Query Language)--结构化查询语言,是关系数据库的标准语言:是一个通用的.功能极 ...

  3. (数据库系统概论|王珊)第三章关系数据库标准语言SQL:习题

    文章目录 名词解释 简答题 应用题 名词解释 视图:视图是一个虚表,其本质就是一条SELECT语句,而查询结果被赋予了一个名字,也即视图名字.或者说视图本身不包含任何数据,它只包含映射到基表的一个查询 ...

  4. 第三章 关系数据库标准语言SQL

    3.1 SQL概述 3.1.1 SQL的产生与发展 1)SQL的概念 SQL语言是结构化查询语言,介于关系代数和关系演算之间的语言,是关系数据库的标准语言. 2)SQL的标准 3)SQL的应用.SQL ...

  5. 【数据库】第三章 关系数据库标准语言—SQL 笔记

    文章目录 一.结构化查询语言 二.数据库的结构 2.1 创建数据库 2.2 修改数据库 2.3 删除数据库 2.4 查看数据库信息 2.5 迁移用户数据库 三.数据类型 四.创建数据表 4.1 定义数 ...

  6. 第三章——关系数据库标准语言SQL——数据定义

    SQL概述 结构化查询语言(Structured Query Language,SQL)是关系数据库的标准语言,其功能不仅仅是查询,而是包括数据库模式创建.数据库数据的插入与修改.数据库安全性完整性定 ...

  7. 第三章——关系数据库标准语言SQL——数据查询

    数据查询 SQL提供了SELECT语句进行数据查询,该语句具有灵活的使用方式和丰富的功能.其一般格式为: SELECT [ALL|DISTINCT] <目标列表达式>[,<目标列表达 ...

  8. 王珊,萨师煊.数据库系统概论(第5版) 第三章.关系数据库标准语言SQL课后习题及总结

    一.试述SQL的特点. 综合统一.集数据定义语言(DDL).数据操纵语言(DML).数据控制语言(DCL)的功能于一体 高度非过程化.无需了解存取路径.存取路径的选择以及SQL的操作过程由系统自动完成 ...

  9. 数据库系统概论:第三章 关系数据库标准语言SQL

    3.1 SQL 概述 3.1.1 SQL的产生和发展 目前,没有一个数据库系统能够支持SQL标准的所有概念和特性.许多软件厂商对SQL基本命令集还进行了不同程度的扩充和修改,又可以支持标准以外的一些功 ...

最新文章

  1. Python入门100题 | 第061题
  2. OpenExpressApp对建模支持的初步计划
  3. 手把手教你用AI画梵高的《星空》
  4. xp的服务器系统怎么安装win7系统教程,怎么在xp系统下安装win7双系统教程
  5. 大数据_Hbase-API访问_Java操作Hbase_获取连接---Hbase工作笔记0011
  6. LNMP详解(十三)——Nginx子页面详解
  7. 想要导航提示页_如何优化网站导航呢?
  8. Spreadjs表格
  9. obs 推流编码在哪设置_直播工具OBS推流配置操作指引
  10. EXCEL表格F4绝对引用突然失效,无反应
  11. Gradle build daemon disappeared unexpectedly (it may have been killed or may hav
  12. redis持久化(persistent)
  13. 证券公司服务器系统错误,招商证券系统错误是怎么回事 招商证券服务器崩溃...
  14. 外汇期货市场的组织结构
  15. 合同管理数据库设计mysql_工程合同管理信息系统的数据设计理念
  16. 智能家居(Domoticz)怎么能少了天气预报
  17. Unity导入Mixamo动画,合并Mixamo动作
  18. 雷军带出来的软件,阿里奖励20万,全靠友商衬托,和wps同步普及
  19. 【科创人独家】PerfMa“寒泉子”李嘉鹏:成长和创业都要能人所不能,真强者何惧资本寒冬
  20. zdm各命令的功能和作用_利用ZDM菜单管线设计工具绘制管线步骤

热门文章

  1. PowerDesigner 画类图
  2. RC522读M1卡原理图及调试
  3. mongoDB-索引
  4. java 获取 sessionid_通过sessionid获取session方法
  5. MPB:中科院王光华组土壤和水体环境T4型细菌病毒g23基因多样性研究
  6. 串口通讯JustinIO.cs
  7. (一)【数学建模】层次分析法
  8. Linux性能优化-内存优化
  9. 在名为商品库的数据库中包含有商品规格表Content和商品特性表Property
  10. 精确度(你想知道的C语言 3.8)