SQL基础语句复习

一些最重要的 SQL 命令

不能忘

  • SELECT - 从数据库中提取数据
  • UPDATE - 更新数据库中的数据
  • DELETE - 从数据库中删除数据
  • INSERT INTO - 向数据库中插入新数据
  • CREATE DATABASE - 创建新数据库
  • ALTER DATABASE - 修改数据库
  • CREATE TABLE - 创建新表
  • ALTER TABLE - 变更(改变)数据库表
  • DROP TABLE - 删除表
  • CREATE INDEX - 创建索引(搜索键)
  • DROP INDEX - 删除索引

SQL SELECT DISTINCT(选择不同) 语法

SELECT DISTINCT语法用于仅返回不同的(different)值。
在一张表内,一列通常包含许多重复的值; 有时你只想列出不同的(different)值。
SELECT DISTINCT语句用于仅返回不同的(different)值。

1
2
3
4
5
6
7
8
SELECT DISTINCT column1, column2, ...
FROM table_name;

/*实例*/
SELECT DISTINCT Country FROM Customers;

/*列出不同(distinct)客户国家的数量*/
SELECT COUNT(DISTINCT Country) FROM Customers;

SQL WHERE 语法

1
2
3
4
5
6
7
SELECT column1, column2, ...
FROM table_name
WHERE condition;

/*实例*/
SELECT * FROM Customers
WHERE Country='Mexico';

WHERE子句中可以使用以下运算符:

运算符 描述
= 等于
<> 不等于。注意:在某些版本的SQL中,这个操作符可能写成!=
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式
IN 为列指定多个可能的值

SQL AND & OR 运算符

WHERE子句可以与AND,OR和NOT运算符结合使用。

AND和OR运算符用于根据多个条件筛选记录:

  • 如果由AND分隔的所有条件为TRUE,则AND运算符显示记录。
  • 如果由OR分隔的任何条件为真,则OR运算符显示记录。

如果条件不为真,则NOT运算符显示记录。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/*实例*/
SELECT * FROM Customers
WHERE Country='Germany'
AND City='Berlin';

SELECT * FROM Customers
WHERE City='Berlin' OR City='München';

SELECT * FROM Customers
WHERE NOT Country='Germany';

SELECT * FROM Customers
WHERE Country='Germany' AND (City='Berlin' OR City='München');

SELECT * FROM Customers
WHERE NOT Country='Germany' AND NOT Country='USA';

SQL ORDER BY Keyword(按关键字排序)

SQL ORDER BY 关键字

ORDER BY 关键字用于按升序或降序对结果集进行排序。
ORDER BY 关键字默认情况下按升序排序记录。
如果需要按降序对记录进行排序,可以使用DESC关键字。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;


/*ORDER BY 多列 实例*/

/*从 "Customers" 表中选取所有客户,并按照 "Country" 和 "CustomerName" 列排序*/
SELECT * FROM Customers
ORDER BY Country, CustomerName;

/*从"Customers" 表中选择所有客户,按 "Country" 升序排列,并按 "CustomerName" 列降序排列*/
SELECT * FROM Customers
ORDER BY Country ASC, CustomerName DESC;

SQL INSERT INTO 语句(在表中插入)

SQL INSERT INTO 语句

INSERT INTO 语句用于向表中插入新记录。

SQL INSERT INTO 语法

INSERT INTO 语句可以用两种形式编写。
第一个表单没有指定要插入数据的列的名称,只提供要插入的值:

1
2
3
4
5
6
7
8
9
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

/*实例*/
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal','Tom B. Erichsen','Skagen 21','Stavanger','4006','Norway');

INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');

如果要为表中的所有列添加值,则不需要在SQL查询中指定列名称。但是,请确保值的顺序与表中的列顺序相同。

1
2
3
4
5
6
INSERT INTO table_name
VALUES (value1, value2, value3, ...);

/*实例*/
INSERT INTO Customers
VALUES ('Cardinal','Tom B. Erichsen','Skagen 21','Stavanger','4006','Norway');

SQL NULL Values(空值)

如何测试NULL值?

使用比较运算符(例如=,<或<>)来测试NULL值是不可行的。
我们将不得不使用IS NULL和IS NOT NULL运算符。

1
2
3
4
5
6
7
8
9
/*IS NULL语法*/
SELECT column_names
FROM table_name
WHERE column_name IS NULL;

/*IS NOT NULL语法*/
SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;

SQL UPDATE 语句(更新表中的记录)

UPDATE 语句用于更新表中已存在的记录。

1
2
3
4
5
6
7
8
9
10
11
/*SQL UPDATE 语法*/

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

/*实例*/
/*把国家/地区为"Mexico"的所有记录的联系人姓名更新为“Juan”*/
UPDATE Customers
SET ContactName='Juan'
WHERE Country='Mexico';

更新记录时要小心。如果省略WHERE子句,所有记录将被更新!

1
2
UPDATE Customers
SET ContactName='Juan';

SQL Delete 语句(删除表中的记录)

DELETE 语句用于删除表中的行。

1
2
3
4
/*SQL DELETE 语法*/

DELETE FROM table_name
WHERE condition;

WHERE子句指定需要删除哪些记录。如果省略了WHERE子句,表中所有记录都将被删除!

删除所有数据:可以删除表中的所有行,而不需要删除该表。这意味着表的结构、属性和索引将保持不变

1
2
3
DELETE FROM table_name;
/*或者*/
DELETE * FROM table_name;