1.简单检索

1)检索单个列:select 列名 from 表名; 如: select prod_name from products;

2)检索多个列:列名之间用逗号(,)隔开,如:select prod_name,prod_price from products;

3)检索所有列:用星号(*)通配符来表示,如:select * from products;

4)检索不同的行:用distinct可以检索出有不同值的列表,如:select distinct vend_id from products;

5)限制检索结果:可以用limit返回指定的行。如:select prod_name from products limit 5;即返回前五行的数据;select prod_name from products limit 3,4;即返回从行3开始的4行。特别要注意:检索出来的第一行是行0而不是行1。

2.排序检索数据

1)按一列排序:用order by;如:select prod_name from products order by prod_name;

2)按多个列排序:列名之间用逗号分开即可。如:select prod_id,prod_price,prod_name fromproducts order by prod_price,prod_name;

3)指定排序方向:order by默认是升序排序,为了进行降序排序,必须指定desc关键字。如:select prod_id,prod_price from products order byprod_price desc。特别注意:desc关键字只应用到直接位于其前面的列名,如果想在多个列上进行降序排序,必须对每个列指定desc关键字。

3.使用where子句过滤数据

1)简单过滤语句:如:select prod_name,prod_price from products whereprod_price = 2.50;

2)where子句的操作符: = :等于;   <>:不等于;         !=:不等于;          <:小于;   

   <=:小于等于;    >:大于;    >=:大于等于;    between:在指定的两个值之间

3)and操作符:用在where子句中的关键字,用来指示检索满足所有给定条件的行。如:select prod_name from products where vend_id= 1003 and prod_price <= 10;

4)or操作符:指示检索匹配任一条件的行。如:select prod_name,prod_price from productswhere vend_id = 1002 or vend_id = 1003;

5)计算次序:SQL在处理or操作符前,优先处理and操作符。因为圆括号具有较and和or操作符高的计算次序,所以可以用圆括号来限制计算次序。如:select prod_name,prod_price from productswhere (vend_id = 1002 or vend_id = 1003) and prod_price >= 10;

6)in操作符:in操作符用来指定条件范围,范围中的每个条件都可以进行匹配。in取合法值的由逗号分隔的清单,全部都括在圆括号中。如:select prod_name,prod_price from productswhere vend_id in (1002,1003) order by prod_name;

7)not操作符:否定之后所跟的任何条件。如:select prod_name,prod_price from productswhere vend_id not in (1002,1003) order by prod_name;

4.用通配符进行过滤

1)为在搜索子句中使用通配符,必须使用like操作符。like指示mysql,后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较。

2)百分号(%)通配符:最常使用的通配符是百分号(%),在搜索中,%表示任何字符出现任意次数。如:select prod_id,prod_name from products where prod_namelike ‘jet%’;

3)下划线(_)通配符:下划线的用途与%一样,但下划线只匹配单个字符而不是多个字符。如:select prod_id,prod_name from products whereprod_name like ‘_ ton anvil’;

5.用正则表达式进行搜索

1)为了使用正则表达式,必须使用regexp操作符。如:select prod_name from products where prod_name regexp ‘1000’;

2)正则表达式字符的含义:

.:表示匹配任意一个字符;

|:为正则表达式的or操作符,表示匹配其中之一;

[ ]:是另一种形式的or语句,如,select prod_name from products where prod_name regexp ‘[1-5]Ton’ order by prod_name;

\\:用来匹配特殊字符;

*:0个或者多个匹配;

+:1个或者多个匹配;

?:0个或1个匹配;

{n}:指定数目的匹配;

{n,}:不少于指定数目的匹配;

{n,m}:匹配书目的范围;

^:文本的开始;

$:文本的结尾。