SQL-即查即用之简单查询

1、select语句基本结构

SELECT select_list

[ INTO new_table ]

FROM table_name

[ WHERE search_condition ]

[ GROUP BY group_by_expression ]

[ HAVING search_condition ]

[ ORDER BY order_expression [ ASC|DESC ] ];

 

参数说明

select_list :指定需要查询返回的列

[ INTO new_table ]:船舰新表并将查询结果插入新表中

FROM table_name:指定需要查询的表,也称源表

[ WHERE search_condition ]:指定用于限制返回的行的搜索条件

[ GROUP BY group_by_expression ]:根据group_by_expression列中的值将结果集分成组

[ HAVING search_condition ]:指定组和聚合的搜索条件

[ ORDER BY order_expression [ ASC|DESC ] ]:定义结果集中的行排列的顺序

 

注意

MySQL和SQL Server数据库中,SQL代码末尾的分号“;”可以省略,但是在其他数据库比如Oracle中不能省略末尾的分号

 

2.单列查询

SELECT select_list FROM table_name;

示例01 > 在goods商品信息表中,使用SELECT语句对商品名称(goods_name)进行行查询

SELECT goods_name FROM goods;

 

3.多列查询

SELECT select_list,...,select_list FROM table_name;

示例02 > 在goods商品信息表中,使用SELECT语句对商品编号(goods_id),商品名称(goods_name),市场价(market_price)进行行查询

SELECT goods_name FROM goods

 

4.查询所有的列

SELECT * FROM table_name;

示例03> 在goods_type商品类型表中,使用SELECT语句对所有的列进行查看

SELECT * FROM goods_type;

 

5.别名的应用

创建别名的四种方法:

(1)使用双引号创建别名,代码如下:

SELECT goods_name "商品名称" FROM goods;

(2)使用单引号创建别名,代码如下:

SELECT goods_name '商品名称' FROM goods;

(3)使用AS关键字创建别名,代码如下:

SELECT goods_name AS "商品名称" FROM goods;

(4)不使用引号创建别名,代码如下:

SELECT goods_name 商品名称 FROM goods;

 

6.对多个表查询时出现相同的列名

示例05>对orderform订单信息表和user_address用户收货信息表中的信息进行查询,使用语句对两个表中的列名相同的用户ID(user_id)列进行别名设置,方便查看

SELECT user_address.mobile AS "订单表中的电话号码",

user.mobile AS "用户收货信息表的电话号码", user_address.address

FROM user_address,users

WHERE user_address.user_id = users.user_id;

 

7.为计算结果设置别名

示例06> 在goods商品信息表中,通过商品市场价(market_price)减去成本价(cost_peice)来统计商品的盈利,使用SELECT语句对统计结果中出现的列设置别名

SELECT goods_name, market_price AS 市场价, cost_price AS 成本价,

(market_price-cost_peice) AS 商品盈利

From goods;

 

8.为使用聚合函数的列设置别名

示例7> 在goods商品信息表中,查询出商品表汇总市场最高价和最低价是多少,并为使用聚合函数产生的列设置别名

SELECT MAX(market_peice) AS "市场最高价", MIN(market_peice) AS "市场最低价"

FROM goods;

 

9.删除重复数据

*DISTINCT关键字可以从SELECT语句中删除重复的行,但需将其放在第一位,不要在其后面添加逗号

*DISTINCT关键字并不是指某一行,而是指不重复select输出的所有列

示例08> 在orderform订单信息表中,在SELECT语句中使用DISTINCT关键字查询出不重复的收货人信息

SELECT consignee,address,mobile FROM orderform;

SELECT DISTINCT consignee,address,mobile FROM orderform;

 

10、限制查询结果

TOP关键字可以指定返回表中的前n行数据

SELECT TOP n FROM table;

示例09> 查看goods中的前5条数据

SELECT TOP 5 goods_name, market_price FROM goods;

 

11.限制查询前n条数据

LIMIT子句可以对查询结果的记录条数进行限定,控制它输出的行数

示例10> 查看goods中的前5条数据

SELECT goods_name, market_price FROM goods LIMIT 5;

 

12.限制查询n条数据

LIMIT 还可以从查询结果的中间部分取值,首先要定义两个参数,参数1是开始读取的第一条记录的编号,参数2是要查询记录的个数

示例:查看goods商品信息表从弟3条数据开始的5条数据信息

SELECT goods_name, market_price FROM goods LIMIT 2, 5;

另一种表达方式是:

SELECT goods_name, market_price FROM goods LIMIT 2 OFFSET 5;

 

13.在Oracle中限制查询结果

示例:在goods商品信息表中查询前5条数据

SELECT goods_name, market_price FROM goods WHERE ROWNUM<=5;

 

posted @ 2019-05-14 22:39  旧时光里的小鱼儿  阅读(1349)  评论(0编辑  收藏  举报