MYSQL使用之检索数据
1、了解数据库和表
SHOW DATABASES;
返回可用数据库的一个列表。
USE 数据库名;
使用数据库。
SHOW TABLES;
获得一个数据库内的表的列表。
SHOW也可以用来显示表列:SHOW COLUMNS FROM 表名;
对每个字段返回一行,行中包含字段名、数据类型、是否允许NULL、键信息、默认值以及其他信息。
DESCRIBE customers;
是SHOW COLUMNS FROM 表名;
的一种快捷方式。
2、检 索 数 据
(1)检索单个列
SELECT name FROM use_name;
从use_name表中检索一个名为name的列。
- 结束SQL语句:多条SQL语句必须以分号(;)分隔。如果你使用的是mysql命令行,必须加上分号来结束SQL语句。
- SQL语句和大小写:SQL语句不区分大小写。许多SQL开发人员喜欢对所有SQL关键字使用大写,而对所有列和表名使用小写,这样做使代码更易于阅读和调试。
(2)检索多个列
SELECT id,name,price FROM use_name;
从use_name表中检索名为id、name和price的列。
在选择多个列时,一定要在列名之间加上逗号,但最后一个列名后不加。
(3)检索所有列
SELECT * FROM use_name;
使用通配符:若确实需要表中的每个列,否则最好别使用*通配符。使用通配符通常会降低检索和应用程序的性能。
(4)检索不同的行
SELECT DISTINCT id FROM use_name;
只返回不同(唯一)的id行。如果使用DISTINCT关键字,它必须直接放在列名的前面。
注意:不能部分使用DISTINCT DISTINCT关键字应用于所有列而不仅是前置它的列。如果给SELECT DISTINCT id, name,除非指定的两个列都不同,否则所有行都将被检索出来。
(5)限制结果
SELECT语句返回所有匹配的行,它们可能是指定表中的每个行。为了返回第一行或前几行,可使用LIMIT子句。
SELECT name FROM use_name LIMIT 5;
LIMIT 5表示MySQL返回不多于5行。
SELECT name FROM use_name LIMIT 5,5;
LIMIT 5, 5表示MySQL返回从行5开始的5行。第一个数为开始位置,第二个数为要检索的行数。
注意:带一个值的LIMIT总是从第一行开始,给出的数为返回的行数。 带两个值的LIMIT可以指定从行号为第一个值的位置开始。
行0:检索出来的第一行为行0而不是行1。因此,LIMIT 1, 1将检索出第二行而不是第一行。在行数不够时 LIMIT中指定要检索的行数为检索的最大行数。
(6)使用完全限定的表名
SELECT use_name.name FROM use_name;
3、排序检索数据
(1)排序数据
为了明确地排序用SELECT语句检索出的数据,可使用ORDER BY子句。ORDER BY子句取一个或多个列的名字,据此对输出进行排序。
例如:SELECT name FROM use_name ORDER BY name;
(2)按多个列排序
SELECT id,price,name FROM use_name ORDER BY price,name;
首先按price排序,然后再按name排序。
为了按多个列排序,只要指定列名,列名之间用逗号分开即可。
(3)指定排序方向
为了进行降序排序,必须指定DESC关键字。
SELECT id,price,name FROM use_name ORDER BY price DESC;
多个列排序:SELECT id,price,name FROM use_name ORDER BY price DESC,name;
注意:DESC关键字只应用到直接位于其前面的列名。如果想在多个列上进行降序排序,必须对每个列指定DESC关键字。