在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本文实例讲述了oracle基本查询操作子查询用法。分享给大家供大家参考,具体如下: 一、子查询语法 SELECT select_list FROM table WHERE expr operator (SELECT select_list FROM table); 子查询在主查询之前一次执行完成。 select ename from emp where sal > (select sal from emp where ename='SCOTT'); (*注意:子查询要包含在括号内,将子查询放在比较条件的右侧。单行操作符对应单行子查询,多行操作符对应多行子查询。) 单行子查询,只返回一行,使用单行比较符(> = < >= <= != <>) --子查询中使用组函数 select ename,sal from emp where sal=(select min(sal) from emp); --子查询中的having子句 --首先执行子查询 --向主查询中的having子句返回结果 select deptno, min(sal) from emp group by deptno having min(sal) > (select min(sal) from emp); 多行子查询,返回多行,使用多行比较符(IN ANY ALL) --查询比部门10里任意一个人工资高的员工信息 select ename, sal from emp where sal > any (select sal from emp where deptno = 10); --查询比部门20里所有人工资高的员工信息 select ename, sal from emp where sal > all (select sal from emp where deptno = 20); --查询不是老板的员工信息 select ename from emp where empno not in(select mgr from emp); 二、集合运算 并集 --返回工资在500-1000和900-1200的员工信息 select ename, sal from emp where sal between 500 and 1000 intersect select ename, sal from emp where sal between 900 and 1200; 差集 MINUS 返回属于第一个集合,但不属于第二个集合的记录。 --返回工资属于500-1000,但不属于900-1200的员工信息 select ename, sal from emp where sal between 500 and 1000 minus select ename, sal from emp where sal between 900 and 1200; 集合使用的注意事项 1、select语句中参数类型和个数保持一致。 三、数据操作语言 插入数据 INSERT INTO table [(column [,column...])] VALUES (value [,value...]); insert into dept(deptno,dname,loc) values(50,'test','test'); 从其他表中拷贝数据 insert into dept(deptno, dname, loc) select 60, dname, loc from dept where deptno = 10; 更新数据 UPDATE table SET column=value [, column=value, ...] [WHERE codition] --更新一条数据 update emp set sal=sal+100 where empno=7369; --update使用子查询 update emp set sal = (select max(sal) from emp) where empno = (select empno from emp where sal = (select min(sal) from emp)); 删除数据 DELETE [FROM] table [WHERE condition]; --删除一条数据 delete from dept where deptno=60; delete和truncate 1、都是删除表中的数据。 四、数据库事务 数据库事务由以下的部分组成: 以第一个DML语句的执行作为开始 commit和rollback语句的优点 回滚到保留点 update emp set sal=sal+100 where empno=7369; savepoint update_empno7369; delete from emp where empno=7369; rollback to update_empno7369; 五、创建和管理表 常见的数据库对象 创建表 CREATE TABLE [schema.]table (column datatype [DEFAULT expr][, ...]); create table test( id number(12), name varchar2(32)); 通过子查询创建表 CREATE TABLE table [(column, column...)] AS subquery; create table test2 as select empno,ename from emp where sal>1000; 修改表 --添加列 ALTER TABLE table ADD (column datatype [DEFAULT expr] [, column datatype] ...); --添加info列 alter table test add (info varchar2(256) default ''); --修改列 ALTER TABLE table MODIFY (column datatype [DEFAULT expr] [, column datatype] ...); --修改info列 alter table test modify (info varchar2(64) default ''); --删除列 ALTER TABLE table DROP column (column); --删除info列 alter table test drop column info; --修改列名 ALTER TABLE table rename column old_column_name to new_column_name; --修改name列名 alter table test rename column name to name2; 删除表 1、数据和结构都被删除 drop table test; 改变对象的名称 rename dept to newDept; 清空表 truncate table test; 更多关于Oracle相关内容感兴趣的读者可查看本站专题:《Oracle常用函数汇总》、《Oracle日期与时间操作技巧总结》及《php+Oracle数据库程序设计技巧总结》 希望本文所述对大家Oracle数据库程序设计有所帮助。 |
请发表评论