You are on page 1of 35

Machine Translated by Google

结构化查询语言
(SQL)

‧ 数据模型基本构建块 ‧ 模型简

数据库管理–
COMP3140
于比利

1
Machine Translated by Google

该怎么办?

‧ 管理 ‧ 运营

– 数据操作
– 数据查询

2
Machine Translated by Google

表 7.1 ‑ SQL 数据定义命令

3
Machine Translated by Google

表 7.2 ‑
SQL数据操作
命令

4
Machine Translated by Google

图 7.1 ‑ 数据库模型

5
Machine Translated by Google

设置

6
Machine Translated by Google

创建数据库

‧ 创建数据库结构
– RDBMS 创建用于保存数据库的物理文件

– 一种 RDBMS 与另一种 RDBMS 之间存在差异

‧身份验证是 DBMS 用于验证只有注册用户才能


访问数据库的过程

– 创建表时需要
– 用户应使用数据库管理员创建的用户 ID 和密码登
录 RDBMS
7
Machine Translated by Google

数据库架构

‧ 彼此相关的数据库对象逻辑组(例如表和索引)

‧ 命令:
– 创建模式授权{creator};

– 很少直接使用,
因为命令通常是可选的

8
Machine Translated by Google

表 7.4 ‑ 常见 SQL 数据类型

9
Machine Translated by Google

创建表结构

‧ 每列(属性)
定义使用一行 ‧ 使用空格排列属性
特征和约束

‧ 表名和属性名全部大写 ‧ 建表命令序列特点:

– NOT NULL 规范确保数据输入


– 独特的规范避免重复值
‧ 括号内的表定义 ‧ RDBMS 自动强制执行
外键的引用完整性。

10
Machine Translated by Google

SQL 约束

11
Machine Translated by Google

SQL索引

‧ 声明主键时,
DBMS 自动创建唯一索引

‧ CREATE INDEX命令可以是
用于根据任何选定的属性创建索引

‧ UNIQUE限定符可防止值
之前已经使用过
‧ 复合索引可防止数据重复

‧ 要删除索引,
请使用DROP INDEX
12
命令
Machine Translated by Google

视频和练习

https://www.youtube.com/watch?v=kE70n_gftC0
(0:54开始)

关系怎么样?? ‧ https://
mariadb.com/kb/en/mariadb/foreign‑keys/

13
Machine Translated by Google

运营
‧ 基本

14
Machine Translated by Google

数据操作命令

INSERT:
向表中插入数据的命令

‧ 语法‑ INSERT INTO 表名VALUES(); ‧ 用于添加


带有NULL 和NOT NULL 的表行
属性

COMMIT:
保存更改的命令

‧ 语法‑ COMMIT [WORK]; ‧


确保数据库更新完整性

15
Machine Translated by Google

数据操作命令

SELECT:
列出内容的命令

‧ 语法‑ SELECT列列表FROM表名;
‧通配符(*):
替换其他字符/命令

UPDATE:
修改数据的命令

‧ 语法‑ UPDATE表名SET列名= 表达式 [,列名=表达式]


[WHERE条件列表];

16
Machine Translated by Google

数据操作命令

WHERE 条件

‧ 指定要选择的行
ROLLBACK:
恢复数据库的命令

‧ 语法‑ROLLBACK;
‧ 撤消自上次 COMMIT 命令以来所做的更改
DELETE:
删除命令

‧ 语法‑ DELETE FROM表名‧ [WHERE


条件列表];

17 号
Machine Translated by Google

使用 a 插入表行
选择子查询
‧ 句法
– INSERT INTO表名SELECT列列表FROM表

‧ 用于使用另一个表作为源添加多行

‧ SELECT 命令 ‑ 充当子查询
并首先执行
–子查询:
嵌入/嵌套在另一个查询中的查询
18
Machine Translated by Google

视频和练习

https://www.youtube.com/watch?v=NH67NECAnX8
(0:30开始)

关系怎么样?? ‧ https://
mariadb.com/kb/en/mariadb/foreign‑keys/

19
Machine Translated by Google

使用选择行
有条件限制

‧ 可以通过对要包含的行进行限制来选择部分表内容

‧ 语法允许指定哪些行
选择:
– 选择列列表
– 来自表列表
– [WHERE条件列表];
‧ WHERE 子句添加了条件限制
到 SELECT 语句

20
Machine Translated by Google

运营商

21
Machine Translated by Google

表 7.6 ‑ 比较运算符

‧ 增加了有条件的限制
选定的角色属性和日期

22
Machine Translated by Google

比较运算符:
计算列和列
别名 ‧
SQL 接受计算列中的任
何有效表达式/公式

‧别名:
在任何 SQL 语句中为列或表指定的替
代名称,以提⾼可读性

‧ 计算列、
别名和日期算术可以在单个
查询中使用
23
Machine Translated by Google

算术运算符
‧优先规则:
建立
计算完成的顺序 ‧ 按以下顺序执行:

– 括号内的运算
– 电力操作
– 乘法和除法
– 加法和减法

24
Machine Translated by Google

表 7.7 ‑ 算术运算符

25
Machine Translated by Google

逻辑运算符:
AND、
OR 和 NOT

‧ OR和AND:
用于链接WHERE 或中的多
个条件表达式
HAVING 子句
– OR仅需要条件之一
表达式为真
– AND要求所有条件表达式都为真

‧ NOT用于否定条件表达式的结果

‧布尔代数专用于逻辑运算
26
Machine Translated by Google

图 7.12 ‑ 选定的产品表属性:
逻辑
OR

27
Machine Translated by Google

图 7.13 ‑ 所选产品表属性:
逻辑
AND

28
Machine Translated by Google

图 7.14 ‑ 所选产品表属性:
逻辑
AND 和 OR

29
Machine Translated by Google

特殊操作员

之间
‧ 检查属性值是否在范围内
一片空白
‧ 检查属性值是否为空

喜欢
‧ 检查属性值是否与给定的字符串模式匹配

‧ 检查属性值是否与值列表中的任何值匹配
存在
‧ 检查子查询是否返回任何行

30
Machine Translated by Google

公用事业

31
Machine Translated by Google

附加 SELECT 查询
关键字 ‧ 逻
辑运算符在查询环境中运行良好

‧ SQL 提供了有用的函数:
‑ 数数
– 查找最小值和最大值
– 计算平均值
‧ SQL 允许用户限制对条目的查询:

– 没有重复项
– 可以将其重复项分组
32
Machine Translated by Google

订购列表

‧当列出顺序很重要时, ORDER BY子句很有用

‧ 语法‑ SELECT列列表
从表列表
[WHERE条件列表]
[按列列表排序[ASC |降序]];
‧ Cascading order 序列:
多级有序序列

– 通过在 ORDER BY 子句后列出几个属性来创建

33
Machine Translated by Google

列出独特的价值
‧ DISTINCT子句:
生成值列表
是独一无二的
‧ 语法 ‑ SELECT DISTINCT列列表
FROM表列表;
‧ 空值的放置不会影响列表内容

– 在 Oracle 中可以将空值放在列表顶部

34
Machine Translated by Google

表 7.8 ‑ 一些基本的 SQL 聚合函数

35

You might also like