首页 > 代码库 > Mysql sql语句回顾1

Mysql sql语句回顾1

检索出不存在相同值的列表可以加上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 为结尾并且在其之前只有一个字符的所有行


不要过度使用通配符,如果其他操作能达到相同的目的,应该使用其他操作符。

在确实需要通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处,这样最慢。





Mysql sql语句回顾1