我们希望从上面的 “Persons” 表中选取居住在以 “N” 开始的城市里的人: 我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons WHERE City LIKE 'N%'
提示:"%" 可用于定义通配符
image.png
通过使用 NOT 关键字,我们可以从 “Persons” 表中选取居住在不包含 “lon” 的城市里的人: 我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons WHERE City NOT LIKE '%lon%'
我们希望从上面的 “Persons” 表中选取名字的第一个字符之后是 “eorge” 的人: 我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons WHERE FirstName LIKE '_eorge'
我们希望从上面的 “Persons” 表中选取居住的城市以 “A” 或 “L” 或 “N” 开头的人: 我们可以使用下面的 SELECT 语句:
SELECT * FROM Persons WHERE City LIKE '[ALN]%'
居住的城市不以 “A” 或 “L” 或 “N” 开头的人
SELECT * FROM Persons WHERE City LIKE '[!ALN]%'
CASE语句不写ELSE子句时,执行结果是NULL。
简单CASE表达式:
CASE sex
WHEN '1' THEN '男'
WHEN '2' THEN '女'
ELSE '其他' END
搜索CASE表达式:
CASE
WHEN sex = '1' THEN '男'
WHEN sex = '2' THEN '女'
ELSE '其他' END
UPDATE使用CASE
UPDATE products
SET prod_price = CASE
WHEN prod_price < 4 THEN prod_price + 0.51
WHEN prod_price > 11 THEN prod_price - 0.99
ELSE prod_price
END
CASE语句判断表达式
SELECT course_name
, CASE
WHEN course_id IN (
SELECT course_id
FROM opencourses
WHERE month = 200706
) THEN 'O'
ELSE 'X'
END AS '6月'
, CASE
WHEN course_id IN (
SELECT course_id
FROM opencourses
WHERE month = 200707
) THEN 'O'
ELSE 'X'
END AS '7月'
, CASE
WHEN course_id IN (
SELECT course_id
FROM opencourses
WHERE month = 200708
) THEN 'O'
ELSE 'X'
END AS '8月'
FROM coursemaster;
交集 内连接
SELECT * FROM table_a
INNER JOIN table_b ON table_a.id = table_b.id;
image.png
并集 全外连接
SELECT * FROM table_a
INNER JOIN table_b ON table_a.id = table_b.id
UNION ALL
SELECT * FROM table_a
LEFT OUTER JOIN table_b ON table_a.id = table_b.id
WHERE table_b.id IS NULL
UNION ALL
SELECT * FROM table_a
RIGHT OUTER JOIN table_b ON table_a.id = table_b.id
WHERE table_a.id IS NULL
image.png