Oracle数据库第三讲
来源:互联网 发布:java平台下载 编辑:程序博客网 时间:2024/04/29 06:35
概述:子查询和DML语言使用
一、子查询
概念 :当一个查询的结果是另一个查询的条件时,称之为子查询
使用子查询注意事项:
子查询可以嵌套多层
子查询需要圆括号()括起来
子查询可以放到查询字段的位置
子查询可以放到where条件位置
子查询可以放到from后当做临时表来使用
子查询中也可以使用主查询中的字段和变量
语法:
SELECT select_list
FROM table
WHERE expr operator
(SELECT select_list
FROM table);
l 子查询 (内查询) 在主查询之前一次执行完成。
l 子查询的结果被主查询使用 (外查询)。
单行子查询:
子查询的结果返回的一行且一列,就只有一个值,子查询可以返回空行 没要查询到结果是可以的。
单行操作符对应单行子查询
单行操作符
>、>=、 <、 <= 、<>、=
SQL> select * from emp where job=( select job from emp where empno=7876) and sal>( select sal from emp where empno=7521);
子查询含有组函数
SQL> select * from emp where sal>(select avg(nvl(sal,0)) from emp);
多行子查询:
返回多行结果,使用多行比较操作符。
In 等于列表中的任何一个
Any 子查询返回的任意一个值比较 相同还有some
All 和子查询返回的所有值比较
Exists
//查询岗位与部门编号为10相同的员工信息 不包含自己。
SQL> select * from emp where job in(select job from emp where deptno=10) and deptno<>10;
二、DML(Data Manipulation Language – 数据操作语言) 简介
概述:DML(Data Manipulation Language)数据操纵语言,SQL的分类之一,此外还有DDL(Data Definition Language)数据定义语言和DCL(Data Control Language)数据控制语言。DML包括:INSERT、UPDATE、DELETE。注意,select语句属于DQL(Data Query Language)。
DML执行条件:
• 向表中插入数据
• 修改现存数据
• 删除现存数据
a) 插入语句
使用 INSERT 语句向表中插入数据。
INSERT INTO table [(column [, column...])]
VALUES (value [, value...]);
使用这种语法一次只能向表中插入一条数据
注意:
l 为每一列添加一个新值。
l 按列的默认顺序列出各个列的值。
l 在 INSERT 子句中随意列出列名和他们的值。
l 字符和日期型数据应包含在单引号中
SQL> insert into users(username,password,name,address,zip) values('rrmy','1234','marico_zhang','北京',100089);
备注:如果是字符串加’’ 如果是数字可与加’’也可以不加===>一般不加
SQL> commit;
注意:oracle数据库在DOS命令中执行插入,修改等操作时,必须手动完成提交。否则不会(正真)插入成功。
在插入完整的记录是users()中的表对应的字段可以省略不写.但一定要与数据库中表的结构对应才行。
常见面试题:
//备份一张表
SQL> create table usess as select * from users;
//清空表中的记录
SQL> delete from usess;
//使用插入语句把users表中记录插入到usess中
SQL> insert into usess(username,password,name,address,zip) select username,password,name,address,zip from users;
SQL> commit
注意:
l 不必书写 VALUES 子句。
l 子查询中的值列表应于 INSERT 子句中的列名对应
b) 更新数据
采用update语法进行更新数据:
语法如下:
UPDATE table
SET column = value [, column = value, ...]
[WHERE condition];
备注:一次可以更新多条记录
在update语句中使用子查询
//更新huxz的邮编与用户liucy的邮编一致
SQL> update users set zip=(select zip from users where username='liucy') where username='huxz';
//备注:在更新数据的时候 where条件中也可以使用子查询。
c) 删除数据
在表中如果某些数据不在需要就可以使用delete语句进行删除,并释放该数据所占用的存储空间删除语法如下:
DELETE [FROM] table
[WHERE condition];
备注:delete语句只是从表中删除数据,不会删除表结构.删除表结构采用drop语句。
注意:删除表中的数据时,一定要考虑表的约束(否则会出现一些异常信息)
//清空表 delete from 表名 ||delete 表名
//删除数据 where条件与更新一致,必须保证唯一性(主键是唯一)条件
SQL> delete from users where username='test';
- Oracle数据库第三讲
- 数据库-第三讲-关系数据模型
- 第三讲:关系数据库模型
- Oracle数据库第四讲
- 黑马程序员-Oracle(第三讲)
- 数据库设计第三讲(测试)
- 第三讲
- 第三讲
- oracle 数据库 NUMBER类型细讲
- Oracle数据库精讲与疑难解析
- 第二讲 PLSQL连Oracle数据库
- oracle数据库基础知识精讲视频分享!
- 第三章 Oracle数据库管理工具
- Oracle 的安装(小布老师第三讲:bbk1042)
- [转帖]《高性能的数据库》第三讲 设计细节
- 《高性能的数据库》第三讲 设计细节
- 第三讲:创建云端的SQL数据库(学习笔记)
- 第三十二讲--数据库的关闭和启动
- POJ 3126 Prime Path BFS 广度优先搜索 素数
- Gdb常用命令
- Oracle数据第二讲
- destoon模板存放规则及语法参考
- 《第四周实验报告2》
- Oracle数据库第三讲
- destoon公司主页模板风格添加方法
- 富互联网应用程序中多个构件之间的通信
- eclipse学习记录
- ORACLE日期函数大全!
- ubuntu查看内核版本和发行版本
- Oracle事务讲解
- 用上传的本地图片设置滚动显示的方法
- iScroll框架解析