SELECT 语句是最常用的查询语句,使用方式有些复杂,但功能相当强大。
SELECT 语句的基本语法如下:
select select_list //要查询的内容,选择哪些列 |
from 数据表名 //指定数据表 |
where primary_constraint //查询时需要满足的条件,行必须满足的条件 |
group by grouping_columns //如何对结果进行分组 |
order by sorting_columns //如何对结果进行排序 |
having secondary_constraint //查询时满足的第二条件 |
limit count //限定输出的查询结果 |
1. select_list
设置查询内容,如果要查询表中所有列,可以将其设置为“*”;如果要查询表中某一列或多列,则直接输入列名,并以“,”为分隔符。
例如:,查询 tb_mrbook 数据库中所有列,和查询 user 和 pass 列的代码如下:
select * from tb_mrbook; select user ,pass from tb_mrbook;
2. table_list( 数据表名)
指定查询的数据表。即可以从一个数据表中查询,也可以从多个数据表中进行查询,多个数据表之间用”,”进行分隔,并且通过 where 子句使用连接运算来确定表之间的联系。例如,从tb_mrbook 和 tb_bookinfo 数据表中查询bookname= 'MySOL 快速入门' 的作者和价格,其代码如下:
select tb_mrbook.id, tb_mrbook.bookname, -> author,price from tb_mrbook ,tb_bookinfo ->where tb_mrbook.bookname=tb_bookinfo.bookmame and ->tb_bookinfo.bookname='MySQL快速入门';在上面的SQL 语句中,因为两个表都有 id 字段和 bookname 字段,为了告诉服务器要显示的是哪个表中的字段信息,要加上前缀。语法如下:
表名.字段名
tb_mrbook.bookname= tb_bookinfo.bookname 将表 tb_mrbook 和 tb_bookinfo 连接起来,叫做等同连接: 如果不使用tb_mrbook.bookname= tb_bookinfo.bookname,那么产生的结果将是两个表的笛卡尔积,叫做全连接。
3. where 条件语句
在使用查询语句时,如要从很多的记录中查询出想要的记录,就需要一个查询的条件。只有设定了查询的条件,查询才有实际的意义。设定查询条件应用的是where 子句。
在使用where 子句时,需要使用一些比较运算符,常用比较运算符如下表:
运算符 | 名称 | 示例 | 运算符 | 名称 | 示例 |
= | 等于 | id=5 | Is not null | Id is not null | |
> | 大于 | id>5 | Between | Id between 1 and 15 | |
< | 小于 | id>5 | in | Id in (3,4,5) | |
>= | 大于等于 | id>=5 | Not in | Name not in (shi,li) | |
<= | 小于等于 | id<=5 | Like | 模式匹配 | Name like (" shi%") |
!=或<> | 不等于 | id!=5 | not like | 模式匹配 | Name like (" shi%") |
Is null | id is null | Regexp | 常规表达式 | Name 正则表达式 |