[TOC] ## SELECT 语句 SELECT 语句用于从表中选取数据。 结果被存储在一个结果表中(称为结果集)。 **语法** ~~~ SELECT 列名称 FROM 表名称 SELECT * FROM 表名称 SELECT 列名称 as 新列名 FROM 表名称 SELECT 列名称,列名称,... FROM 表名称 as 使用别名,可以将列别名应用于where语句中 ~~~ **实例** ~~~ mysql> select name from stu; mysql> select * from stu; mysql> select name as newname from stu; mysql> select name,qq from stu; ~~~ ## WHERE 子句 如需有条件地从表中选取数据,可将 WHERE 子句添加到 SELECT 语句。 ~~~ SELECT 列名称 FROM 表名称 WHERE 列 运算符 值 ~~~ <table class="dataintable"> <tbody> <tr> <th> 操作符 </th> <th> 描述 </th> </tr> <tr> <td> = </td> <td> 等于 </td> </tr> <tr> <td> &lt;&gt; </td> <td> 不等于 </td> </tr> <tr> <td> &gt; </td> <td> 大于 </td> </tr> <tr> <td> &lt; </td> <td> 小于 </td> </tr> <tr> <td> &gt;= </td> <td> 大于等于 </td> </tr> <tr> <td> &lt;= </td> <td> 小于等于 </td> </tr> <tr> <td> BETWEEN </td> <td> 在某个范围内 </td> </tr> <tr> <td> LIKE </td> <td> 搜索某种模式 </td> </tr> </tbody> </table> **实例** ~~~ mysql> select * from stu where name="学并思"; ~~~ ## AND 和 OR 运算符 AND 和 OR 可在 WHERE 子语句中把两个或多个条件结合起来。 ~~~ mysql>select * from stu where name="学并思" and qq="113664000"; mysql>select * from stu where name="学并思" or qq="113664000"; ~~~ ## SELECT DISTINCT 语句 在表中,可能会包含重复值。这并不成问题,不过,有时您也许希望仅仅列出不同(distinct)的值。关键词 DISTINCT 用于返回唯一不同的值。 **语法** ~~~ SELECT DISTINCT 列名称 FROM 表名称 ~~~ **实例** ~~~ mysql> select distinct sex from stu; ~~~ ## ORDER BY 语句 ORDER BY 语句用于根据指定的列对结果集进行排序。 ORDER BY 语句默认按照升序对记录进行排序。 如果您希望按照降序对记录进行排序,可以使用 DESC 关键字。 **实例** ~~~ mysql>select * from stu order by qq;//默认升序 mysql>select * from stu order by qq desc;//降序 mysql>select * from stu order by qq asc;//升序 ~~~ ## SELECR LIMIT 语句 取出部分数据记录 **语法** ~~~ SELECT 列名称 FROM 表名称 LIMIT 数量 SELECT 列名称 FROM 表名称 LIMIT 位置,数量 ~~~ **实例** ~~~ mysql> select name from stu limit 1; mysql> select name from stu limit 2,3; ~~~ ## SELECR BETWEEN 语句 操作符BETWEEN...AND会选取介于两个值之间的数据范围。这些值可以是数值、文本或者日期。 **语法** ~~~ SELECT 列名称) FROM 表名称 WHERE 列名称 BETWEEN 值1 AND 值2 ~~~ **实例** ~~~ select name from stu where age between 18 and 20; ~~~ ## SELECT IN 语句 IN 操作符允许我们在 WHERE 子句中规定多个值。 **语法** ~~~ SELECT 列名称 FROM 表名称 WHERE 列名称 IN (值1,值2,...) SELECT 列名称 FROM 表名称 WHERE 列名称 NOT IN (值1,值2,...) ~~~ **实例** ~~~ mysql> select name from stu where name in ('学并思','大牛学院'); mysql> select name from stu where name not in ('学并思','大牛学院'); ~~~ ## SELECT LIKE 语句 LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。 语法 ~~~ SELECT 列名称 FROM 表名称 WHERE 列名称 LIKE '值%' SELECT 列名称 FROM 表名称 WHERE 列名称 LIKE '%值' SELECT 列名称 FROM 表名称 WHERE 列名称 LIKE '%值%' SELECT 列名称 FROM 表名称 WHERE 列名称 NOT LIKE '%值%' ~~~ 实例 ~~~ mysql> select name from stu where name like '学%'; mysql> select name from stu where name like '%并'; mysql> select name from stu where name like '%思%'; mysql> select name from stu where name not like '%学%'; ~~~ ## SELECT IS NULL 语句 判断字段值是否为空 **语法** ~~~ SELECT 列名称 FROM 表名称 WHERE 列名称 IS NULL SELECT 列名称 FROM 表名称 WHERE 列名称 IS NOT NULL ~~~ **实例** ~~~ mysql> select name from stu where qq is null; mysql> select name from stu where qq is not null; ~~~ ## SELECT IF 语句 在结果集中进行判断 **语法** ~~~ SELECT IF(表达式,值1,值2) FROM 表名称 SELECT IFNULL(列名称,值) FROM 表名称 ~~~ **实例** ~~~ mysql> select if(age>20,'中年','少年') from stu; mysql> select ifnull(qq,'110112114') from stu; ~~~ ## rand() 函数 通过rand()函数结合select语句可以方便的得到随机结果集,这在项目开 发中经常被使用到 **语法** ~~~ SELECT 列名称 FROM 表名称 ORDER BY RAND() LIMIT 数量 ~~~ **实例** ~~~ mysql > select name from stu order by rand() limit 6; ~~~ >[danger]练习:随机显示2篇文章。 查找所有姓李的同学。 查找名字中包含里的并的学生。 学并思学习手册 Copyright © 学并思。