前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL命令大全,每条命令均有示例,小白看了也可成神!

SQL命令大全,每条命令均有示例,小白看了也可成神!

原创
作者头像
网络技术联盟站
修改2021-11-05 18:00:08
3.6K0
修改2021-11-05 18:00:08
举报

大家好,这里是网络技术干货圈,今天给大家带来的是SQL命令列表,每条命令都会带有示例,对于sql初学者甚至小白来说无疑是个福音!

SELECT

SELECT 可能是最常用的 SQL 语句,每次使用 SQL 查询数据时,几乎都会用到它。

例如,在下面的代码中,从customers表中查询name字段。

代码语言:txt
复制
SELECT name
FROM customers;

SELECT *

使用*代表查询表中的所有列

代码语言:txt
复制
SELECT * FROM customers;

SELECT DISTINCT

SELECT DISTINCT 只返回不同的数据,意思就是如果有重复的记录,只会返回重复记录中的一条记录。

代码语言:txt
复制
SELECT DISTINCT name
FROM customers;

SELECT INTO

SELECT INTO 将指定的数据从一个表复制到另一个表中。

代码语言:txt
复制
SELECT * INTO customers
FROM customers_bakcup;

SELECT TOP

SELECT TOP 仅返回表中的最高x数字或百分比。

下面的代码将返回customers表中的前 50 个结果:

代码语言:txt
复制
SELECT TOP 50 * FROM customers;

下面的代码将返回customers表的前 50%

代码语言:txt
复制
SELECT TOP 50 PERCENT * FROM customers;

AS

as重命名就是给相关列起个别名,例如,在下面的代码中,我们将name列重命名为first_name:

代码语言:txt
复制
SELECT name AS first_name
FROM customers;

FROM

FROM 指定查询的来源表

代码语言:txt
复制
SELECT name
FROM customers;

WHERE

过滤查询,返回匹配条件的结果,一般条件将配合=,>,<,>=,<=等一起使用

代码语言:txt
复制
SELECT name
FROM customers
WHERE name = ‘Bob’;

AND

AND 在单个查询中组合两个或多个条件,必须满足所有条件才能返回结果。

代码语言:txt
复制
SELECT name
FROM customers
WHERE name = ‘Bob’ AND age = 55;

OR

OR 在单个查询中组合两个或多个条件,只要满足其中一个条件就能返回结果。

代码语言:txt
复制
SELECT name
FROM customers
WHERE name = ‘Bob’ OR age = 55;

BETWEEN

BETWEEN 过滤指定范围内的值

代码语言:txt
复制
SELECT name
FROM customers
WHERE age BETWEEN 45 AND 55;

LIKE

like用于模糊查询,在下面的示例代码中,将返回名称中包含字符 Bob 的数据

代码语言:txt
复制
SELECT name
FROM customers
WHERE name LIKE ‘%Bob%’;

LIKE 的其他运算符:

  • %x — 将选择所有以 x 开头的值
  • %x% — 将选择包含 x 的所有值
  • x% — 将选择所有以 x 结尾的值
  • x%y — 将选择所有以 x 开头并以 y 结尾的值
  • _x% — 将选择所有具有 x 作为第二个字符的值
  • x_%— 将选择所有以 x 开头且长度至少为两个字符的值,您可以添加额外的 _ 字符来扩展长度要求,即x___%

IN

IN 允许我们在使用 WHERE 命令时指定要选择的多个值。

代码语言:txt
复制
SELECT name
FROM customers
WHERE name IN (‘Bob’, ‘Fred’, ‘Harry’);

IS NULL

IS NULL 将仅返回具有 NULL 值的行。

代码语言:txt
复制
SELECT name
FROM customers
WHERE name IS NULL;

IS NOT NULL

IS NOT NULL 则相反——它将只返回没有NULL 值的行。

代码语言:txt
复制
SELECT name
FROM customers
WHERE name IS NOT NULL;

CREATE

CREATE 可用于创建数据库、表、索引或视图。

CREATE DATABASE

CREATE DATABASE 创建一个新数据库。

代码语言:txt
复制
CREATE DATABASE dataquestDB;

CREATE TABLE

CREATE TABLE 在数据库中创建一个新表。

代码语言:txt
复制
CREATE TABLE customers (
    customer_id int,
    name varchar(255),
    age int
);

CREATE INDEX

CREATE INDEX 为表生成索引,索引用于更快地从数据库中检索数据。

代码语言:txt
复制
CREATE INDEX idx_name
ON customers (name);

CREATE VIEW

CREATE VIEW 根据 SQL 语句的结果集创建虚拟表,一个视图就像一张普通的表(可以像一张表一样查询),但它并 没有保存为数据库中的永久表。

代码语言:txt
复制
CREATE VIEW [Bob Customers] AS
SELECT name, age
FROM customers
WHERE name = ‘Bob’;

DROP

DROP 语句可用于删除整个数据库、表或索引。

不言而喻,DROP 命令只应在绝对必要的情况下使用。

DROP DATABASE

DROP DATABASE 删除整个数据库,包括其所有表、索引等以及其中的所有数据。

使用该命令要极其小心哦!

代码语言:txt
复制
DROP DATABASE dataquestDB;

DROP TABLE

DROP TABLE 删除一个表以及其中的数据。

代码语言:txt
复制
DROP TABLE customers;

DROP INDEX

DROP INDEX 删除数据库中的索引。

代码语言:txt
复制
DROP INDEX idx_name;

UPDATE

UPDATE 语句用于更新表中的数据,例如,下面的代码将customers表中名为Bob的年龄改为56.

代码语言:txt
复制
UPDATE customers
SET age = 56
WHERE name = ‘Bob’;

DELETE

DELETE 可以删除表中的所有行(使用 *),也可以用作 WHERE 子句的一部分来删除满足特定条件的行。

代码语言:txt
复制
DELETE FROM customers
WHERE name = ‘Bob’;

ALTER TABLE

ALTER TABLE 允许您在表中添加或删除列。

为customers表增加新列surname

代码语言:txt
复制
ALTER TABLE customers
ADD surname varchar(255);

删除customers表中的surname列

代码语言:txt
复制
ALTER TABLE customers
DROP COLUMN surname;

聚合函数 (COUNT/SUM/AVG/MIN/MAX)

聚合函数对一组值执行计算并返回单个结果。

COUNT

COUNT 返回与指定条件匹配的行数,在下面的代码中,我们使用的是*,因此customers将返回的总行数。

代码语言:txt
复制
SELECT COUNT(*)
FROM customers;

SUM

SUM 返回数字列的总和。

代码语言:txt
复制
SELECT SUM(age)
FROM customers;

AVG

AVG 返回数字列的平均值。

代码语言:txt
复制
SELECT AVG(age)
FROM customers;

MIN

MIN 返回数字列的最小值。

代码语言:txt
复制
SELECT MIN(age)
FROM customers;

MAX

MAX 返回数值列的最大值。

代码语言:txt
复制
SELECT MAX(age)
FROM customers;

GROUP BY

GROUP BY 语句将具有相同值的行分组为汇总行,该语句通常与聚合函数一起使用。

例如,下面的代码将显示我们customers表格中出现的每个名字的平均年龄。

代码语言:txt
复制
SELECT name, AVG(age)
FROM customers
GROUP BY name;

HAVING

HAVING 执行与 WHERE 子句相同的操作。不同之处在于 HAVING 用于聚合函数。

下面的示例将返回每个名称的行数,但仅适用于具有 2 个以上记录的名称。

代码语言:txt
复制
SELECT COUNT(customer_id), name
FROM customers
GROUP BY name
HAVING COUNT(customer_id) > 2;

ORDER BY

ORDER BY sets the order of the returned results. The order will be ascending by default.

代码语言:txt
复制
SELECT name
FROM customers
ORDER BY age;

DESC

DESC 将按降序返回结果。

代码语言:txt
复制
SELECT name
FROM customers
ORDER BY age DESC;

OFFSET

OFFSET 语句与 ORDER BY 一起使用,并指定在开始从查询中返回行之前要跳过的行数。

代码语言:txt
复制
SELECT name
FROM customers
ORDER BY age
OFFSET 10 ROWS;

FETCH

FETCH 指定在处理完 OFFSET 子句后要返回的行数。

OFFSET 子句是强制性的,而 FETCH 子句是可选的。

代码语言:txt
复制
SELECT name
FROM customers
ORDER BY age
OFFSET 10 ROWS
FETCH NEXT 10 ROWS ONLY;

连接 (内部、左、右、全)

JOIN 子句用于组合来自两个或多个表的行,JOIN 的四种类型是 INNER、LEFT、RIGHT 和 FULL。

INNER JOIN

INNER JOIN 选择在两个表中具有匹配值的记录。

代码语言:txt
复制
SELECT name
FROM customers
INNER JOIN orders
ON customers.customer_id = orders.customer_id;

LEFT JOIN

LEFT JOIN 从左表中选择与右表中的记录匹配的记录,在下面的例子中,左表是customers.

代码语言:txt
复制
SELECT name
FROM customers
LEFT JOIN orders
ON customers.customer_id = orders.customer_id;

RIGHT JOIN

RIGHT JOIN 从右表中选择与左表中的记录匹配的记录,在下面的例子中,右表是orders.

代码语言:txt
复制
SELECT name
FROM customers
RIGHT JOIN orders
ON customers.customer_id = orders.customer_id;

FULL JOIN

FULL JOIN 选择在左表或右表中匹配的记录。

与“AND”JOIN(INNER JOIN)相比,可以将其视为“OR”JOIN。

代码语言:txt
复制
SELECT name
FROM customers
FULL OUTER JOIN orders
ON customers.customer_id = orders.customer_id;

EXISTS

EXISTS 用于测试子查询中是否存在任何记录。

代码语言:txt
复制
SELECT name
FROM customers
WHERE EXISTS
(SELECT order FROM ORDERS WHERE customer_id = 1);

GRANT

GRANT 允许特定用户访问数据库对象,例如表、视图或数据库本身。

下面的示例将为名为“usr_bob”的用户赋予对customers表的 SELECT 和 UPDATE 访问权限。

代码语言:txt
复制
GRANT SELECT, UPDATE ON customers TO usr_bob;

REVOKE

REVOKE 删除用户对特定数据库对象的权限。

代码语言:txt
复制
REVOKE SELECT, UPDATE ON customers FROM usr_bob;

SAVEPOINT

SAVEPOINT 允许您标识事务中的一个点,可以稍后回滚到该点,类似于创建备份。

代码语言:txt
复制
SAVEPOINT SAVEPOINT_NAME;

COMMIT

COMMIT 用于将每个事务保存到数据库中,COMMIT 语句将释放任何可能正在使用的现有保存点,并且一旦发出该语句,就无法回滚事务。

代码语言:txt
复制
DELETE FROM customers
WHERE name = ‘Bob’;
COMMIT;

ROLLBACK

ROLLBACK 用于撤消未保存到数据库的事务,这只能用于撤消自上次发出 COMMIT 或 ROLLBACK 命令以来的事务,还可以回滚到之前创建的 SAVEPOINT。

代码语言:txt
复制
ROLLBACK TO SAVEPOINT_NAME;

TRUNCATE

TRUNCATE TABLE 从数据库的表中删除所有数据条目,但保留表和结构。

代码语言:txt
复制
TRUNCATE TABLE customers;

UNION

UNION 使用两个或多个 SELECT 语句组合多个结果集并消除重复行。

代码语言:txt
复制
SELECT name FROM customers
UNION
SELECT name FROM orders;

UNION ALL

UNION ALL 使用两个或多个 SELECT 语句组合多个结果集并保留重复行。

代码语言:txt
复制
SELECT name FROM customers
UNION ALL
SELECT name FROM orders;

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • SELECT
    • SELECT *
      • SELECT DISTINCT
        • SELECT INTO
          • SELECT TOP
          • AS
          • FROM
          • WHERE
          • AND
          • OR
          • BETWEEN
          • LIKE
          • IN
          • IS NULL
          • IS NOT NULL
          • CREATE
            • CREATE DATABASE
              • CREATE TABLE
                • CREATE INDEX
                  • CREATE VIEW
                  • DROP
                    • DROP DATABASE
                      • DROP TABLE
                        • DROP INDEX
                        • UPDATE
                        • DELETE
                        • ALTER TABLE
                        • 聚合函数 (COUNT/SUM/AVG/MIN/MAX)
                          • COUNT
                            • SUM
                              • AVG
                                • MIN
                                  • MAX
                                  • GROUP BY
                                  • HAVING
                                  • ORDER BY
                                  • DESC
                                  • OFFSET
                                  • FETCH
                                  • 连接 (内部、左、右、全)
                                    • INNER JOIN
                                      • LEFT JOIN
                                        • RIGHT JOIN
                                          • FULL JOIN
                                          • EXISTS
                                          • GRANT
                                          • REVOKE
                                          • SAVEPOINT
                                          • COMMIT
                                          • ROLLBACK
                                          • TRUNCATE
                                          • UNION
                                          • UNION ALL
                                          相关产品与服务
                                          云数据库 SQL Server
                                          腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                                          领券
                                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档