SQL学习 01 - SELECT
SELECT
- SELECT语句用于从表中选取数据
- 语法:
从表中选取选取某个列表
选取表中所有列表SELECT 列表名1,列表名2,... FROM 表名称
SELECT * FROM 表名称
SELECT DISTINC
- 若列表中存在重复值,该语句只返回唯一不同的值
- 语法:
SELECT DISTINCT 列表名 FROM 表名
WHERE子句
-
有条件地从表中选取数据
-
语法:
SELECT 列表名 FROM 表名 WHERE 列 运算符 值
-
运算符:
运算符 = <> > < >= <= != BETWEEN LIKE 描述 等于 不等于 大于 小于 大于等于 小于等于 不等于 在某个范围内 搜索某种模式 -
使用单引号环绕文本值,对于数值则不需要
AND & OR 运算符
- 在WHERE中将多个条件结合起来
- 例
- 显示面积为 200,000 及 250,000 之间的国家名称和该国面积。
SELECT name, area FROM world WHERE area BETWEEN 200000 AND 250000
- 显示面积为 200,000 及 250,000 之间的国家名称和该国面积。
通配符
- 在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符。
- _ 仅替代一个字符
- % 替代一个或多个字符
- [charlist] 字符列中的任何单一字符
- [^charlist] 或者 [!charlist] 不在字符列中的任何单一字符
- 例
- 找出所有国家,其名字以t作第二个字母。
SELECT name FROM world WHERE name LIKE '_t%'
- 找出所有国家,其名字都是 4 个字母的。
SELECT name FROM world WHERE name LIKE '____'
- 找出所有国家,其名字以t作第二个字母。
IN操作符
- IN操作符允许我们在 WHERE 子句中规定多个值。
- 例
- 显示“Ireland 爱尔兰”,“Iceland 冰岛”,“Denmark 丹麦”的国家名称和人口。
SELECT name, population FROM world WHERE name IN ('Ireland', 'Iceland', 'Denmark')
- 显示“Ireland 爱尔兰”,“Iceland 冰岛”,“Denmark 丹麦”的国家名称和人口。
LIKE操作符
- LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。
- 例
- 找出所有国家,其名字包括三个或以上的a。
SELECT name FROM world WHERE name LIKE '%a%a%a%'
- 找出所有国家,其名字包括三个或以上的a。
CONCAT函数
- 字符串 s1,s2 等多个字符串合并为一个字符串
- 例
- 找出所有首都和其国家名字,而首都是国家名字的延伸。你应显示 Mexico City,因它比其国家名字 Mexico长。你不应显示 Luxembourg,因它的首都和国家名相是相同的。
SELECT name,capital FROM world WHERE capital LIKE concat('%', name,'%') AND capital != name
- 找出所有首都和其国家名字,而首都是国家名字的延伸。你应显示 Mexico City,因它比其国家名字 Mexico长。你不应显示 Luxembourg,因它的首都和国家名相是相同的。
REPLACE函数
- REPLACE(s,s1,s2),将字符串 s2 替代字符串 s 中的字符串 s1
- 例
- “Monaco-Ville"是合并国家名字 “Monaco” 和延伸词”-Ville".
显示国家名字,及其延伸词,如首都是国家名字的延伸。SELECT name, REPLACE(capital,name,'') as ext FROM world WHERE capital LIKE concat(name,'%_')
- 表格表头为name和ext,查找结果中首都中的国家名字删去,查找条件中,首都名为国家名后跟至少一个字符。
- “Monaco-Ville"是合并国家名字 “Monaco” 和延伸词”-Ville".