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="菜鸟教程";

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 创建表 语法 create table 表名(列+类型,列+类型); create table Websites ...
    尼尔君阅读 441评论 0 1
  • mysql和oracle语法都差不多,但还是有差别,查阅资料后我总结了一套完整的sql语句大全,供初学者学习 1....
    谭鱼鱼阅读 1,884评论 0 4
  • 【感悟】成功的路上只需三步: 第一步:【相信】 选择之前可以怀疑,选择之后必须相信。 第二步:【行动】 给梦想插上...
    王淦阅读 192评论 0 0
  • 代码均已由Adobe DreamweaverCC 2017版 实现通过,且均达到预期效果 第一题的代码如下: 第二...
    NPU_孙雷阅读 225评论 0 0
  • 姓名:母光艳 公司:宁波贞观电器 第235期,利他二组 【日精进打卡第170天】 【知-学习】 诵读《六项精进》大...
    母光焱阅读 170评论 0 0