Mysql教程

10.1基本查询语句

查询数据是数据库操作中最常用的操作。通过对数据库的查询,用户可以从数据库中获取需要的数据。数据库中可能包含着无数的表,表中可能包含着无数的记录。因此, 获得所需的数据并非易事。MySQL中可以使用SELECT语句来査询数据。根据查询的条件的不同,数据库系统会找到不同的数据。通过SELECT语句可以很方便地获取所需的信息。

MySQL中, SELECT的基本语法形式如下:

SELECT 属性列表 FROM表名和视图列表 [WHERE条件表达式1][GROUP BY属性名1 [HAVING条件表达式2]] [ORDER BY 属性名2 [ ASC | DESC ]]

其中,“属性列表”参数表示需要查询的字段名;“表名和视图列表”参数表示从此 处指定的表或者视图中查询数据,表和视图可以有多个;“条件表达式1”参数指定查询 条件;“属性名1”参数指按该字段中的数据进行分组;“条件表达式2”参数表示满足该 表达式的数据才能输出;“属性名2”参数指按该字段中的数据进行排序,排序方式由ASC和DESC两个参数指出;ASC参数表示按升序的顺序进行排序,这是默认参数;DESC*参数表示按降序的顺序进行排序。

说明:升序表示值按从小到大的顺序排列。例如,{1,2,3}这个顺序就是升序。降序表示值按从大到小的顺序排列.例如,{3,2,1}这个顺序就是降序。对记录进行排序时,如果没有指定是ASC还是DESC,默认情况下是ASC。

如果有WHERE子句,就按照“条件表达式1 ”指定的条件进行查询;如果没有WHERE子句,就査询所有记录。 如果有GROUP BY子句,就按照“属性名1”指定的字段进行分组;如果GROUP BY子句后带着HAVING关键字,那么只有满足“条件表达式2”中指定的条件的才能够输出。 GROUP BY子句通常和COUNT()SUM()等聚合函数一起使用。 如果有ORDERBY子句,就按照“属性名2”指定的字段进行排序。排序方式由“ASC” 和“DESC”两个参数指出。默认的情况下是“ASC”。

【示例10-1】下面是一个简单SELECT语句来查询employee表。SELECT语句的代码如下:

SELECT num,name,age,sex,homeaddr FROM employee;

语句执行如下:

mysql> select num ,name,age,sex,homeaddress FROM employee;
+-------+--------+-------+-------+-----------------+
|  num  |  name  |  age  |  sex  |    homeaddr     |
+-------+--------+-------+-------+-----------------+
|    1  |  张三  |   26  |   男  |    北京市海淀区 |
|    2  |  李四  |   24  |   女  |    北京市昌平区 |
|    3  |  王五  |   25  |   男  |    湖南省长沙市 |
|    4  |  Aric  |   15  |   男  |    England      |
+-------+--------+-------+-------+-----------------+
4 rows in set(0.00 sec)

语句执行后,从employee表中查询出num、name、age、sex和homeaddr等5个字段的所有记录。因为没有界WHERE子句来控制查询条件,默认情况下显示了所有记录。因为没有GROUP BY子句和ORDER BY子句,记录按照employee表中存储的顺序显示。

【示例10-2】下面是一个包含WHERE子句和ORDER BY子句的SELECT语句。 SELECT语句的代码如下:

SELECT num, d_id ,name,age,sex,homeaddr FROM employee WHERE age<26 ORDER BY d_id DESC ;

该SELECT语句是指从employee表中查询出age小于26的记录,然后按照d_id字段降序的顺序进行排列。语句执行如下:

mysql> SELECT num, d_id ,name,age,sex,homeaddr FROM employee WHERE age<26 ORDER BY d_id DESC ;
+-------+--------+-------+-------+-------+-----------------+
|  num  |  d_id  | name  |  age  |  sex  |    homeaddr     |
+-------+--------+-------+-------+-------+-----------------+
|    4  |  1004  | Aric  |   15  |   男  |    England      |
|    3  |  1003  | 王五  |   25  |   男  |    湖南省长沙市 |
|    2  |  1002  | 李四  |   24  |   女  |    北京市昌平区 |
+-------+--------+-------+-------+-------+-----------------+
3 rows in set(0.00 sec)

査询结果的记录中,age字段的值都是小于26的,而且,都是按照d_id字段的数据从大到小排列的。通过这两个例子,读者可以了解SELECT语句的基本语法和使用。


关注微信获取最新动态