SQL必知必会-笔记(二)数据库基本操作(上)
1. 检索数据
1.只检索前5行数据
select prod_name from Products limit 5;
2.指定从哪儿开始及检索的行数
select prod_name from Products limit 2 offset 6;
从第6行开始的2行数据,注意,第一个被检索的是0行,而不是第一行。结果如下:
当然,也可以写成
select prod_name from Products limit 6,2;
2. 使用注释
- 使用
-
-- 这是一行注释
select prod_name from Products limit 6,2;
- 使用
#
# select prod_name from Products limit 2 offset 6;
- 使用
/* */
3. 排序检索数据
需要明白的一点是,检索出的数据并不是随机显示的,数据一般将以它在底层表中出现的顺序显示,但是这个顺序会受到DBMS重用回收存储空间方式的影响。
所以,关系数据库设计理论认为,如果不明确规定排序顺序,则不应该假定检索出的数据的顺序有任何意义。
使用ORDER BY
排序检索出的数据。
SELECT prod_name FROM Products ORDER BY prod_price;
需要注意的是,应该保证order by
是SELECT
语句中的最后一条子语句,如果不是,会出现错误信息
按多个列排序
例如,先按照价格,在按照名称排序
SELECT prod_name,prod_price FROM Products ORDER BY prod_price,prod_name;
指定排序方向
数据排序默认升序,为了降序排列,可以使用DESC
关键字(与此相对应的是ASC
关键字,升序)
SELECT prod_name,prod_price FROM Products ORDER BY prod_price DESC ;
会得到如下结果
另外,DESC
只应用到直接位于其前面的列名,比如
SELECT prod_name,prod_price FROM Products ORDER BY prod_price DESC ,prod_name;
会得到如下结果,降序排列prod_price后,prod_name仍然是按照升序排列
4. 过滤数据
使用WHERE
子句中指定的搜索条件进行过滤,WHERE
子句在表名之后给出。
select prod_name,prod_price from Products where prod_price = 3.49;
注意,这里仍然需要注意,如果order by
和WHERE
同时使用的话,应该让order by
位于WHERE
之后。
select prod_name,prod_price from Products where prod_price BETWEEN 3.49 AND 9.49 order by prod_price;