SQL 等于

2024年06月19日 SQL 等于 极客笔记

SQL 等于

结构化查询语言(Structured Query Language,简称 SQL)是一种专门用来管理关系数据库的标准化语言。SQL 是一种被广泛使用的数据库查询语言,可以帮助用户与数据库进行交互,从中检索数据、更新数据、删除数据以及执行其他操作。

SQL 起源与发展

SQL 最初由 IBM 的工程师 Donald D. Chamberlin 和 Raymond F. Boyce 在 1970 年代创建。最初,SQL 被称为 SEQUEL(Structured English Query Language),后来更名为 SQL。1979 年,美国国家标准局(ANSI)发布了第一个 SQL 标准,该标准在 1986 年由国际标准组织 ISO 批准,随后成为 SQL 的国际标准。

SQL 在数据库管理系统中的应用逐渐得到广泛认可。目前,几乎所有主流的关系数据库管理系统(如 MySQL、Oracle、SQL Server、PostgreSQL 等)都支持 SQL 语言。

SQL 基本概念

SQL 主要用于执行以下类型的操作:

  • 数据查询(Query):从数据库中检索数据。
  • 数据更新(Update):更新数据库中的数据。
  • 数据插入(Insert):向数据库中新增数据。
  • 数据删除(Delete):从数据库中删除数据。

SQL 语言具有以下几个主要方面:

  1. 数据定义语言(DDL,Data Definition Language):包括对数据库和表的创建、删除、修改等操作。
  2. 数据操纵语言(DML,Data Manipulation Language):用于对数据库中的数据进行增删改查操作。
  3. 数据查询语言(DQL,Data Query Language):用于执行查询操作。
  4. 数据控制语言(DCL,Data Control Language):用于控制数据库访问权限。

以下是 SQL 的一些常用命令和关键字:

  • SELECT:用于从数据库中检索数据。
  • UPDATE:用于更新数据库中的数据。
  • INSERT INTO:用于向数据库中插入新数据。
  • DELETE:用于从数据库中删除数据。
  • CREATE TABLE:用于创建新的数据库表。
  • ALTER TABLE:用于修改数据库表的结构。
  • DROP TABLE:用于删除数据库表。

SQL SELECT 命令

SELECT 命令是 SQL 中最常用的命令之一,用于从数据库中检索数据。SELECT 命令的基本语法如下:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

其中:

  • column1, column2, ... 表示要检索的列,可以是表中的所有列或者是具体指定的列。
  • table_name 是要从中检索数据的表的名称。
  • condition 是可选的查询条件,用于筛选满足特定条件的行。

以下是一个简单的 SQL 查询示例,假设有一个名为 users 的表,包含 idnameage 三个列,我们要检索所有用户的信息:

SELECT *
FROM users;

上述示例中的 * 表示检索所有列,如果只想检索特定列,可以替换为列名。

SQL WHERE 子句

WHERE 子句用于在 SELECT 命令中添加条件,以便过滤特定的行。以下是一个带有 WHERE 子句的示例,假设我们要检索年龄大于 30 岁的用户信息:

SELECT *
FROM users
WHERE age > 30;

WHERE 子句还支持多个条件的组合,可以使用逻辑运算符 ANDORNOT 连接多个条件。例如,检索年龄大于 30 岁且名字以字母 A 开头的用户信息:

SELECT *
FROM users
WHERE age > 30 AND name LIKE 'A%';

SQL UPDATE 命令

UPDATE 命令用于更新数据库中的数据。其基本语法如下:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;

其中:

  • table_name 是要更新的表的名称。
  • column1 = value1, column2 = value2, ... 表示要更新的列和对应的值。
  • condition 是筛选要更新行的条件。

假设我们需要将用户 id 为 1 的年龄更新为 35 岁:

UPDATE users
SET age = 35
WHERE id = 1;

SQL INSERT INTO 命令

INSERT INTO 命令用于向数据库中插入新数据。其基本语法如下:

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);

其中:

  • table_name 是要插入数据的表的名称。
  • (column1, column2, ...) 表示要插入数据的列。
  • VALUES (value1, value2, ...) 是要插入的值。

举个示例,向名为 users 的表中插入一条新用户信息:

INSERT INTO users (name, age)
VALUES ('Alice', 25);

SQL DELETE 命令

DELETE 命令用于从数据库中删除数据。其基本语法如下:

DELETE FROM table_name
WHERE condition;

其中:

  • table_name 是要删除数据的表的名称。
  • condition 是筛选要删除行的条件。

假设我们需要删除名为 Alice 的用户信息:

DELETE FROM users
WHERE name = 'Alice';

SQL CREATE TABLE 命令

CREATE TABLE 命令用于创建新的数据库表。其基本语法如下:

CREATE TABLE table_name (
    column1 datatype,
    column2 datatype,
    ...
);

其中:

  • table_name 是要创建的表的名称。
  • column1, column2, ... 是表的列及其数据类型。

例如,创建一个名为 products 的表,包含 idnameprice 三个列:

CREATE TABLE products (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    price DECIMAL(10, 2)
);

SQL ALTER TABLE 命令

ALTER TABLE 命令用于修改数据库表的结构。其常见用法包括添加新列、修改列数据类型等。以下是一个简单的示例,向名为 users 的表中添加一个新列 email

ALTER TABLE users
ADD COLUMN email VARCHAR(50);

SQL DROP TABLE 命令

DROP TABLE 命令用于删除数据库中的表。一旦执行该命令,该表及其所有数据将被永久删除。以下是一个示例,删除名为 products 的表:

DROP TABLE products;

SQL 数据库连接

在 SQL 中,可以使用 JOIN 命令连接多个表,从而实现跨表查询。常见的连接方式包括:

  • INNER JOIN:返回满足连接条件的两个表中的记录。
  • LEFT JOIN:返回左表中的所有记录以及右表中匹配的记录。
  • RIGHT JOIN:返回右表中的所有记录以及左表中匹配的记录。
  • FULL JOIN:返回两个表中的所有记录,无论是否匹配。

以下是一个简单的示例,假设有两个表 orderscustomers,我们需要查询客户和订单信息:

SELECT customers.name, orders.product
FROM customers
INNER JOIN orders ON customers.id = orders.customer_id;

SQL 子查询

在 SQL 中,子查询指的是在另一个查询中嵌套的查询。子查询可以用于在查询结果中进行进一步的筛选、排序或者计算。以下是一个示例,假设我们需要查询年龄最大的用户信息:

SELECT *
FROM users
WHERE age = (
    SELECT MAX(age)
    FROM users
);

子查询可以嵌套多层,以实现复杂的数据处理需求。

SQL 聚合函数

SQL 提供了一些用于对数据进行聚合计算的内置函数,常见的聚合函数包括:

  • COUNT():计算匹配条件的行数。
  • SUM():计算匹配条件的列的总和。
  • AVG():计算匹配条件的列的平均值。
  • MAX():找出匹配条件的列中的最大值。
  • MIN():找出匹配条件的列中的最小值。

以下是一个使用聚合函数的示例,计算 users 表中的总年龄和平均年龄:

SELECT SUM(age) AS total_age, AVG(age) AS avg_age
FROM users;

SQL 索引

数据库索引是一种数据结构,可以提高数据库查询的性能。通过在数据库表上创建索引,可以加快查询过程,减少数据扫描的开销。通常,在经常用于查询的列上创建索引会更加有效。

在 SQL 中,可以使用 CREATE INDEX 命令来创建索引,如下所示:

CREATE INDEX index_name
ON table_name (column_name);

其中:

  • index_name 是索引的名称。
  • table_name 是要创建索引的表的名称。
  • column_name 是要创建索引的列的名称。

创建索引后,查询时可以根据索引进行快速搜索,提升查询性能。

总结

SQL 是一种强大的数据库查询语言,被广泛应用于关系数据库管理系统中。通过学习和掌握 SQL,可以更高效地与数据库进行交互,执行各种数据操作。本文介绍了 SQL 的基本概念、常用命令以及一些高级功能,希望能为读者提供对 SQL 的全面了解和运用。

本文链接:http://so.lmcjl.com/news/6885/

展开阅读全文