【Oracle 进阶之路】SQL 简介

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.数据完整性:通过定义主键、外键、唯一性约束等来确保数据的完整性和一致性。

  • 7
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

叫我OldFe

一分也是鼓励!

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

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

打赏作者

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

抵扣说明:

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

余额充值