MYSQL必知必会(二)检索,限制,排序
使用MYSQL
展示数据
SHOW DATABASES;
展示表
SHOW TABLES;
展示表列
SHOW COLUMNS FROM customers;
DESCRIBE customers;#上一句的快捷方式
检索数据
为了使用SELECT检索表数据,必须至少给出两条信息
- 想选择什么
- 从什么地方选择
检索单个列
SELECT prod_name
FROM products;
检索多个列
SELECT prod_name,prod_name,prod_price
FROM products;
检索所有列
SELECT *
FROM products;
检索不同的行
SELECT distinct vend_id
FROM products;
不能部分使用DISTINCT
DISTINCT关键字应用于所有列而不仅是前置它的列。如果给出SELECT DISTINCT vend_id, prod_price,除非指定的两个列都不同,否则所有行都将被检索出来
限制结果
SELECT语句返回所有匹配的行,它们可能是指定表中的每个行。
为了返回第一行或前几行,可使用LIMIT子句
SELECT prod_name
FROM products
LIMIT 5; ##LIMIT 5指示MySQL返回不多于5行
为得出下一个5行,可指定要检索的开始行和行数
LIMIT 数字1,数字2:第一个数为开始位置,第二个数为要检索的行数
SELECT prod_name
FROM products
LIMIT 5,5;## LIMIT 5, 5指示MySQL返回从行5开始的5行
- 行0
检索出来的第一行为行0而不是行1。因此,LIMIT 1, 1将检索出第二行而不是第一行。 - 在行数不够时
LIMIT中指定要检索的行数为检索的最大行数。如果没有足够的行(例如,给出LIMIT 10, 5,但只有13行),MySQL将只返回它能返回的那么多行
使用完全限定的表名
SELECT products.prod_name
FROM products;##表名也可以限定
排序检索数据
按单个列排序
SELECT prod_name
FROM products
ORDER BY prod_name;
按多个列排序
SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price,prod_name;##先按照价格排序,再按照名字进行排序
指定排序方向
SELECT prod_id,prod_price,prod_name
FROM products
ORDER BY prod_price DESC;##降序排列,贵的在前面,默认为ASC升序
在多个列上降序排序
如果想在多个列上进行降序排序,必须对每个列指定DESC关键字
ORDER BY 与LIMIT结合
使用ORDER BY和LIMIT的组合
能够找出一个列中最高或最低的值。
SELECT prod_price
FROM products
ORDER BY prod_price DESC
LIMIT 1;##找出最贵的,告诉mysql只返回一行
注: 在给出ORDER BY子句时,应该保证它位于FROM子句之后。如果使用LIMIT,它必须位于ORDER BY之后