MySQL-基本查询语句

149 阅读2分钟

基本查询语句

SELECT语句是最常用的查询语句,它的使用方式有些复杂,但功能是相当强大的。SELECT语句的基本语法如下。
select selection_list        //要查询的内容,选择哪些列
from 数据表名                //指定数据表
where primary_constraint     //查询时需要满足的条件,行必须满足的条件
group by grouping_columns    //如何对结果进行分组
order by sorting_cloumns     //如何对结果进行排序
having secondary_constraint  //查询时满足的第二条件
limit count                  //限定输出的查询结果

其中使用的子句将在后面逐个介绍。下面先介绍SELECT语句的简单应用。

1.使用SELECT语句查询一个数据表

使用SELECT语句时,首先要确定所要查询的列。“*”代表所有的列。例如,查询db_database09数据库user表中的所有数据,代码如下。

mysql> use db_database09
?Database changed
?mysql> select * from user;
?+----+------+----------+--------------+
?| id | user | lxdh     | jtdz         |
?+----+------+----------+--------------+
|  1 | mr  | 12345678 | 长春市 |
?|  2 | mrsoft  | 87654321 | 四平市   |
?+----+------+----------+--------------+
?2 rows in set (0.00 sec)

这是查询整个表中所有列的操作,还可以针对表中的某一列或多列进行查询。

2.查询表中的一列或多列

针对表中的多列进行查询,只要在select后面指定要查询的列名即可,多列之间用“,”分隔。例如,查询user表中的id和lxdh,代码如下。
mysql> select id, lxdh from user ;
+----+----------+
| id | lxdh     |
+----+----------+
|  1 | 12345678 |
|  2 | 87654321 |
+----+----------+
2 rows in set (0.00 sec)

3.从一个或多个表中获取数据

使用SELECT语句进行查询,需要确定所要查询的数据在哪个表或哪些表中,在对多个表进行查询时,同样使用“,”对多个表进行分隔。

说明

在查询数据库中的数据时,如果数据中涉及中文字符串,有可能在输出时会出现乱码。那么最后在执行查询操作之前,通过set names语句设置其编码格式,然后再输出中文字符串时就不会出现乱码了。如本例中所示,应用set names语句设置其编码格式为gb2312。
还可以在WHERE子句中使用连接运算来确定表之间的联系,然后根据这个条件返回查询结果。例如,从家庭收入表(jtsr)中查询出指定用户的家庭收入数据,条件是用户的ID为1,代码如下。

mysql> select jtsr from user,jtsr
-> where  user.user=jtsr.user and user.id=1 ;
+------+
| jtsr |
+------+
| 10000 |
+------+
2 rows in set (0.00 sec)

其中,user.user = jtsr.user将表user和jtsr连接起来,叫作等同连接;如果不使用user.user= jtsr.user,那么产生的结果将是两个表的笛卡尔积,叫作全连接。