查询数据SELECT

1.select检索数据

语法说明:

SELECT:查询动作关键字,也是必须关键字

[DISTINCTIALL]:描述列表字段中的数据是否去除重复记录

select_list:需要查询的字段列表,也可以说是占位符。可以是一个字段,也可以是多个字段

FROM:必须关键字,表示数据的来源

[where_clause]:查询的WHERE条件部分

[group_by_clause]:GROUP BY子句部分

[HAVING condition]:HAVING子句部分

[order_by_clause]:排序

schema:模式名称

table|view:表达式

c_alias:别名

SELECT语句中允许利用表达式或函数对符合条件的数据进行处理

2.获取指定字段的数据

实例:检索PRODUCTINFO部分字段

SELECT productid,productname,productprice FROM productinfo;

使用查询时,可以指定某个模式下的表或视图的列,以上的查询语句也可以使用下面形式的脚本替代

SELECT scott.productinfo.productid,productinfo.productname,productinfo.productprice FROM scott.productinfo

语法说明:

scott:当前模式名称

productinfo:当前模式下的表名称

3.获取所有字段的数据

实例:查询所有字段数据,在SQL*Plus执行语句

SELECT * FROM productinfo

下面执行语句的效果和上面一致

SELECT productid,productname,productprice,quantity,category,desperation,origin FROM productinfo;

注意:虽然使用星号查询数据比较方便,但这里不建议使用,我们应该明确返回自己需要列的值,而不是把所有的数据全部返回

(1)查询明确的列在执行效率上比使用通配符(*)要高

(2)只返回必要的列的数据可以减少网络消耗

(3)如果使用通配符(*)返回所有列的数据,党在表中增加新的紫端时,有可能引起应用程序的异常

4.使用别名替代表中的字段名

表中的字段名称通常是英文的,SELECT语句中列名允许我们指定别名

实例:查询使用别名,要求为查询出来的字段都加上汉字的别名

SELECT productid 产品编号,productname AS 产品名称,productprice AS 产品价格 FROM productinfo;

5.使用表达式操作查询的字段

可以针对某个列(字段)使用表达式,这样查询出来的结果就是修改后的数据,但是数据库里的数据不会被修改

实例:查询中使用表达式

SELECT productid,productname,productprice ||''||1.25||'='||productprice1.25 AS new_productprice FROM productinfo;

6.使用函数操作查询的字段

查询过程中检索的列允许使用函数对其操作,如果仅仅是查询,那么更多的是利用函数对数据进行类型转换。

实例:查询中使用函数操作字段

SELECT productid 产品编号,subStr(productid,1,6)as 截取后的编号,productname AS 产品名称,productprice AS 产品价格FROM productinfo;

7.去除检索数据中的重复记录

当查询数据时有可能遇到重复记录,利用DISTINCT关键字可以去除重复的数据

1.查看产品类型编码数据

SELECT category 产品类型 FROMproductinfo;

2.去除重复的产品类型编码数据

SELECT distinct(categrory) 产品类型 FROM productinfo;

DISTINCT后面如果是多个列名,把这些列名看做一个整体。来去除重复记录

posted @ 2021-10-03 14:39  晚风将至  阅读(302)  评论(0编辑  收藏  举报