SQL语句学习笔记
w3school教程链接:https://www.w3school.com.cn/sql/index.asp
SELECT 语句
- 语法:SELECT
*
FROM表
; ------ 表示从表
中选择所有列 - 例子:SELECT
*
FROM产品
; - 注意:末尾的
;
必须是英文字符
- 语法:SELECT
列
FROM表
;------表示从表
中选择列
这一列 - 例子:SELECT
产品名称
FROM产品
;
- 语法:SELECT
列1,列2
FROM表
; ------表示从表
中选择列1,列2
两列 - 例子:SELECT
产品名称,单价
FROM产品
;
SELECT DISTINCT 语句
- 语法:SELECT DISTINCT
列
FROM表
; ------表示从表
中选择列
但不重复显示 - 例子:SELECT DISTINCT
单价
FROM产品
;
WHERE 子句
如需有条件地从表中选取数据
可将 WHERE 子句添加到 SELECT 语句
- 语法:SELECT
列
FROM表
WHERE列
运算符
值
; - 例子:SELECT
*
FROM产品
WHERE供应商ID
=
'3'
; - 注意:值一定要被
' '
(英文字符)包起来
- 例子:SELECT
*
FROM产品
WHERE供应商ID
<
'4'
;
AND & OR 运算符
AND
和 OR
可在 WHERE 子语句中把两个或多个条件结合
起来。如果第一个条件和第二个条件都成立
,则 AND 运算符显示一条记录
。如果第一个条件和第二个条件中只要有一个成立
,则 OR 运算符显示一条记录
。
- 语法:SELECT * FROM
表
WHERE列1
运算符
'值1'
AND列2
运算符
'值2'
- 例子:SELECT * FROM
产品
WHERE供应商ID
=
'4'
AND再订购量
=
'0'
;
- 例子:SELECT * FROM
产品
WHERE供应商ID
<
'4'
AND再订购量
>
'0'
;
- 例子: SELECT * FROM
产品
WHERE供应商ID
=
'4'
OR再订购量
=
'7'
;
ORDER BY 子句
ORDER BY
语句用于根据指定的列对结果集进行排序,默认
按照升序
对记录进行排序。如果您希望按照降序
对记录进行排序可以使用 DESC
关键字。
- 语法:SELECT
列1, 列2
FROM表
ORDER BY列1
- 语法:SELECT
列1, 列2
FROM表
ORDER BY列1
DESC ----- 以逆字母顺序显示列1 - 语法:SELECT
列1, 列2
FROM表
ORDER BY列1
DESC列2
ASC ----- 以逆字母顺序显示列1并以数字顺序显示列2: - 例子:SELECT
供应商ID,再订购量
FROM产品
ORDER BY供应商ID
;
- 例子: SELECT
供应商ID,再订购量
FROM产品
ORDER BY供应商ID
DESC;
INSERT INTO 语句
INSERT INTO
语句用于向表格中插入新的行
- 语法:INSERT INTO
表
VALUES(值1, 值2, ....)
- 例子:INSERT INTO
产品
VALUES('0', '草莓', '1', '1', '1', '1', '1', '1', '1', '1')
UPDATE 语句
Update
语句用于修改表中的数据
- 语法:UPDATE
表
SET列
=新值
WHERE列
=某值
- 例子:UPDATE
产品
SET产品名称
='桃桃子'
WHERE产品名称
='草莓'
;
DELETE 语句
DELETE
语句用于删除表中的行
- 语法:DELETE FROM
表
WHERE列
=值
- 例子: DELETE FROM
产品
WHERE产品名称
='牛奶'
TOP 子句
TOP 子句用于规定要返回的记录的数目,对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。
注释:并非所有的数据库系统都支持 TOP 子句 具体可见 SQL TOP 子句
MySQL 和 Oracle 中的LIMIT 和 SQL SELECT TOP 是等价的 在这里只了解MySQL
- 语法:SELECT * FROM
表
LIMIT值
- 例子:SELECT * FROM
产品
LIMIT 5
LIKE 操作符
LIKE
操作符用于在 WHERE 子句中搜索列中的指定模式
- 语法:SELECT
列
FROM表
WHERE列
LIKE'模式%'或者'%模式'
- 例子: SELECT
产品名称
FROM产品
WHERE产品名称
LIKE'猪%'
;
- 例子:SELECT
产品名称
FROM产品
WHERE产品名称
LIKE'%米'
;
通配符
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符,SQL 通配符必须与 LIKE 运算符一起使用,语法同上
- 例子:SELECT
产品名称
FROM产品
WHERE产品名称
LIKE'%肉'
;
- 例子:SELECT
产品名称
FROM产品
WHERE产品名称
LIKE'鸡%'
;
- 例子:SELECT
产品名称
FROM产品
WHERE产品名称
LIKE'_米_'
;
这两个没有试出来 有例子了再补
IN 操作符
IN
操作符允许我们在 WHERE 子句中规定多个值
- 语法:SELECT
列
FROM表
WHERE列
IN(值1,值2,...)
- 例子:SELECT
产品名称
FROM产品
WHERE产品名称
IN('鱿鱼','干贝');
BETWEEN 操作符
BETWEEN
操作符在 WHERE 子句中
使用,作用是选取介于两个值之间的数据范围
。
- 语法:SELECT
列
FROM表
WHERE列
BETWEEN值1
AND值2
- 例子:SELECT
库存量
FROM产品
WHERE库存量
BETWEEN'1'
AND'30'
;
Alias(别名)
通过使用 SQL,可以为列名称和表名称指定别名
(Alias)
- 语法:SELECT
列
AS列
FROM表
- 例子:SELECT
库存量
AS库存
FROM产品
JOIN
SQL join
用于根据两个或多个表中的列之间的关系,从这些表中查询数据
-
语法:SELECT
表1.列1, 表1.列2, 表2.列3
FROM表1
INNER JOIN表2
ON表1.列
=表2.列
-
例子:SELECT
产品.产品名称 , 产品.产品ID , 产品.供应商ID
FROM产品
INNER JOIN订单明细
ON产品.产品ID
=订单明细.产品ID
-
不同的 SQL JOIN
INNER JOIN 内连接关键字
- 注释:INNER JOIN 与 JOIN 是相同的
- INNER JOIN 关键字在表中存在至少一个匹配时返回行。如果 “Persons” 中的行在 “Orders” 中没有匹配,就不会列出这些行。
LEFT JOIN 左连接关键字
- 语法:SELECT
列
FROM表1
LEFT JOIN表2
ON表1.列
=表2.列
- 例子:
RIGHT JOIN 右连接关键字
- 语法:SELECT
列
FROM表1
LEFT JOIN表2
ON表1.列
=表2.列
- 例子:
FULL JOIN 全连接关键字
- 语法:SELECT
列
FROM表1
LEFT JOIN表2
ON表1.列
=表2.列
- 例子: