数据库学习(一)——select语句

一.检索数据
1.SELECT prod_name FROM products;--//从表products中检索一个名为prod_name的列。

2.SELECT prod_id,prod_name,prod_price FROM products;--//从表products中检索名为prod_id,prod_name,prode_price的列。

3.SELECT * FROM prdoucts;--//检索表products中的所有的列。

4.SELECT vend_id FROM products;//检索表products中的名为vend_id的列。

5.SELECT DISTINCT vend_id FROM products;//检索表products中的名为vend_id的列,但返回不同的数据。

6.SELECT DISTINCT vend_id,prod_price FROM products;//检索表products中的名为vend_id的列,返回不同的数据,检索名为prod_price的列。

7.SELECT prod_name FROM products LIMIT 5;//返回行不多于5行。

8.SELECT prod_name FROM products LIMIT 5,5;//5,5 开始位置,检索行数(行号从0开始)

9.SELECT products.prod_name FROM products;//完全限定的表名
二.排序数据
1.SELECT prod_name FROM products;//无排序

2.SELECT prod_name FROM products ORDER BY prod_name;//以prod_name的字母顺序排序

3.SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price,prod_name;//先按price再按name排序。

4.SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC;//按价格降序排序。

5.SELECT prod_id,prod_price,prod_name FROM products ORDER BY prod_price DESC,prod_name;//先按价格降序排列,再按name顺序排序。(如要在多个列上以降序排序,则必须对每个列指定DESC关键字)

6.SELECT prod_price FROM products ORDER BY prod_price LIMIT 1;//使用组合关键字找出最贵物品(ORDER BY 和 LIMIT 语句的顺序不能改变)
三.过滤数据
1.SELECT prod_name,prod_price FROM products WHERE prod_price=2.50;//从products检索两个列,返回prod_price的值为2.50的行。

2.条件操作符:

=,<>(不等于),!=,<,<=,>,>=

3.SELECT prod_name,prod_price FROM products WHERE prod_nam='fuse';//从products检索两个列,返回prod_name的值为fuse的行。

4.SELECT prod_name,prod_price FROM products WHERE prod_price<10;//

5.SELECT prod_name,prod_price FROM products WHERE prod_price<=10;

6.SELECT prod_id,prod_name FROM products WHERE prod_id<>1003;//

7.SELECT prod_name,prod_price FROM products WHERE prod_price BETWEEN 5 AND 10;//检索价格在5~10之间的产品(包括5和10)。

8.SELECT prod_name FROM products WHERE prod_price is NULL;//

9.SELECT prod_id,prod_price,prod_name FROM products WHERE vend_id=1003 AND prod_price<=10;

10.SELECT prod_name,prod_price FROM products WHERE vend_id=1002 OR vend_id=1003;

11.SELECT prod_name,prod_price FROM product WHERE vend_id=1002 OR vend_id=1003 AND prod_price>=10;//返回id为1002 和i d为1003且价格大于10的行(and的优先级高于or先结合and前后再结合or)

12,SELECT prod_name,prod_price FROM product WHERE (vend_id=1002 OR vend_id=1003) AND prod_price>=10//返回id为1002或1003 且 价格大于10的行。

13.SELECT prod_name,prod_price FROM product WHERE vend_id IN (1002,1003) ORDER BY prod_name;//返回id为1002,1003,所制造产品的名字。in的优点相比于OR,1.更加直观清楚。2.执行更快。3.可包含其他SELECT语句

14.SELECT prod_name,prod_price FROM product WHERE vend_id NOT IN (1002,1003) ORDER BY prod_name;//
四.用通配符进行过滤
1.%表示任何字符出现任意次数

SELECT prod_id,prod_name FROM product WHERE prod_name like 'jet%';//‘jet%’表示以jet为开头大的词,%告诉MySQL接受jet以后的任意字符。

SELECT prod_id,prod_name FROM product WHERE prod_name like '%anvil%';

SELECT prod_id,prod_name FROM product WHERE prod_name like 's%e';

2._表示任意单个字符

SELECT prod_id,prod_name FROM product WHERE prod_name like '_ ton anvil';//返回例如1 ton anvil。

3.不要过度使用通配符,如果其他操作能达到,优先使用其他

4.不要在搜索模式的开头处

posted @ 2024-08-30 11:45  Lynne0224  阅读(32)  评论(0编辑  收藏  举报