《MySQL必知必会》——查询语句
查询语句是使用数据库的基本语法,为了使用SELECT检索表数据,必须至少给出两条信息——想选择什么数据,以及从什么地方选择。
检索数据
-
检索单个列
SELECT name from tables;
此时查询出来的数据是不带任何排序的。
-
检索多个列
SELECT id,name,price from tables;
以上是列举出要检索的三个列,如果要检索出所有的列,可以使用通配符(*)来返回表中所有的列:
SELECT * from tables;
-
检索不同的行
如果检索出来的结果不想每个值都出现,可以使用DISTINCT关键字来指示mysql返回不同的值。SELECT DISTINCT name from tables;
DISTINCT 关键字应用于所有列而不仅是前置它的列。
-
限制结果
如果只需要返回表中的前几行,可以使用LIMIT子句:SELECT name from tables LIMIT 5;
这里返回的是从0-4行数据。如果要指定返回中间的几行:
SELECT name from tables LIMIT 3,4;
表示检索从行3开始的4行数据。
另外MySQL 5为了更好的表示,支持了另外一种写法:SELECT name from tables LIMIT 4 OFFSET 3 ;
排序检索数据
为了明确地排序检索出来的数据,可以使用ORDER BY子句。
-
按单个列排序
SELECT name from tables ORDER BY name ;
-
按多个列排序
SELECT name,price from tables ORDER BY name,price;
先对name进行排序,仅当有相同name时候才对结果继续进行price进行排序。如果所有name是唯一的,则不会按price排序。
-
指定排序方向
mysql默认是按升序排列,如果要指定以降序排序,使用DESC 关键字来排序:SELECT id,name from tables ORDER BY name DESC
过滤数据
使用WHERE子句可以帮助只检索出所需要的数据
-
等值过滤
MySQL在进行等职匹配时默认不区分大小写。SELECT name from tables where name ='LIMING';
-
不等值匹配
不等值的匹配有两种方式,一个是 <> ,另一个是使用!= 符号,两种方式都可以。SELECT id,name,price from tables where price <>10; SELECT id,name,price from tables where price !=10;
-
范围检索
为了检索出某个范围的值,可以使用BETWEEN子句SELECT name,price from tables WHERE price BETWEEN 5 AND 10 ;
-
空值检查
如果一个列不包含任何值,则称为空值NULL。它与0、空字符串都不同,如果要判断某个字段是不是空值,可以用 IS NULL子句SELECT name from price IS NULL ;
下一篇介绍数据过滤的各种操作符