- SQL 教程
- SQL - 首页
- SQL - 概述
- SQL - 关系数据库管理系统 (RDBMS) 概念
- SQL - 数据库
- SQL - 语法
- SQL - 数据类型
- SQL - 运算符
- SQL - 表达式
- SQL 数据库
- SQL - 创建数据库
- SQL - 删除数据库
- SQL - 选择数据库
- SQL - 重命名数据库
- SQL - 显示数据库
- SQL - 备份数据库
- SQL 表
- SQL - 创建表
- SQL - 显示表
- SQL - 重命名表
- SQL - 清空表
- SQL - 克隆表
- SQL - 临时表
- SQL - 修改表
- SQL - 删除表
- SQL - 删除表
- SQL - 约束
- SQL 查询
- SQL - 插入查询
- SQL - 选择查询
- SQL - SELECT INTO
- SQL - INSERT INTO SELECT
- SQL - 更新查询
- SQL - 删除查询
- SQL - 排序结果
- SQL 视图
- SQL - 创建视图
- SQL - 更新视图
- SQL - 删除视图
- SQL - 重命名视图
- SQL 运算符和子句
- SQL - WHERE 子句
- SQL - TOP 子句
- SQL - DISTINCT 子句
- SQL - ORDER BY 子句
- SQL - GROUP BY 子句
- SQL - HAVING 子句
- SQL - AND & OR
- SQL - 布尔 (BIT) 运算符
- SQL - LIKE 运算符
- SQL - IN 运算符
- SQL - ANY, ALL 运算符
- SQL - EXISTS 运算符
- SQL - CASE
- SQL - NOT 运算符
- SQL - 不等于
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN 运算符
- SQL - UNION 运算符
- SQL - UNION 与 UNION ALL
- SQL - INTERSECT 运算符
- SQL - EXCEPT 运算符
- SQL - 别名
- SQL 连接
- SQL - 使用连接
- SQL - 内连接
- SQL - 左连接
- SQL - 右连接
- SQL - 交叉连接
- SQL - 全连接
- SQL - 自连接
- SQL - 删除连接
- SQL - 更新连接
- SQL - 左连接与右连接
- SQL - UNION 与 JOIN
- SQL 密钥
- SQL - 唯一键
- SQL - 主键
- SQL - 外键
- SQL - 组合键
- SQL - 替代键
- SQL 索引
- SQL - 索引
- SQL - 创建索引
- SQL - 删除索引
- SQL - 显示索引
- SQL - 唯一索引
- SQL - 聚簇索引
- SQL - 非聚簇索引
- 高级 SQL
- SQL - 通配符
- SQL - 注释
- SQL - 注入
- SQL - 托管
- SQL - MIN & MAX
- SQL - NULL 函数
- SQL - CHECK 约束
- SQL - DEFAULT 约束
- SQL - 存储过程
- SQL - NULL 值
- SQL - 事务
- SQL - 子查询
- SQL - 处理重复项
- SQL - 使用序列
- SQL - 自动递增
- SQL - 日期和时间
- SQL - 游标
- SQL - 通用表表达式
- SQL - GROUP BY 与 ORDER BY
- SQL - IN 与 EXISTS
- SQL - 数据库调优
- SQL 函数参考
- SQL - 日期函数
- SQL - 字符串函数
- SQL - 聚合函数
- SQL - 数值函数
- SQL - 文本和图像函数
- SQL - 统计函数
- SQL - 逻辑函数
- SQL - 游标函数
- SQL - JSON 函数
- SQL - 转换函数
- SQL - 数据类型函数
- SQL 有用资源
- SQL - 问答
- SQL - 快速指南
- SQL - 有用函数
- SQL - 有用资源
- SQL - 讨论
SQL - 关系数据库管理系统 (RDBMS) 概念
什么是 RDBMS?
RDBMS 代表关系数据库管理系统。RDBMS 是 SQL 的基础,也是所有现代数据库系统(如 MS SQL Server、IBM DB2、Oracle、MySQL 和 Microsoft Access)的基础。
关系数据库管理系统 (RDBMS) 是一种基于 E. F. Codd 在 1970 年提出的关系模型的数据库管理系统 (DBMS)。
什么是表?
RDBMS 中的数据存储在称为表的数据库对象中。该表基本上是相关数据条目的集合,它由许多列和行组成。
记住,表是关系数据库中最常见和最简单的形式的数据存储。以下是存储客户 ID、姓名、年龄、薪水、城市和国家的 CUSTOMERS 表的示例:
ID | 姓名 | 年龄 | 薪水 | 城市 | 国家 |
---|---|---|---|---|---|
1 | Ramesh | 32 | 2000.00 | 海德拉巴 | 印度 |
2 | Mukesh | 40 | 5000.00 | 纽约 | 美国 |
3 | Sumit | 45 | 4500.00 | 马斯喀特 | 阿曼 |
4 | Kaushik | 25 | 2500.00 | 加尔各答 | 印度 |
5 | Hardik | 29 | 3500.00 | 博帕尔 | 印度 |
6 | Komal | 38 | 3500.00 | 萨哈兰普尔 | 印度 |
7 | Ayush | 25 | 3500.00 | 德里 | 印度 |
8 | Javed | 29 | 3700.00 | 德里 | 印度 |
什么是字段?
每个表都被分解成称为字段的较小实体。字段是表中的一列,旨在维护有关表中每条记录的特定信息。
例如,我们的 CUSTOMERS 表包含 ID、姓名、年龄、薪水、城市和国家等不同的字段。
什么是记录或行?
记录也称为数据行,是表中存在的每个单独条目。例如,上面的 CUSTOMERS 表中有 7 条记录。以下是 CUSTOMERS 表中的一行数据或记录:
ID | 姓名 | 年龄 | 薪水 | 城市 | 国家 |
---|---|---|---|---|---|
1 | Ramesh | 32 | 2000.00 | 海德拉巴 | 印度 |
记录是表中的水平实体。
什么是列?
列是表中的垂直实体,包含与表中特定字段相关的所有信息。
例如,我们的 CUSTOMERS 表具有不同的列来表示 ID、姓名、年龄、薪水、城市和国家。
什么是 NULL 值?
表中的 NULL 值是指字段中看起来为空的值,这意味着具有 NULL 值的字段是没有值的字段。
重要的是要理解,NULL 值不同于零值或包含空格的字段。具有 NULL 值的字段是在记录创建过程中留空的字段。下表有三条记录,第一条记录的薪水为 NULL 值,第二条记录的薪水为零值。
ID | 姓名 | 年龄 | 薪水 | 城市 | 国家 |
---|---|---|---|---|---|
1 | Ramesh | 32 | 海德拉巴 | 印度 | |
2 | Mukesh | 40 | 00.00 | 纽约 | 美国 |
3 | Sumit | 45 | 4500.00 | 马斯喀特 | 阿曼 |
SQL 约束
约束是对表上数据列强制执行的规则。这些用于限制可以进入表的数据库类型。这确保了数据库中数据的准确性和可靠性。
约束可以是列级或表级。列级约束仅应用于一列,而表级约束应用于整个表。
以下是 SQL 中一些最常用的约束:
序号 | 约束 |
---|---|
1 | NOT NULL 约束 确保列不能具有 NULL 值。 |
2 | DEFAULT 约束 在未指定任何值时,为列提供默认值。 |
3 | 唯一键 确保列中的所有值都不同。 |
4 | 主键 唯一标识数据库表中的每一行/记录。 |
5 | 外键 唯一标识任何其他数据库表中的每一行/记录。 |
6 | CHECK 约束 确保列中的所有值都满足某些条件。 |
7 | 索引约束 用于非常快速地创建和检索数据库中的数据。 |
数据完整性
每个 RDBMS 都存在以下类别的数据完整性:
实体完整性 - 确保表中没有重复行。
域完整性 - 通过限制值的类型、格式或范围来强制执行给定列的有效条目。
参照完整性 - 不能删除其他记录使用的行。
用户定义的完整性 - 强制执行不属于实体、域或参照完整性的某些特定业务规则。
数据库规范化
数据库规范化是有效组织数据库中数据的过程。规范化过程有两个原因:
消除冗余数据,例如,将相同的数据存储在多个表中。
确保数据依赖性有意义。
这两个原因都是值得的目标,因为它们减少了数据库占用的空间并确保数据以逻辑方式存储。规范化包括一系列指导原则,可帮助您创建良好的数据库结构。
规范化指导原则分为范式;将范式视为数据库结构的格式或布局方式。范式的目标是组织数据库结构,使其符合第一范式、第二范式和最终第三范式的规则。
您可以进一步将其扩展到第四范式、第五范式等等,但通常情况下,第三范式对于普通的数据库应用程序已经足够了。