SQL 关键字参考手册(二)

目录

[SQL 关键字](#SQL 关键字)

[SQL CREATE TABLE 关键字](#SQL CREATE TABLE 关键字)

[CREATE TABLE](#CREATE TABLE)

使用另一个表创建表

[SQL CREATE PROCEDURE 关键字](#SQL CREATE PROCEDURE 关键字)

[CREATE PROCEDURE](#CREATE PROCEDURE)

[SQL CREATE UNIQUE INDEX 关键字](#SQL CREATE UNIQUE INDEX 关键字)

[CREATE UNIQUE INDEX](#CREATE UNIQUE INDEX)

[SQL CREATE VIEW 关键字](#SQL CREATE VIEW 关键字)

[CREATE VIEW](#CREATE VIEW)

查询视图

[SQL DATABASE 关键字](#SQL DATABASE 关键字)

[CREATE DATABASE](#CREATE DATABASE)

删除数据库

[SQL DEFAULT 关键字](#SQL DEFAULT 关键字)

DEFAULT

[创建表时的 SQL 默认值](#创建表时的 SQL 默认值)

[ALTER TABLE 上的 SQL 默认值](#ALTER TABLE 上的 SQL 默认值)

删除默认约束

[SQL DELETE 关键字](#SQL DELETE 关键字)

DELETE

[SQL DESC 关键字](#SQL DESC 关键字)

DESC

[SQL SELECT DISTINCT 关键字](#SQL SELECT DISTINCT 关键字)

[SELECT DISTINCT](#SELECT DISTINCT)

[SQL DROP 关键字](#SQL DROP 关键字)

[DROP COLUMN](#DROP COLUMN)

删除唯一约束

删除主键约束

删除外键约束

[删除一个 CHECK 约束](#删除一个 CHECK 约束)

删除默认值

删除索引

删除数据库

[DROP TABLE](#DROP TABLE)

[TRUNCATE TABLE](#TRUNCATE TABLE)

删除视图

[SQL EXEC 关键字](#SQL EXEC 关键字)

EXEC

[SQL EXISTS 关键字](#SQL EXISTS 关键字)

EXISTS

[SQL FOREIGN KEY 关键字](#SQL FOREIGN KEY 关键字)

[FOREIGN KEY](#FOREIGN KEY)

[SQL FOREIGN KEY on CREATE TABLE](#SQL FOREIGN KEY on CREATE TABLE)

[SQL FOREIGN KEY on ALTER TABLE](#SQL FOREIGN KEY on ALTER TABLE)

[DROP a FOREIGN KEY Constraint](#DROP a FOREIGN KEY Constraint)

[SQL FROM 关键字](#SQL FROM 关键字)

FROM

[SQL FULL OUTER JOIN 关键字](#SQL FULL OUTER JOIN 关键字)

[FULL OUTER JOIN](#FULL OUTER JOIN)

[SQL GROUP BY 关键字](#SQL GROUP BY 关键字)

[GROUP BY](#GROUP BY)

[SQL HAVING 关键字](#SQL HAVING 关键字)

HAVING

[SQL IN 关键字](#SQL IN 关键字)

IN

[SQL INDEX 关键字](#SQL INDEX 关键字)

[CREATE INDEX](#CREATE INDEX)

删除索引

[SQL INNER JOIN 关键字](#SQL INNER JOIN 关键字)

[INNER JOIN](#INNER JOIN)


SQL 关键字

关键字 描述
ADD 在现有表中添加一列
ADD CONSTRAINT 在创建表后添加约束
ALTER 添加、删除或修改表中的列,或更改表中列的数据类型
ALTER COLUMN 更改表中列的数据类型
ALTER TABLE 添加、删除或修改表中的列
ALL 如果所有子查询值都满足条件,则返回true
AND 仅包含两个条件都为真的行
ANY 如果任何子查询值满足条件,则返回true
AS 用别名重命名列或表
ASC 对结果集进行升序排序
BACKUP DATABASE 创建现有数据库的备份
BETWEEN 选择给定范围内的值
CASE 根据条件创建不同的输出
CHECK 限制可以放在列中的值的约束
COLUMN 更改列的数据类型或删除表中的列
CONSTRAINT 添加或删除约束
CREATE 创建数据库、索引、视图、表或过程
CREATE DATABASE 创建一个新的 SQL 数据库
CREATE INDEX 在表上创建索引(允许重复值)
CREATE OR REPLACE VIEW 更新视图
CREATE TABLE 在数据库中创建一个新表
CREATE PROCEDURE 创建一个存储过程
CREATE UNIQUE INDEX 在表上创建唯一索引(无重复值)
CREATE VIEW 根据 SELECT 语句的结果集创建视图
DATABASE 创建或删除 SQL 数据库
DEFAULT 创建或删除 SQL 数据库
DELETE 从表中删除行
DESC 对结果集进行降序排序
DISTINCT 只选择不同的(不同的)值
DROP 删除列、约束、数据库、索引、表或视图
DROP COLUMN 删除表中的一列
DROP CONSTRAINT 删除 UNIQUE、PRIMARY KEY、FOREIGN KEY 或 CHECK 约束
DROP DATABASE 删除现有的 SQL 数据库
DROP DEFAULT 删除一个 DEFAULT 约束
DROP INDEX 删除表中的索引
DROP TABLE 删除数据库中的现有表
DROP VIEW 删除视图
EXEC 执行存储过程
EXISTS 测试子查询中是否存在任何记录
FOREIGN KEY 用于将两个表链接在一起的键的约束
FROM 指定从哪个表中选择或删除数据
FULL OUTER JOIN 当左表或右表匹配时返回所有行
GROUP BY 对结果集进行分组(与聚合函数一起使用:COUNT、MAX、MIN、SUM、AVG)
HAVING 用聚合函数代替 WHERE
IN 允许您在 WHERE 子句中指定多个值
INDEX 在表中创建或删除索引
INNER JOIN 返回两个表中具有匹配值的行
INSERT INTO 在表格中插入新行
INSERT INTO SELECT 将数据从一个表复制到另一个表中
IS NULL 空值测试
IS NOT NULL 测试非空值
JOIN 连接表格
LEFT JOIN 返回左表中的所有行,以及右表中匹配的行
LIKE 在列中搜索指定模式
LIMIT 指定要在结果集中返回的记录数
NOT 仅包含条件不成立的行
NOT NULL 强制列不接受 NULL 值的约束
OR 包括任一条件为真的行
ORDER BY 按升序或降序对结果集进行排序
OUTER JOIN 当左表或右表匹配时返回所有行
PRIMARY KEY 唯一标识数据库表中每条记录的约束
PROCEDURE 一个存储过程
RIGHT JOIN 返回右表中的所有行,以及左表中匹配的行
ROWNUM 指定要在结果集中返回的记录数
SELECT 从数据库中选择数据
SELECT DISTINCT 只选择不同的(不同的)值
SELECT INTO 将数据从一个表复制到一个新表中
SELECT TOP 指定要在结果集中返回的记录数
SET 指定应该在表中更新哪些列和值
TABLE 创建表,或添加、删除、修改表中的列,或删除表或表中的数据
TOP 指定要在结果集中返回的记录数
TRUNCATE TABLE 删除表内的数据,但不删除表本身
UNION 组合两个或多个 SELECT 语句的结果集(仅不同的值)
UNION ALL 组合两个或多个 SELECT 语句的结果集(允许重复值)
UNIQUE 确保列中所有值唯一的约束
UPDATE 更新表中的现有行
VALUES 指定 INSERT INTO 语句的值
VIEW 创建、更新或删除视图
WHERE 过滤结果集以仅包含满足指定条件的记录

SQL CREATE TABLE 关键字

CREATE TABLE

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

以下 SQL 创建一个名为 "Persons" 的表,其中包含五列:PersonID、LastName、FirstName、Address 和 City:

【实例】

sql 复制代码
CREATE TABLE Persons (
    PersonID int,
    LastName varchar(255),
    FirstName varchar(255),
    Address varchar(255),
    City varchar(255)
);

使用另一个表创建表

以下 SQL 创建一个名为 "TestTables" 的新表(它是 "Customers" 表的两列的副本):

【实例】

sql 复制代码
CREATE TABLE TestTable AS
SELECT customername, contactname
FROM customers;

SQL CREATE PROCEDURE 关键字

CREATE PROCEDURE

CREATE PROCEDURE命令用于创建存储过程。

存储过程是可以保存的准备好的 SQL 代码,因此代码可以反复重用。

以下 SQL 创建一个名为"SelectAllCustomers"的存储过程,该过程从"Customers"表中选择所有记录:

【实例】

sql 复制代码
CREATE PROCEDURE SelectAllCustomers
AS
SELECT * FROM Customers
GO;

执行上面的存储过程如下:

【实例】

sql 复制代码
EXEC SelectAllCustomers;

SQL CREATE UNIQUE INDEX 关键字

CREATE UNIQUE INDEX

CREATE UNIQUE INDEX 命令在表上创建唯一索引(不允许重复值)

索引用于非常快速地从数据库中检索数据。 用户看不到索引,它们只是用来加速搜索/查询。

以下 SQL 在 "Persons" 表的 "PersonID" 列上创建一个名为 "uidx_pid" 的索引:

sql 复制代码
CREATE UNIQUE INDEX uidx_pid
ON Persons (PersonID);

注: 创建索引的语法因数据库而异。 因此:检查在数据库中创建索引的语法。 使用索引更新表比不更新表需要更多时间(因为索引也需要更新)。 因此,仅在将经常搜索的列上创建索引。

SQL CREATE VIEW 关键字

CREATE VIEW

CREATE VIEW 命令创建一个视图。

视图是基于 SQL 语句结果集的虚拟表。

以下 SQL 创建一个视图,用于选择来自巴西的所有客户:

【实例】

sql 复制代码
CREATE VIEW [Brazil Customers] AS
SELECT CustomerName, ContactName
FROM Customers
WHERE Country = "Brazil";

查询视图

我们可以这样查询上面的视图:

【实例】

sql 复制代码
SELECT * FROM [Brazil Customers];

SQL DATABASE 关键字

CREATE DATABASE

CREATE DATABASE命令用来创建一个新的SQL数据库。

以下 SQL 创建一个名为 "testDB" 的数据库:

【实例】

sql 复制代码
CREATE DATABASE testDB;

注: 在创建任何数据库之前,请确保您拥有管理员权限。 创建数据库后,您可以使用以下 SQL 命令在数据库列表中检查它:SHOW DATABASES;

删除数据库

DROP DATABASE命令用于删除已有的SQL数据库。

以下 SQL 删除了一个名为 "testDB" 的数据库:

【实例】

sql 复制代码
DROP DATABASE testDB;

注:在删除数据库之前要小心。 删除数据库将导致数据库中存储的完整信息丢失!

SQL DEFAULT 关键字

DEFAULT

DEFAULT 约束为列提供默认值。

如果没有指定其他值,默认值将添加到所有新记录中。

创建表时的 SQL 默认值

以下 SQL 在创建 "Persons" 表时为 "City" 列设置一个 DEFAULT 值:

【My SQL / SQL Server / Oracle / MS Access】

sql 复制代码
CREATE TABLE Persons (
    City varchar(255) DEFAULT 'Sandnes'
);

DEFAULT 约束也可用于插入系统值,通过使用诸如 GETDATE() 之类的函数:

sql 复制代码
CREATE TABLE Orders (
    OrderDate date DEFAULT GETDATE()
);

ALTER TABLE 上的 SQL 默认值

要在已创建表时在 "City" 列上创建 DEFAULT 约束,请使用以下 SQL:

【MySQL】

sql 复制代码
ALTER TABLE Persons
ALTER City SET DEFAULT 'Sandnes';

【SQL Server】

sql 复制代码
ALTER TABLE Persons
ADD CONSTRAINT df_City
DEFAULT 'Sandnes' FOR City;

【MS Access】

sql 复制代码
ALTER TABLE Persons
ALTER COLUMN City SET DEFAULT 'Sandnes';

【Oracle】

sql 复制代码
ALTER TABLE Persons
MODIFY City DEFAULT 'Sandnes';

删除默认约束

要删除 DEFAULT 约束,请使用以下 SQL:

【MySQL】

sql 复制代码
ALTER TABLE Persons
ALTER City DROP DEFAULT;

【SQL Server / Oracle / MS Access】

sql 复制代码
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT;

SQL DELETE 关键字

DELETE

DELETE命令用于删除表中已有的记录。

以下 SQL 语句从"客户"表中删除客户"Alfreds Futterkiste":

【实例】

sql 复制代码
DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';

注:删除表中的记录时要小心! 请注意 DELETE 语句中的 WHERE 子句。 WHERE 子句指定应该删除哪些记录。 如果省略 WHERE 子句,表中的所有记录都会被删除!

可以在不删除表的情况下删除表中的所有行。 这意味着表结构、属性和索引将保持不变:

以下 SQL 语句删除 "Customers" 表中的所有行,但不删除该表。 这意味着表结构、属性和索引将保持不变:

【实例】

sql 复制代码
DELETE FROM Customers;

SQL DESC 关键字

DESC

DESC命令用于对返回的数据进行降序排序。

以下 SQL 语句选择 "Customers" 表中的所有列,按 "CustomerName" 列降序排序:

【实例】

sql 复制代码
SELECT * FROM Customers
ORDER BY CustomerName DESC;

SQL SELECT DISTINCT 关键字

SELECT DISTINCT

SELECT DISTINCT 命令仅返回结果集中不同(不同)的值。

以下 SQL 语句仅从"Customers"表的"Country"列中选择 DISTINCT 值:

【实例】

sql 复制代码
SELECT DISTINCT Country FROM Customers;

SQL DROP 关键字

DROP COLUMN

DROP COLUMN 命令用于删除现有表中的列。

以下 SQL 从 "Customers" 表中删除 "ContactName" 列:

【实例】

sql 复制代码
ALTER TABLE Customers
DROP COLUMN ContactName;

删除唯一约束

要删除 UNIQUE 约束,请使用以下 SQL:

【SQL Server / Oracle / MS Access】

sql 复制代码
ALTER TABLE Persons
DROP CONSTRAINT UC_Person;

【MySQL】

sql 复制代码
ALTER TABLE Persons
DROP INDEX UC_Person;

删除主键约束

要删除 PRIMARY KEY 约束,请使用以下 SQL:

【SQL Server / Oracle / MS Access】

sql 复制代码
ALTER TABLE Persons
DROP CONSTRAINT PK_Person;

【MySQL】

sql 复制代码
ALTER TABLE Persons
DROP PRIMARY KEY;

删除外键约束

要删除 FOREIGN KEY 约束,请使用以下 SQL:

【SQL Server / Oracle / MS Access】

sql 复制代码
ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;

【MySQL】

sql 复制代码
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;

删除一个 CHECK 约束

要删除 CHECK 约束,请使用以下 SQL:

【SQL Server / Oracle / MS Access】

sql 复制代码
ALTER TABLE Persons
DROP CONSTRAINT CHK_PersonAge;

【MySQL】

sql 复制代码
ALTER TABLE Persons
DROP CHECK CHK_PersonAge;

删除默认值

DROP DEFAULT命令用于删除一个DEFAULT约束。

要删除 DEFAULT 约束,请使用以下 SQL:

【SQL Server / Oracle / MS Access】

sql 复制代码
ALTER TABLE Persons
ALTER COLUMN City DROP DEFAULT;

【MySQL】

sql 复制代码
ALTER TABLE Persons
ALTER City DROP DEFAULT;

删除索引

DROP INDEX命令用于删除表中的索引。

【MS Access】

sql 复制代码
DROP INDEX index_name ON table_name;

【SQL Server】

sql 复制代码
DROP INDEX table_name.index_name;

【DB2/Oracle】

sql 复制代码
DROP INDEX index_name;

【MySQL】

sql 复制代码
ALTER TABLE table_name
DROP INDEX index_name;

删除数据库

DROP DATABASE命令用于删除已有的SQL数据库。

以下 SQL 删除了一个名为 "testDB" 的数据库:

【实例】

sql 复制代码
DROP DATABASE testDB;

注:在删除数据库之前要小心。 删除数据库将导致数据库中存储的完整信息丢失!

DROP TABLE

DROP TABLE 命令删除数据库中的一个表。

以下SQL删除表 "Shippers":

【实例】

sql 复制代码
DROP TABLE Shippers;

注:在删除表之前要小心。 删除表会导致表中存储的所有信息丢失!

TRUNCATE TABLE

TRUNCATE TABLE 命令删除表内的数据,但不删除表本身。

以下 SQL 截断表 "Categories":

【实例】

sql 复制代码
TRUNCATE TABLE Categories;

删除视图

DROP VIEW 命令删除视图。

以下 SQL 删除 "Brazil Customers" 视图:

【实例】

sql 复制代码
DROP VIEW [Brazil Customers];

SQL EXEC 关键字

EXEC

EXEC命令用于执行存储过程。

以下 SQL 执行名为"SelectAllCustomers"的存储过程:

【实例】

sql 复制代码
EXEC SelectAllCustomers;

SQL EXISTS 关键字

EXISTS

EXISTS 命令测试子查询中是否存在任何记录,如果子查询返回一条或多条记录,则返回 true。

以下 SQL 列出了产品价格低于 20 的供应商:

【实例】

sql 复制代码
SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName FROM Products WHERE SupplierId = Suppliers.supplierId AND Price < 20);

以下 SQL 列出了产品价格等于 22 的供应商:

【实例】

sql 复制代码
SELECT SupplierName
FROM Suppliers
WHERE EXISTS (SELECT ProductName FROM Products WHERE SupplierId = Suppliers.supplierId AND Price = 22);

SQL FOREIGN KEY 关键字

FOREIGN KEY

FOREIGN KEY 约束是用于将两个表链接在一起的键。

FOREIGN KEY 是一个表中的一个字段(或字段集合),它引用另一个表中的 PRIMARY KEY。

SQL FOREIGN KEY on CREATE TABLE

以下 SQL 在创建 "Orders" 表时在 "PersonID" 列上创建 FOREIGN KEY:

【MySQL】

sql 复制代码
CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    FOREIGN KEY (PersonID) REFERENCES Persons(PersonID)
);

【SQL Server / Oracle / MS Access】

sql 复制代码
CREATE TABLE Orders (
    OrderID int NOT NULL PRIMARY KEY,
    OrderNumber int NOT NULL,
    PersonID int FOREIGN KEY REFERENCES Persons(PersonID)
);

要允许命名 FOREIGN KEY 约束,并在多个列上定义 FOREIGN KEY 约束,请使用以下 SQL 语法:

MySQL / SQL Server / Oracle / MS Access

sql 复制代码
CREATE TABLE Orders (
    OrderID int NOT NULL,
    OrderNumber int NOT NULL,
    PersonID int,
    PRIMARY KEY (OrderID),
    CONSTRAINT FK_PersonOrder FOREIGN KEY (PersonID)
    REFERENCES Persons(PersonID)
);

SQL FOREIGN KEY on ALTER TABLE

要在 "Orders" 表已创建时在 "PersonID" 列上创建 FOREIGN KEY 约束,请使用以下 SQL:

【MySQL / SQL Server / Oracle / MS Access】

sql 复制代码
ALTER TABLE Orders
ADD FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

要允许命名 FOREIGN KEY 约束,并在多个列上定义 FOREIGN KEY 约束,请使用以下 SQL 语法:

【MySQL / SQL Server / Oracle / MS Access】

sql 复制代码
ALTER TABLE Orders
ADD CONSTRAINT FK_PersonOrder
FOREIGN KEY (PersonID) REFERENCES Persons(PersonID);

DROP a FOREIGN KEY Constraint

要删除 FOREIGN KEY 约束,请使用以下 SQL:

【MySQL】

sql 复制代码
ALTER TABLE Orders
DROP FOREIGN KEY FK_PersonOrder;

【SQL Server / Oracle / MS Access】

sql 复制代码
ALTER TABLE Orders
DROP CONSTRAINT FK_PersonOrder;

SQL FROM 关键字

FROM

FROM 命令用于指定从哪个表中选择或删除数据。

以下 SQL 语句从"客户"表中选择"客户名称"和"城市"列:

【实例】

sql 复制代码
SELECT CustomerName, City FROM Customers;

以下 SQL 语句从"客户"表中选择所有列:

【实例】

sql 复制代码
SELECT * FROM Customers;

以下 SQL 语句从"客户"表中删除客户"Alfreds Futterkiste":

【实例】

sql 复制代码
DELETE FROM Customers
WHERE CustomerName='Alfreds Futterkiste';

SQL FULL OUTER JOIN 关键字

FULL OUTER JOIN

FULL OUTER JOIN 命令在左表或右表中存在匹配时返回所有行。

以下 SQL 语句选择所有客户和所有订单:

sql 复制代码
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
FULL OUTER JOIN Orders ON Customers.CustomerID=Orders.CustomerID
ORDER BY Customers.CustomerName;

注: FULL OUTER JOIN 关键字返回左表(客户)中的所有行,以及右表中的所有行 表(订单)。 如果"客户"中有行与"订单"不匹配,或者"订单"中有行与"客户"不匹配,这些行也会被列出。

SQL GROUP BY 关键字

GROUP BY

GROUP BY 命令用于对结果集进行分组(与聚合函数一起使用:COUNT、MAX、MIN、SUM、AVG)。

下面的 SQL 列出了每个国家的客户数量:

【实例】

sql 复制代码
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country;

以下 SQL 列出了每个国家/地区的客户数量,从高到低排序:

【实例】

sql 复制代码
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
ORDER BY COUNT(CustomerID) DESC;

SQL HAVING 关键字

HAVING

HAVING 命令用于代替 WHERE 聚合函数。

以下 SQL 列出了每个国家/地区的客户数量。 仅包括拥有 5 个以上客户的国家/地区:

【实例】

sql 复制代码
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5;

以下 SQL 列出了每个国家/地区的客户数量,从高到低排序(仅包括客户超过 5 个的国家/地区):

【实例】

sql 复制代码
SELECT COUNT(CustomerID), Country
FROM Customers
GROUP BY Country
HAVING COUNT(CustomerID) > 5
ORDER BY COUNT(CustomerID) DESC;

SQL IN 关键字

IN

IN 命令允许您在 WHERE 子句中指定多个值。

IN 运算符是多个 OR 条件的简写。

以下 SQL 选择位于"Germany"、"France"和"UK"的所有客户:

【实例】

sql 复制代码
SELECT * FROM Customers
WHERE Country IN ('Germany', 'France', 'UK');

以下 SQL 选择所有不在"Germany"、"France"或"UK"的客户:

【实例】

sql 复制代码
SELECT * FROM Customers
WHERE Country NOT IN ('Germany', 'France', 'UK');

以下 SQL 选择与供应商来自同一国家的所有客户:

【实例】

sql 复制代码
SELECT * FROM Customers
WHERE Country IN (SELECT Country FROM Suppliers);

SQL INDEX 关键字

CREATE INDEX

CREATE INDEX 命令用于在表中创建索引(允许重复值)。

索引用于非常快速地从数据库中检索数据。 用户看不到索引,它们只是用来加速搜索/查询。

下面的 SQL 在 "Persons" 表的 "LastName" 列上创建一个名为 "idx_lastname" 的索引:

sql 复制代码
CREATE INDEX idx_lastname
ON Persons (LastName);

如果您想为列组合创建索引,可以在括号内列出列名,用逗号分隔:

sql 复制代码
CREATE INDEX idx_pname
ON Persons (LastName, FirstName);

注: 创建索引的语法因数据库而异。 因此:检查在数据库中创建索引的语法。使用索引更新表比不更新表需要更多时间(因为索引也需要更新)。 因此,仅在将经常搜索的列上创建索引。

删除索引

DROP INDEX命令用于删除表中的索引。

【MS Access】

sql 复制代码
DROP INDEX index_name ON table_name;

【SQL Server】

sql 复制代码
DROP INDEX table_name.index_name;

【DB2/Oracle】

sql 复制代码
DROP INDEX index_name;

【MySQL】

sql 复制代码
ALTER TABLE table_name
DROP INDEX index_name;

SQL INNER JOIN 关键字

INNER JOIN

INNER JOIN 命令返回两个表中具有匹配值的行。

以下 SQL 选择所有带有客户信息的订单:

【实例】

sql 复制代码
SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID;

注: 只要列之间存在匹配项,INNER JOIN 关键字就会从两个表中选择所有行。 如果"Orders"表中存在与"Customers"不匹配的记录,这些订单将不会显示!

以下 SQL 语句选择包含客户和发货人信息的所有订单:

【实例】

sql 复制代码
SELECT Orders.OrderID, Customers.CustomerName, Shippers.ShipperName
FROM ((Orders
INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)
INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID);
相关推荐
Hacker_LaoYi2 分钟前
SQL注入的那些面试题总结
数据库·sql
Hacker_LaoYi2 小时前
【渗透技术总结】SQL手工注入总结
数据库·sql
独行soc2 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
冷眼看人间恩怨4 小时前
【Qt笔记】QDockWidget控件详解
c++·笔记·qt·qdockwidget
独行soc4 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
清平乐的技术专栏5 小时前
Hive SQL 查询所有函数
hive·hadoop·sql
cmdch20179 小时前
Mybatis加密解密查询操作(sql前),where要传入加密后的字段时遇到的问题
数据库·sql·mybatis
Hejjon9 小时前
SpringBoot 整合 SQLite 数据库
笔记
程序猿小柒9 小时前
【Spark】Spark SQL执行计划-精简版
大数据·sql·spark
听见~11 小时前
SQL优化
数据库·sql