SQL Plus

选择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 中使用 REGEXPNOT 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=”菜鸟教程”;

    原文作者:西瓜三茶
    原文地址: https://www.jianshu.com/p/08c6f79e3639
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞