用户对表或视图最常进行的操作就是检索数据,检索数据可以通过 select 语句来实现,该语句由多个子句组成,通过这些子句完成筛选、投影和连接等各种数据操作,最终得到想要的结果。
语法:
select { [ distinct | all ] columns | * }
[ into table_name ]
from { tables | views | other select }
[ where conditions]
[ group by columns ]
[ having conditions ]
[ order by columns ]
- select子句 :用于选择数据表、视图中的列
- into 子句:用于将原表的结构和数据插入新表中
- from 子句:用于指定数据来源,包括表,视图和其他select 语句。
- where 子句:用于检索的数据进行筛选
- group by 子句:用于检索结果进行分组显示
- having 子句:用于从使用group by子句分组后的查询结果中筛选数据行
- order by 子句:用来对结果集进行排序(包括升序和降序)
一、简单查询
只包含select 子句和 from 子句的查询就是简单查询,同时也是select语句的必选项。
select 子句用于选择想要在查询结果中显示的列,这些列可以用列名来表示,也可以使用星号(*)来表示。查询数据时,数据将按照select 子句后面指定的列名顺序来显示;如果使用星号,则表示查询所有的列,这时候按照表结构的自然顺序来显示。
1、检索所有的列
如果想要检索知道数据表的所有列,在select 子句后面加星号来实现。
语法: select * from table_name;
注意:a、检索数据表需要注意是否属于该模式,如果是模式内部检索数据,直接使用表名;
b、如果不在指定表所属的模式内部检索数据,不仅要查看当前模式是否具有查询的权限,而且还要在表名前面驾驶所属的模式名称
c、 form 后面可以跟多个表名,每个表名直接用逗号隔开即可
2、检索指定的列
如果想要显示指定的列而不是全部的列,并且被指定列的顺序不受限制,指定部分列也称为投影操作。需要把所显示的列紧跟在select 关键字后面,每个列名用逗号隔开。
语法:select column_name1,column_name2,column_name3... from table_name;
3、带有表达式的select 子句
在使用select 语句时,对于数字数据和日期数据都可以使用算数表达式,可以使用算数运算法,包括加、减、乘、除和括号操作。不仅可以执行单独数学运算,还可以执行单独的日期运算以及与列名关联的运算。
语法:select salary*(1+0.1,sal from emp;
4、为列指定列名
为了方便查看查询结果,可以为需要的列名指定别名。在 Oracle 系统中,可以使用as 关键字来指定别名,也可以什么也不用直接指定。
语法: select empno as "员工编号",ename "员工名称" from emp;
5、显示不重复记录
在默认情况下,结果集中包含所有符合查询条件的数据行,这样就可能出现重复的数据。在实际应用中,重复的数据可能不会带来太多的价值,需要去掉重复的记录,保留唯一记录即可。使用 distinct 即可实现。
语法: select distince job from emp;
二、筛选查询
三、分组查询
四、排序查询
五、多表关联查询
原文地址:https://www.cnblogs.com/niujifei/p/10921914.html