Oracle数据库 数据查询语言的基本操作

数据库

                          SOL(结构化查询语言)
                   /                       |                      \

(定义语言) DDL DML DCL(控制语言)
/
(数据查询) DQL DML(数据管理)

DCL: 数据查询语言.
查询公式: select *|字段名字1 别名,字段名字2 (as) 别名… from 表名;
执行顺序: from — select
去重 distinct 完全相同的数据才能去重
别名 : 字段 (as) 别名 表名 别名
原样输出 " " ;
字符串 ’ ’ ;
字符串拼接 || ;
伪列: 表中不存在的列; 字符串,表达式…
虚表: 没有任何数据 dual;

条件查询:select * \ 字段名字 … from 表名 where 行过滤条件
执行顺序: from–where–select
比较条件 = 、>、 <、 >=、 <=、 !=、 <>(不等);
and且、 or或、 not非;
null 不能使用条件判断,只能使用is
集合操作:
Union,并集(去重) 对两个结果集进行并集操作,不包括重复行同时进行默认规则的排序;
Union All,全集(不去重) 对两个结果集进行并集操作,包括重复行,不进行排序;Intersect,交集(找出重复) 对两个结果集进行交集操作,不包括重复行,同时进行默认规则的排序;
Minus,差集(减去重复) 对两个结果集进行差操作,不包括重复行,同时进行默认规则的排序
like:模糊查询;
like % 任意一个字符
%:零个及以上(任意个数的)的字符
_:一个字符
遇到内容中包含 % _ 使用escape(‘单个字符’)指定转义符
in 与 exists
in相当于使用or的多个等值,定值集合 ,如果存在 子查询,确保 类型相同、字
段数为1,如果记录多,效率不高,用于 一些 少量定值判断上
exists条件为true,存在记录则返回结果,后续不再继续 比较查询,与查询的字
段无关,与记录有关 存在既保留,存在即合法;
排序 : order by 字段
排序不是真实改变存储结构的顺序,而是获取的集合的顺序;
默认升序; where 条件 排序
desc 降序 asc 升序
函数—单行函数
函数分为系统内置函数 自定义函数(后期学习的 plsql 中定义);了解系统内
置函数(方法),重点掌握 to_date 、 to_char (字符和日期的转换)
根据函数的返回结果,我们将函数分为单行函数和多行函数
1、单行函数:一条记录返回一个结果
2、多行函数 组函数 聚合函数 (重点) :多条记录 返回一个结果 (重点)

日期函数:
sysdate/current_date 以date类型返回当前的日期
add_months(d,x) 返回加上x月后的日期d的值
LAST_DAY(d) 返回的所在月份的最后一天
months_between(date1,date2) 返回date1和date2之间月的数目
next_day(sysdate,‘星期一’) 下周星期

转换函数(重点***)
字符串转为日期对象: to_date(‘字符串’,日期对象的模板)
日期格式 : ‘yyyy/mm/dd hh24:mi:ss’ ;
日期转为字符串 : to_char(日期对象,‘字符串模板’);
组函数
count :统计记录数 count() -->* 或一个列名
max min: 最大值 最小值
sum:求和
avg:平均值

组函数仅在选择列表和Having子句中有效
出现组函数,select 只能有组函数或分组字段

组信息 与单条记录不能同时查询
组函数 不能用在 where中,能使用的地方 select having
null 不参与运算

分组
group by , 将符合条件的记录 进一步的分组
过滤组:having , 过滤组信息 ,表达式 同 where 一致
group by :分组
1)、select 出现分组函数,就不能使用 非分组信息,可以使用 group by 字段
2)、group by字段 可以不出现 select 中 ,反之select 除组函数外的,其他字段必
须出现在group by 中
过滤组 having :
where :过滤行记录,不能使用组函数, having:过滤组 可以使用组函数
行转列 : decode ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值