【SQL】(二):检索数据

2020-07-09  本文已影响0人  Lottie2017

本系列为自己学习时的笔记及心得体会,转载请注明出处。

原表:

1、select语句

从一个或多个表中检索信息。

2、从表中检索单个列。


SELECT prod_name 

FROM `products`


3、从表中检索多个列。


SELECT prod_id,prod_name,prod_price 

FROM `products`


4、表中检索所有列。

使用通配符*。一般而言,出发确实需要表中每一列,否则最好别使用*通配符,这样通常会降低检索和应用程序性能。


SELECT *

FROM `products`


5、检索不同的值

检索products表中所有产品的供应商ID,结果如下:

只有三个产品供应商,但select语句返回9行。那如何检索出不同的值呢。这里使用的是 DISTINCT 关键字,它指示数据库只返回不同的值。


SELECT DISTINCT vend_id

FROM Products;


返回结果如下。该语句告诉DBMS只返回不同的(具有唯一性)的vend_id行。

使用DISTINCT关键字,它必须直接放在列名前面。

注意:DISTINCT关键字作用于所有列,不仅仅是跟在气候的那一列。如下图语句中,会把不同的vend_id和prod_price都检索出来。

6、限制结果

如果想只返回一定数量的结果该怎么办呢?在各种数据库中语句是不一样的。在SQL Server和Access中可使用 TOP关键字。


SELECT TOP 5 prod_name

FROM Products


如果使用的Oracle,需用ROWNUM:


SELECT  prod_name

FROM Products

WHERE ROWNUM <=5


如果使用Mysql,MariaDB,postgreSQL或SQLite,需要用LIMIT子句:


SELECT prod_name

FROM Products

LIMIT 5


如果是要置顶从第5行起的5行数据,需要如下语句:


SELECT prod_name

FROM Products

LIMIT 5 OFFSET 5


因为总共只有9行数据,所以从第5行开始后面只有4条数据。

注意:①第一个被检索的行是第0行,而不是第1行。

②LIMIT 5 OFFSET 5可简化为LIMIT 5, 5。

7、使用注释

①行内注释:在行后用“--”

②行内注释2:在一行的开始处用“#”标识

③多行注释:"/*... */",...内容均被注释

PS:将日期 年月日时分秒格式变为年月日格式:DATE_FORMAT(release_time,'%Y%m%d')

上一篇 下一篇

猜你喜欢

热点阅读