SQL 语法
当您想要对数据库中的数据执行某些操作时,必须按照 SQL 的预定义语法编写查询。
结构化查询语言的语法是一组独特的规则和指南,不区分大小写。它的语法由 ISO 和 ANSI 标准定义和维护。
以下是关于 SQL 语法的一些最重要的要点需要记住:
- SQL 关键字可以使用大写和小写写入,但是使用大写编写 SQL 关键字可以提高 SQL 查询的可读性。
- SQL 语句或语法依赖于文本行。我们可以将单个 SQL 语句放置在一个或多个文本行上。
- 您可以使用 SQL 语句执行数据库中的大多数操作。
- SQL 语法依赖于关系代数和元组关系演算。
SQL 语句
SQL 语句告诉数据库您想要在结构化数据上执行什么操作,以及您想要从数据库中获取什么信息。
SQL 语句非常简单易用,易于理解。它们就像普通的英语,但有一套特定的语法规则。
SQL 语句的简单示例:
SELECT "column_name" FROM "table_name";
每个SQL语句以任何SQL关键字开头并以分号(;)结束。分号在SQL中用于分隔多个在同一次调用中执行的Sql语句。在本SQL教程中,我们将在每个SQL查询或语句的末尾使用分号(;)。
最重要的SQL命令和语句
- 选择语句
- 更新语句
- 删除语句
- 创建表语句
- 修改表语句
- 删除表语句
- 创建数据库语句
- 删除数据库语句
- 插入语句
- 截断表语句
- 描述语句
- Distinct子句
- 提交语句
- 回滚语句
- 创建索引语句
- 删除索引语句
- 使用语句
让我们逐个简要讨论每个语句的语法和一个示例:
1. SELECT语句
此SQL语句从SQL数据库中读取数据并将其显示为输出给数据库用户。
SELECT语句的语法:
SELECT column_name1, column_name2, .…, column_nameN
[ FROM table_name ]
[ WHERE condition ]
[ ORDER BY order_column_name1 [ ASC | DESC ], .... ];
选择语句示例:
SELECT Emp_ID, First_Name, Last_Name, Salary, City
FROM Employee_details
WHERE Salary = 100000
ORDER BY Last_Name
这个例子展示了来自 Employee_details 表中薪资为 100000 的雇员的 Emp_ID, First_Name, Last_Name, Salary, and City 。输出按照 Last_Name 的升序字母顺序显示所有指定的详情。
3. UPDATE语句
这个SQL语句改变或修改SQL数据库中存储的数据。
UPDATE语句的语法:
UPDATE table_name
SET column_name1 = new_value_1, column_name2 = new_value_2, ...., column_nameN = new_value_N
[ WHERE CONDITION ];
UPDATE语句的示例:
UPDATE Employee_details
SET Salary = 100000
WHERE Emp_ID = 10;
这个例子改变了 Employee_detail 表中 Emp_ID 为 10 的那些员工的 Salary 。
3. DELETE 语句
这个 SQL 语句从 SQL 数据库中删除存储的数据。
DELETE 语句的语法:
DELETE FROM table_name
[ WHERE CONDITION ];
删除语句示例:
DELETE FROM Employee_details
WHERE First_Name = 'Sumit';
这个例子删除了那些在 Employee_details 表中, First_Name 为 Sumit 的员工的记录。
4. CREATE TABLE 语句
这个 SQL 语句在 SQL 数据库中创建了新的表。
CREATE TABLE 语句的语法:
CREATE TABLE table_name
(
column_name1 data_type [column1 constraint(s)],
column_name2 data_type [column2 constraint(s)],
.....
.....,
column_nameN data_type [columnN constraint(s)],
PRIMARY KEY(one or more col)
);
CREATE TABLE语句示例:
CREATE TABLE Employee_details(
Emp_Id NUMBER(4) NOT NULL,
First_name VARCHAR(30),
Last_name VARCHAR(30),
Salary Money,
City VARCHAR(30),
PRIMARY KEY (Emp_Id)
);
这个示例在SQL数据库中创建了一个名为Employee_details的表格,有五个列或字段。表格中的字段是Emp_Id,First_Name,Last_Name,Salary和City。 表格中的Emp_Id列充当主键,这意味着Emp_Id列不能包含重复值和空值。
5. ALTER TABLE语句
这个SQL语句在SQL数据库中添加、删除和修改表格的列。
ALTER TABLE语句的语法:
ALTER TABLE table_name ADD column_name datatype[(size)];
以上SQL alter语句将具有其数据类型的列添加到现有数据库表中。
ALTER TABLE table_name MODIFY column_name column_datatype[(size)];
将上述的“SQL alter语句”将现有数据库表的旧列名更改为新列名。
ALTER TABLE table_name DROP COLUMN column_name;
上述的SQL修改语句删除了已存在的数据库表的列。
ALTER TABLE 语句的示例:
ALTER TABLE Employee_details
ADD Designation VARCHAR(18);
这个例子添加了一个名为 职位 、大小为 18 的新字段,该字段位于SQL数据库的 Employee_details 表中。
6. DROP TABLE 语句
这个SQL语句删除或移除表以及与该表相关的结构、视图、权限和触发器。
DROP TABLE 语句的语法:
DROP TABLE [ IF EXISTS ]
table_name1, table_name2, ……, table_nameN;
删除语句的上述语法将完全删除指定的表,如果数据库中存在的话。
DROP TABLE语句的示例:
DROP TABLE Employee_details;
这个例子如果在SQL数据库中存在的话,会删除 Employee_details 表。如果表中有完整的信息,这会删除掉它。
7. CREATE DATABASE Statement
这个SQL语句在数据库管理系统中创建新的数据库。
CREATE DATABASE语句的语法:
CREATE DATABASE database_name;
创建数据库语句示例:
CREATE DATABASE Company;
上述示例在系统中创建了公司数据库。
8. DROP DATABASE 语句
这个SQL语句从数据库管理系统中删除具有所有数据表和视图的现有数据库。
DROP DATABASE 语句的语法:
DROP DATABASE database_name;
DROP DATABASE语句的示例:
DROP DATABASE Company;
上述示例从系统中删除了公司数据库。
9. 插入语句
此SQL语句将数据或记录插入SQL数据库中的现有表中。该语句可以轻松地在单个查询语句中插入单个和多个记录。
插入单个记录的语法:
INSERT INTO table_name
(
column_name1,
column_name2, .…,
column_nameN
)
VALUES
(value_1,
value_2, ..…,
value_N
);
示例:插入一条记录的例子:
INSERT INTO Employee_details
(
Emp_ID,
First_name,
Last_name,
Salary,
City
)
VALUES
(101,
Akhil,
Sharma,
40000,
Bangalore
);
这个例子在表格 Employee_details 的第一列中插入 101 ,在第二列中插入 Akhil ,在第三列中插入 Sharma ,在第四列中插入 40000 ,在最后一列中插入 Bangalore 。
插入多条记录的语法:
INSERT INTO table_name
( column_name1, column_name2, .…, column_nameN)
VALUES (value_1, value_2, ..…, value_N), (value_1, value_2, ..…, value_N),….;
插入多条记录的示例,使用单个查询:
INSERT INTO Employee_details
( Emp_ID, First_name, Last_name, Salary, City )
VALUES (101, Amit, Gupta, 50000, Mumbai), (101, John, Aggarwal, 45000, Calcutta), (101, Sidhu, Arora, 55000, Mumbai);
这个例子在一个查询语句中插入了三个员工的记录到 Employee_details 表中。
10. TRUNCATE TABLE 语句
这个SQL语句会从SQL数据库的表中删除所有已存储的记录。
TRUNCATE TABLE 语句的语法:
TRUNCATE TABLE table_name;
TRUNCATE TABLE语句的示例:
TRUNCATE TABLE Employee_details;
这个例子删除数据库的Employee_details表中所有员工的记录。
11. DESCRIBE语句
这个SQL语句在查询中告诉有关指定表或视图的一些信息。
DESCRIBE语句的语法:
DESCRIBE table_name | view_name;
DESCRIBE语句的例子:
DESCRIBE Employee_details;
此示例解释了关于 Employee_details 表的结构和其他详细信息。
12. DISTINCT子句
此SQL语句显示数据库表的指定列中的不同值。此语句与 SELECT 关键字一起使用。
DISTINCT子句的语法:
SELECT DISTINCT column_name1, column_name2, ...
FROM table_name;
DISTINCT子句示例:
SELECT DISTINCT City, Salary
FROM Employee_details;
这个例子展示了从 Employee_details 表中 City 和 Salary 列中的不同的值。
13. COMMIT 语句
这个SQL语句永久性地保存在SQL数据库的事务中所做的更改。
COMMIT 语句的语法:
COMMIT
提交语句的示例:
DELETE FROM Employee_details
WHERE salary = 30000;
COMMIT;
这个例子删除了那些 薪水 为 30000 的员工的记录,并永久保存这些更改到数据库中。
14. ROLLBACK 语句
这个SQL语句撤销了那些尚未保存到SQL数据库的事务和操作。
ROLLBACK 语句的语法:
ROLLBACK
ROLLBACK语句示例:
DELETE FROM Employee_details
WHERE City = Mumbai;
ROLLBACK;
这个例子删除那些 城市 是 Mumbai 的雇员的记录, 然后撤销数据库中的更改。
15. CREATE INDEX语句
这个SQL语句在SQL数据库表中创建了新的索引。
CREATE INDEX语句的语法:
CREATE INDEX index_name
ON table_name ( column_name1, column_name2, …, column_nameN );
CREATE INDEX 语句的示例:
CREATE INDEX idx_First_Name
ON employee_details (First_Name);
这个示例在 Employee_details 表的 First_Name 列上创建了一个 idx_First_Name 索引。
16. DROP INDEX 语句
这个SQL语句删除了SQL数据库表中现有的索引。
DROP INDEX 语句的语法:
DROP INDEX index_name;
DROP INDEX语句示例:
DROP INDEX idx_First_Name;
这个例子从SQL数据库中删除索引 idx_First_Name 。
17. USE 语句
这个SQL语句选择现有的SQL数据库。在对数据库表进行操作之前,您必须从多个现有数据库中选择数据库。
USE 语句的语法:
USE database_name;
使用数据库语句示例:
USE Company;
此示例使用公司数据库。