SQL必知必会— —检索数据(二)

1、select语句

select的用途就是从一个表或多个表中检索信息

注意:
1、关键字:作为sql组成部分的保留字,关键字不能用作表或列的名字
2、sql是一种语言而不是一个应用程序

2、检索单个列

SELECT pro_name 
FROM Products;
#上述语句利用SELECT语句从Prodcts表中检索一个名为prod_name的列。

注意:
1、如果没有对查询结果排序,那么返回的数据是没有特点的顺序,也就是说多次查询的结果可能不一样。返回数据的顺序可能是数据被添加到表中的顺序,也可能不是。只要返回相同数目的行,就是正常的。
2、多条sql语句必须以 ; 分割。
3、多数dbms中不需要再sql语句后加分号,但有的会,所有总是加上分号是没有坏处的
4、sql不区分大小写,但是许多开发人员喜欢对sql关键字使用大写,对列明和表名使用小写,但是表名,列名,值可能会不同(这有赖于具体的dbms及其如何配置)。
5、多数开发人员认为,将sql语句分为多行更容易阅读和调式

3、检索多个列

SELECT prod_id , prod_name , prod_price 
FROM Products;

注意:
1、列名之间加逗号,但是最后一个列名不加逗号。
2、SQL语句一般返回原始的,无格式的数据。数据格式化是表示问题,而不是检索问题。

4、检索所有列

SELECT * 
FROM Products;

注意:
1、列的顺序一般是列在表定义中出现的物理顺序,但并不总是如此。
2、除非你确实需要表中的每一列,否则最好别使用通配符*,会降低检索和应用程序的性能。
3、使用通配符有一个大优点,检索未知列。

5、检索不同的值

SELECT DISTINCT vend_id 
FROM Products;
#检索products中不同的产品供应商的ID

注意:
1、DISTINCT 关键字必须直接放在所有列名的前面
2、DISTINCT 关键字作用于所有的列,不能部分使用DISTINCT (除非指定的列完全相同,不然不会被去重)

6、限制结果

如果你只想返回第一行或一定数量的行,那该如何了?这是可行的,遗憾的是各种数据库中这以SQL实现并不相同。

6.1、 SQL Server和Access

SELECT TOP 5 prod_name
FROM Product;

6.2、 DB2

SELECT prod_name
FROM products
FETCH FIRST 5 ROWS ONLY;

6.3、Oracle

SELECT prod_name
FROM products
WHERE ROWNUM <=5 ;

6.4、 Mysql,MariaDB,PostgreSQL或者SQLite

SELECT prod_name
FROM products
LIMIT 5;
SELECT prod_name
FROM products
LIMIT 5 OFFSET 5 ;
#返回从第五行起(包含第五行)的五行数据

注意:
1、第一个被检索的是第0行,而不是第一行
2、MsySQL,MariaDB和SQLite支持简化版的LIMIT 4 OFF 3语句,即LIMIT 3,4.使用这个语法,逗号之前的值对应OFFSET,逗号之后的值对应LIMIT。

7、使用注释

使用注释的原因:
1、随着SQL语句变长,复杂性增加,需要添加一些描述性的注释,便于自己参考,或者供后续参与人员参考。
2、可能包含程序员的联系方式,程序描述。
3、暂时停止要执行的sql代码。

select prod_name from Products;		--这是一条注释
#使用--(两个连字符)嵌入行内,--之后的文本就是注释
#这是一条注释
SELECT prod_name 
FROM Products;
#在一行的开始处使用#,这一整行都将作为注释
/* SELECT prod_name , vend_id 
FROM Products;*/
SELECT prod_name 
FROM Products;
#注释从/* 开始,到*/结束,之间的内容都是注释

猜你喜欢

转载自blog.csdn.net/qq_28285403/article/details/90199744