SQL 的历史
E. F. Codd 博士于 1970 年 6 月在计算机机械协会 (ACM) 期刊 Communications of the ACM 上发表了论文“A Relational Model of Data for Large Shared Data Banks”。Codd 模型现在被接受为关系数据库管理系统 (RDBMS) 的最终模型。该语言,结构化英语查询语言(SEQUEL)由IBM公司开发,使用Codd的模型。SEQUEL 后来变成了 SQL(仍然发音为“sequel”)。1979 年,Relational Software, Inc.(现在的 Oracle)推出了第一个商用的 SQL 实现。今天,SQL被接受为标准的RDBMS语言。
SQL 标准
SQL 的优势为所有类型的用户提供了好处,包括应用程序程序员、数据库管理员、经理和最终用户。从技术上讲,SQL是一种数据子语言。SQL的目的是为关系数据库(如Oracle数据库)提供接口,所有SQL语句都是对数据库的指令。在这一点上,SQL不同于C和BASIC等通用编程语言。SQL 的功能包括:
- 它将数据集作为组而不是单个单元进行处理。
- 它提供对数据的自动导航。
- 它使用单独复杂而有力的陈述,因此是独立的。流控制语句最初不是 SQL的一部分,但它们可以在最近接受的 SQL 的可选部分 ISO/IEC 9075-5:1996中找到。流控制语句通常称为“持久存储模块”(PSM),Oracle SQL 的 PL/SQL 扩展类似于 PSM。
SQL 允许您在逻辑级别处理数据。只有当您想要操作数据时,才需要关注实现细节。例如,要从表中检索一组行,您需要定义一个用于筛选行的条件。所有满足条件的行都在一个步骤中检索,并且可以作为一个单元传递给用户、另一个 SQL 语句或应用程序。您无需逐一处理这些行,也不必担心它们如何物理存储或检索。所有 SQL 语句都使用优化器,优化器是 Oracle 数据库的一部分,用于确定访问指定数据的最有效方法。Oracle 还提供了一些技术,您可以使用这些技术来使优化器更好地执行其工作。
SQL 为各种任务提供语句,包括:
- 查询数据
- 在表中插入、更新和删除行
- 创建、替换、更改和删除对象
- 控制对数据库及其对象的访问
- 保证数据库的一致性和完整性
SQL 将上述所有任务统一为一种一致的语言。
所有关系数据库的通用语言
所有主要的关系数据库管理系统都支持 SQL,因此您可以将使用 SQL 获得的所有技能从一个数据库转移到另一个数据库。此外,所有用 SQL 编写的程序都是可移植的。它们通常可以从一个数据库移动到另一个数据库,只需进行很少的修改。
概述及使用
SQL(Structured Query Language)是一种用于管理和操作关系型数据库的标准语言。它允许用户通过简单的语句执行各种数据库操作,包括查询、插入、更新和删除数据。
SQL 的主要特点和功能包括:
1.数据查询:使用 SELECT
语句从数据库中检索数据。可以通过指定条件、排序、分组等操作来定制查询结果。
SELECT column1, column2
FROM table_name
WHERE condition;
2.数据插入:使用 INSERT INTO
语句向数据库表中插入新记录。
INSERT INTO table_name (column1, column2)
VALUES (value1, value2);
3.数据更新:使用 UPDATE
语句修改表中的现有记录。
UPDATE table_name
SET column1 = value1, column2 = value2
WHERE condition;
4.数据删除:使用 DELETE
语句从表中删除记录。
DELETE FROM table_name
WHERE condition;
5.表结构管理:包括创建 (CREATE TABLE
)、修改 (ALTER TABLE
) 和删除 (DROP TABLE
) 表及其结构。
CREATE TABLE table_name (column1 datatype,column2 datatype,...
);
6.事务管理:SQL 支持事务控制,可以确保多个操作要么全部成功要么全部失败,保持数据的一致性。常用的事务控制语句有 BEGIN TRANSACTION、COMMIT 和 ROLLBACK
。
-- 开始事务
BEGIN TRANSACTION;-- 执行插入操作
INSERT INTO accounts (account_id, balance) VALUES (1, 1000);-- 执行更新操作
UPDATE accounts SET balance = balance - 200 WHERE account_id = 1;-- 可能的操作,比如其他插入或更新-- 提交事务,保存更改
COMMIT;-- 如果发生错误,回滚事务以撤销更改
-- ROLLBACK;
7.索引和视图:可以创建索引 (CREATE INDEX
) 以提高查询性能,创建视图 (CREATE VIEW
) 以简化复杂的查询操作。
-- 创建一个索引以加速对 "last_name" 列的查询
CREATE INDEX idx_last_name ON employees (last_name);
-- 创建一个视图,显示所有员工的姓名和职位
CREATE VIEW employee_view AS
SELECT first_name, last_name, job_title
FROM employees;
8.数据完整性:通过定义主键、外键、唯一性约束等来确保数据的完整性和一致性。