语法说明:
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)查询明确的列在执行效率上比使用通配符(*)要高
(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;