选择top
SELECT * FROM Websites LIMIT 2;
就是选择前两个的意思;还可以用percent用百分比进行选择
SELECT TOP 50 PERCENT * FROM Websites;
选出前50%的记录
选择中like的用法
- 选择名字以G开头的
select * from websites
WHERE name LIKE 'G%';
- 选择名字以k结尾的
select * from websites
WHERE name LIKE '%k';
- 选择名字当中包含 oo 的
select * from websites
WHERE name LIKE '%oo%'
- 不包含oo的,就是NOT LIKE
通配符(既然说到%)
- 通配符往往和LIKE一起用,一般的通配符包括:
% 代替0或多个字符
_ 只代替1个字符
[charlist] - 字符列中的任意单一字符
[^charlist]或者[!charlist] - 不在字符列中的任何单一字符
选取 name 以 "G" 开始,然后是一个任意字符,然后是 "o",然后是一个任意字符,然后是 "le" 的所有网站:
SELECT * FROM Websites
WHERE name LIKE 'G_o_le';
使用 SQL [charlist] 通配符
- MySQL 中使用 REGEXP 或 NOT REGEXP 运算符 (或 RLIKE 和 NOT RLIKE) 来操作正则表达式。
- 下面的 SQL 语句选取 name 以 "G"、"F" 或 "s" 开始的所有网站:
SELECT * FROM Websites
WHERE name REGEXP '^[GFs]';
- 下面的 SQL 语句选取 name 以 A 到 H 字母开头的网站:
SELECT * FROM Websites
WHERE name REGEXP '^[A-H]';
- 选不是以A-H开头的,就是'[A-H]';
Select in 选择名称为aa或者bb的值
- 下面的 SQL 语句选取 name 为 "Google" 或 "菜鸟教程" 的所有网站:
SELECT * FROM Websites
WHERE name IN ('Google','菜鸟教程');
Select between 选择alexa取值在某一范围内的值
- 选取 alexa 介于 1 和 20 之间的所有网站:
SELECT * FROM Websites
WHERE alexa BETWEEN 1 AND 20;
- NOT BETWEEN 就是不在这个值范围内的值
带有 IN 的 BETWEEN 操作符实例
选取alexa介于 1 和 20 之间但 country 不为 USA 和 IND 的所有网站:
SELECT * FROM Websites
WHERE (alexa BETWEEN 1 AND 20)
AND NOT country IN ('USA', 'IND');
也可以用betwen选取以某个字母范围开头,和上面的Regexp作用相同
SELECT * FROM Websites
WHERE name BETWEEN 'A' AND 'H';
- 如果是不在这个范围内,就是NOT BETWEEN
选择某一时间日期范围内的条目
-针对access_log表,即包括aid, site_id, count(访问次数),date(时间)
- 选择某一时间内的条目:
SELECT * FROM access_log
WHERE date BETWEEN '2016-05-10' AND '2016-05-14';
注意,不同的数据库中,between是否包含/不包含边界上的值,是不同的
Select别名
-通过对选取的表、或者列,设置别名(简称),可以减少写的工作量
- 对列设置别名(name是n, country是c):
SELECT name AS n, country AS c FROM Websites;
- 还可以把url, alexa, country合在一起,用','分割,生成一个新的列(用到了concat这个字)
SELECT name, CONCAT(url, ', ', alexa, ', ', country) AS site_info
FROM Websites;
- 对表设置别名。比如把website的名字设为w, access_log设置为a, 选出a和w当中site_id一致的列,而且名称为“菜鸟教程”。最后展示的信息为w表中的名称,url,a中的访问量和时间
SELECT w.name, w.url, a.count, a.date
FROM Websites AS w, access_log AS a
WHERE a.site_id=w.id and w.name="菜鸟教程";