有关oracle的一些知识点

本文介绍了Oracle数据库中SQL语句的实用技巧,包括GROUP BY、HAVING、ORDER BY的使用顺序,常见聚合函数如MAX、MIN的应用,以及如何创建表、导入数据、使用外键等。还介绍了如何通过连接多个表获取所需数据,并提供了提高查询效率的方法。

有关oracle的一些知识点

1:group by,having,order by 

      它们出现的顺序依次是group by,having,order by 。

      其中  group by用于对查询结果进行分组,其后的条件必须出现在select语句中;

               having用于限制分组显示的结果,就是过 滤分组,满足条件的分组将被显示,

                          比如查询到一个部门的信息,在部门内部再进行排序处理。

     比如:select  avg(sal), max(sal) ,deptno   from  emp group by deptno  having 

                 avg(sal)>2000; 此为显示平均工资高于2000的部门的平均工资和最高工资;

2:max,min,avg,sum,count这些为oracle中的组函数

3:字节是计算机处理的文件单位,字符是对字母,汉字及其它符号的统称一个

    字母是一个字节, 一个汉字是两个节。

4:DDL数据库定义语句。如:creat , alter, drop

      DML数据库操作语句。如:select,delete,insert,update,

5:复制一张表为另外一张表

   creat   table   test1  as select * from  test2  where 1=2;此为将表test2 复制为表test1 ,

   当为1=2时不复制数据,1=1时复制数据;

6:向一张表中导入另一张表中的数据

      insert into  test3 (id,name) select id ,name from  emp where name="a";

7:所谓的外键就是指A表中的一个字段a_id2指向B中的主键id,我们就定义a_id2为A表中的外键 ;

   创建时foreign key(a_id2)reference B(id);这时B表为主表,只有B存在时A 表中的a_id2才

   有存在的意义;

8:连接n个表,需要n-1个条件否则会产生笛卡尔集,通过相应的条件来去除相同的选项;

9:exist与in的作用很相似,但它的执行效率比in高;

10:A查询 union B查询此为筛选掉重复的记录,对查询出的结果集进行排序运算, 删除重复记录再返回结果;

        A查询 union  all  B查询将两个查询结果简单的合并后返回;

11:几个函数的应用:对一张表的一个字段进行操作输出首字母大写,其余的字母小写

       思路:先确定首字母,再确定其余的字母,最后进行合并

       select  upper(substr(ename,1,1)) || lower(substr(ename,2,length(ename)-1))  from emp;

12:oracle执行查询时是先从尾部开始扫描的,一直扫到头部。

13:查询出工资高于自己所在部门平均工资的员工信息

      select  a2.name, a2.sal    from  emp a2, (select deptno,avg(sal) mysal from emp group by deptno) a1 where 

      a2.deptno= a1.deptno  and a2.sal>a1.mysal

14: oracle中“<>”表示不等于;

15:oracle可以隐式的将输入的数值转换成整数,所以一般输入时加上单引号,让其自动转换;

       插入数据时对每个字 段用单引号,让其自动转换;

16:oracle中不支持“=null”这种样式,所以在查询某个字段为空时可以这样写:

        select * from emp where brithday is null;

17:floor对给定的数字向下取整,round(12345.666,2)对给定的数字进行四舍五入

    保留两位有效数字; math.round(-8.9)=-9表示在原有数值的基础上加0.5再向下取整;

18:insert into test (name,pass) select name,pass from test;此为无限自增加语句;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值