Oracle常用语法详解

来源:互联网 发布:最近好听的网络歌2017 编辑:程序博客网 时间:2024/06/14 01:20

1.创建表

create table emp();

2.舍去表

truncate table emp; 立即删除表的所有记录 并且不能回滚

3.删除表

drop table emp;删除表的信息 不能回滚

4.删除表的所有信息

delete from emp ;

5.查询语句

select *  from emp;

6.别名

select sai*12 as '年薪' from emp;

7.字符串连接:用'||‘

比如把姓和名连在一起

select last_name||''||first_name 姓名 from emp;

8.消除重复行 distinct

select distinct ename from emp;

9.条件限定 where

select * from emp where sal>5000;

 between 的使用

select * from emp where sal between 3000 and 5000;

in的使用

select * from emp where sal in (3000,5000);

like 的使用  模糊查找

select * from emp where ename like '_a%';

is null 的使用

select * from emp where comm is null;

10.根据顺序查

select* from emp order by sal desc; 降序

select * from emp order by sal asc; 升序

11.统计函数

count 总数 max 最大 min最小 avg 平均

12.分组查询

select ename,sal from emp group by ename;

小技巧:一说有分组 后面就跟分组条件

13.having的使用 结合分组查询使用

必须按一定的分组 才能用having

having(sal)>5000

14.子查询

select ename from emp where sal=(select max(sal) from emp)

15.插入数据

insert into emp(id, ename,sal) values ('1','小明','5000');

对于不想插入的信息可以使用null或者' '来代替

insert into emp values ('1','老王‘,null);

16.删除数据

delete from emp where deptno=21;

delete操作时,可以回滚

17.修改数据

update emp set  ename=78 where deptno =20;

18.修改表的结构

<1>增加新的一列

alter table emp add(kills number);

<2>修改列

alter table emp modify(ename varchar2(300))

<3.>删除列

alter table emp drop colvmn kills;

执行这句话需要权限

19.视图

  一张虚拟表 视图表一般以v$开头 

 创建一个试图

create view emp1 as(

select id ,name from emp

)

删除视图

drop view emp1;

20.关联联接

<1>内连接 inner join

select e.ename,e.sal.d.dname from dept d inner join emp e on (d.deptno=e.ename);

<2>外连接

   1. 左外连接:在内连接的基础上 保证左表数据全有

 select d.dname,e.ename,e.sal,d.deptno from dept d left outer join emp e on(d.deptno=e.deptno);

   2.右外连接: 在内连接的基础上 保证右表数据全有

 把上面语句的left换成 right即可

   3.全连接 :左外连接加上右外连接的查询结果

使用full outer join

 <3>交叉连接:左表的每条记录和右表的每条记录首尾相连  cross join

 select ename,dname from emp,dept;

select ename,dname from dept cross join emp;

<4>自然连接 natural join

区别:不需要写连接条件

去掉重复字段 类型相同 名称相同

<5>等值连接和非等值连接

1.等值连接:相当于内连接,连接条件相当为等值连接

select ename,dname from emp join dept using (deptno);

 2.非等值连接

select emp.ename,emp.sal,dept.dname,salgrade.grade from dept onner join emp

on(dept.deptno=emp.deptno) inner join salgrade

on(emp.sal between salgrade.losal and salgrade.hisal)

<6>自关联

smith这个人的名字和他经理的名字

select employee.ename ,manager.ename from emp manager inner join emp employee

on(manager .empno=employee.mgr) where employee.ename='SMITH';

 

 

 

原创粉丝点击