检索出不存在相同值的列表可以加上DISTINCT关键字
SELECT DISTINCT vend_id FROM products;
可以使用LIMIT子句来限制返回结果的数量
SELECT prod_name FROM products LIMIT 5;
LIMIT子句同样拥有offset的功能,就是设定从第几条数据开始获得
SELECT prod_name FROM products LIMIT 5,5;
代表从第五个数据开始的五条数据
虽然LIMIT具有offset的功能,但是Mysql还是提供了OFFSET子句
SELECT prod_name FROM products LIMIT 5 OFFSET 5;
mysql的索引值是从0开始的
可以使用ORDER BY子句来给数据进行排序,该子句取一个或多个列的名字,据此对输出进行排序
SELECT prod_name FORM products ORDER BY prod_name;
该子句可是用非检索的列排序数据
ORDER BY子句可以选择使用多个列排序,所选列之间使用逗号隔开。
ORDER BY 子句要仿造WHERE子句之后
ORDER BY子句可以指定排序的方向(升序和降序),默认是升序,如果想变为降序需要在ORDER BY 子句的最后加上DESC
DESC关键字只应用到直接位于其前面的列名,可以使用如下的查询方式
SELECT prod_name,prod_price,prod_id FROM products ORDER BY prod_name DESC,prod_name;
WHERE 子句的操作符号中判断相等使用=判断不相等使用<>符号,和编程语言当中略显不同
通过使用BETWEEN关键字来进行范围值检查
SELECT prod_name,prod_price FROM products WHERE prod_price BETWEEN 5 AND 10;
使用IS NULL来进行空值检查
SELECT prod_name FROM products WHERE prod_price IS NULL
该语句返回没有价格的产品数据
mysql中存在几个逻辑操作符,分别是以下几个
AND OR IN NOT
SELECT prod_id,prod_price,prod_name FROM products WHERE vend_id=1003 AND prod_price<=10; 取交集
SELECT prod_name,prod_price FROM products WHERE vend_id=1002 OR vend_id=1003;取并集
SELECT prod_name,prod_price FROM products WHERE vend_id IN(1002,1003) ORDER BY prod_name; 取交集
SELECT prod_name,prod_price FROM products WHERE vend_id NOT IN(1002,1003) ORDER BY prod_name; 取并集的补集
可以使用圆括号来标记计算次序
%通配符表示任何字符出现任意次序,使用LIKE操作符
SELECT prod_id,prod_name FROM products WHERE prod_name LIKE ‘jet%’;
该查询语句会查询所有prod_name字段以jet开头的行
_通配符匹配单个任意字符
SELECT prod_id,prod_name FROM products WHERE prod_name LIKE ‘_ ton anvil’;
该查询语句查询任何以ton anvil 为结尾并且在其之前只有一个字符的所有行
不要过度使用通配符,如果其他操作能达到相同的目的,应该使用其他操作符。
在确实需要通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处,这样最慢。
--转自