SQL 语法

2024年11月18日 SQL 语法 极客笔记

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命令和语句

  1. 选择语句
  2. 更新语句
  3. 删除语句
  4. 创建表语句
  5. 修改表语句
  6. 删除表语句
  7. 创建数据库语句
  8. 删除数据库语句
  9. 插入语句
  10. 截断表语句
  11. 描述语句
  12. Distinct子句
  13. 提交语句
  14. 回滚语句
  15. 创建索引语句
  16. 删除索引语句
  17. 使用语句

让我们逐个简要讨论每个语句的语法和一个示例:

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_ID10 的那些员工的 Salary

3. DELETE 语句

这个 SQL 语句从 SQL 数据库中删除存储的数据。

DELETE 语句的语法:

DELETE FROM table_name
[ WHERE CONDITION ];

删除语句示例:

DELETE FROM Employee_details
WHERE First_Name = 'Sumit';

这个例子删除了那些在 Employee_details 表中, First_NameSumit 的员工的记录。

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 表中 CitySalary 列中的不同的值。

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; 

此示例使用公司数据库。

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

展开阅读全文
上一篇:三观指的是哪三观 下一篇:SQL 数据类型