Orcal使用基础大全系列三之Oracle进阶操纵

1、分组group by XXX

         eg:select deptno ,avg(sal) from emp group  by deptno;

         :出现在select列表里的字段没有出现在组函数里面时必须出现在group by里面

         分组限定关键字having

         egselect deptno ,avg(sal) from emp group  by deptno having  avg(sal)>2000;

2、子查询+内连接

         select emp.deptno,eanme,sal from emp join (select max(sal) max_sal,deptno from emp group by deptno ) t on(emp.sal=t.max_sal and emp.deptno=t.deptno);

         查询每个部门工资最高的工人的部门号,名字和工资

         其中on为连接条的关键字

3、几种连接

         自连接:同一张表,分别取几个别名,然后把它当成几张表用

         egselect e1.ename,e2.enam from emp e1,emp e2 where e1.mgr=e2.empno

         查询员工名字和该员工上司的名字

         cross join(交叉连接):交叉相连,生成几张表的笛卡尔积,即返回的记录数为几个表的记录数乘积。

         leftouter join左连接:outer可省略,将左边全部记录拿出来和右边连接,右边没有对应数据时,左边数据依然显示。

         right outerjoin 和左连接相识

         full join全连接,左右两张表数据全部显示

4、新建视图

         视图实际上就是一个子查询或一张虚表,实际的数据还在原来的表中。

         eg: create view v$_name as select deptno ,ename from emp;

         新建的这个视图名字叫v$_name(这是命名规则,用时只需改变name的值),v$_name就相当于后面的select语句形成的表的表名

         这里select * from v$_name;的内容= select deptno ,ename from emp;

5、备份数据exp

6、回溯 rollback

7、复制一张表

         create table emp2 as select * from emp

8Oracle中默认行号字段rownum,大家可以在任何一张表查询这个字段

9commit终止事物

         正常断开:事物自动commit,终止事物

         非正常断开:自动回滚rollback,数据无改变

10、约束

         constraint[约束关键字]  name[约束名] unique[具体约束](约束作用的属性多个属性逗号隔开)

         常见约束:unique-唯一约束

                              not null -非空约束

                              primary key 主键约束

                              references[参考] table(id) -外键约束

                            constraint emp_dept_f[这是约束名] foreign key(deptno[emp表这边的]) references dept(deptno[dept表那边的主键])

被参考的外键必须为主键

11、修改表结构alter

         1、增加一个字段:alter table tableName add (字段名 类型)

         2、删除一个字段:alter table tableName drop (字段名)

         3、修改类型长度:alter table tableName modify(字段名 类型(长度));

         4、删除一个约束条件:alter table tableName drop constraint 约束名;

         5、添加约束条件:alter table tableName add constraint 约束名 foreign key(deptno) references dept(deptno)

12、数据字典表 user_tables(用户目录下的所有表)、user_views(用户目录下的视图)user_constraints(用户目录下的约束)

13、索引index

         新建索引:create index 索引名 on 表面(字段名)

         删除索引:drop index 索引名;

14、序列sequence

         create sequence 序列名 start with 2 increment by 1;

         生成一个序列,从2开始,每次加1

你可能感兴趣的:(oracle,sql)