数据库-检索数据

检索、去重

学习数据库无论从哪些方面入手,查永远是数据库的一大难点,我就从这方面开始来丰富自己的数据库知识。

SELECT语句的顺序

SELECT 要返回的列及表达式 FROM 从中检索数据的表 WHERE 行级过滤 GROUP BY 分组说明 HAVING 组级过滤 ORDER BY 输出排序顺序

在我们学习数据库前我们一定要记住SELECT语句,它是所有查询语句的开头,是我们学习数据库的关键,它的用途是让我们可以在一个或者多个表中查询我们想要的文件信息。

而我们想要使用SELECT语句就必须给出基本的两个条件————想选择什么,以及从什么地方选择。

检索单个列

例如我们要检索单个列

SELECT prod_name
FROM Products;

这一小段程序表示了我要在Products表中检索prod_name列的内容将这个表中的这个列所有内容全部都显示出来。

在SQL语句中我们可以把代码写在一行中也可以写在多行中,他们所表示的方法是一样的。

检索多个列

在检索多个列他们其实是差不多的,没有什么太大的改变。

SELECT prod_id, prod_name, prod_price
FROM Products;

利用逗号隔开需要查询的每一列。

还有记住一点程序只有在最后一句话后写分号。

检索所有列

而查询所有列则要将上面各列的名字换成*,就代表检索所有列的数值。

检索不同的值

将检索出来的值去除重复的值,利用DISTINCT关键字来让他们的值没有重复的。

SELECT DISTINCT vend_id
FROM Products;

DISTINCT关键字添加到列名前,将检索出来的列中的值去重。

DISTINCT函数可以用到count()中但不能用在COUNT(*)中。DISTINCT参数只能使用于列名,不能用于计算字段或者表达式。

限制结果输出

利用TOP关键字来限制输出时我们输出数据的多少行。

SELECT TOP 5 prod_name
FROM Products;

表示将查出的数据显示前五行。

我们也可以用百分比的方式输出数据:

SELECT TOP 5 percent prod_name
FROM Products;

表示输出前5%的数据。

排序检索数据

排序数据

利用ORDER BY子句来将检索按字母顺序排序,将其中检索出来的列排序。还有一点要注意。

单列排序

```sql
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 2, 3;

指定排序方向

我们的检索排序当然不限于只有升序没有降序,而为了将检索数据排列为降序,我们应当在排序的最后面加上DESC。 例如:

SELECT prod_id, prod_price, prod_name
FROM Products
ORDER BY prod_price DESC;

排序如果我们在ORDER BY子句后,填入关键字而没有标明他是升序还是降序,那我们默认为升序即ASC。但如果我们需要以降序的方式排列查询结果,我们就需要将DESC填到最后面,表示这个检索结果要为降序排列。

Posts in this Series