- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章oracle基本查询操作子查询用法实例分析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
本文实例讲述了oracle基本查询操作子查询用法。分享给大家供大家参考,具体如下:
1、子查询语法 。
1
2
3
|
SELECT
select_list
FROM
table
WHERE
expr operator (
SELECT
select_list
FROM
table
);
|
子查询在主查询之前一次执行完成。 子查询的结果被主查询使用.
1
|
select
ename
from
emp
where
sal > (
select
sal
from
emp
where
ename=
'SCOTT'
);
|
(*注意:子查询要包含在括号内,将子查询放在比较条件的右侧。单行操作符对应单行子查询,多行操作符对应多行子查询。) 。
单行子查询,只返回一行,使用单行比较符(> = < >= <= != <>) 。
1
2
3
4
5
6
7
8
9
|
--子查询中使用组函数
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) 。
1
2
3
4
5
6
7
8
9
10
|
--查询比部门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);
|
2、集合运算 。
并集 UNION运算符返回两个集合去掉重复元素后的所有记录。 UNION ALL 返回两个集合的所有记录,包括重复的。 交集 INTERSECT 运算符返回同时属于两个集合的记录 。
1
2
3
4
5
6
7
8
|
--返回工资在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 返回属于第一个集合,但不属于第二个集合的记录.
1
2
3
4
5
6
7
8
|
--返回工资属于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语句中参数类型和个数保持一致。 2、可以使用括号改变集合执行的顺序。 3、如果有order by,必须放到最后一句查询语句后。 4、集合运算采用第一个语句的表头作为表头.
3、数据操作语言 。
插入数据 。
1
2
|
INSERT
INTO
table
[(
column
[,
column
...])]
VALUES
(value [,value...]);
|
1
|
insert
into
dept(deptno,dname,loc)
values
(50,
'test'
,
'test'
);
|
从其他表中拷贝数据 。
1
2
|
insert
into
dept(deptno, dname, loc)
select
60, dname, loc
from
dept
where
deptno = 10;
|
更新数据 。
1
2
3
|
UPDATE
table
SET
column
=value [,
column
=value, ...]
[
WHERE
codition]
|
1
2
|
--更新一条数据
update
emp
set
sal=sal+100
where
empno=7369;
|
1
2
3
4
|
--update使用子查询
update
emp
set
sal = (
select
max
(sal)
from
emp)
where
empno = (
select
empno
from
emp
where
sal = (
select
min
(sal)
from
emp));
|
删除数据 。
1
2
|
DELETE
[
FROM
]
table
[
WHERE
condition];
|
1
2
|
--删除一条数据
delete
from
dept
where
deptno=60;
|
delete和truncate 。
1、都是删除表中的数据。 2、delete操作可以rollback,可以闪回。 3、delete可能产生碎片,并且不释放空间。 4、truncate清空表.
4、数据库事务 。
数据库事务由以下的部分组成: 1、一个或多个DML语句 2、一个DDL数据定义语句 3、一个DCL数据控制语句 。
以第一个DML语句的执行作为开始 以下面的其中之一作为结束: 显示结束:commit rollback 隐式结束(自动提交):DDL语句,DCL语句,exit(事务正常退出) 隐式回滚(系统异常终了):关闭窗口,死机,掉电 。
commit和rollback语句的优点 1、确保数据完整性。 2、数据改变被提交之前预览。 3、将逻辑上相关的操作分组.
回滚到保留点 使用savepoint语句在当前事务中创建保存点。 使用rollback to savepoint语句回滚到创建的保存点.
1
2
3
4
|
update
emp
set
sal=sal+100
where
empno=7369;
savepoint update_empno7369;
delete
from
emp
where
empno=7369;
rollback
to
update_empno7369;
|
5、创建和管理表 。
常见的数据库对象 如下: 表 基本的数据存储集合,由行和列组成。 视图 从表中抽出的逻辑上相关的数据集合。 序列 提供有规律的数值。 索引 提高查询的效率。 同义词 给对象起别名.
创建表 。
1
|
CREATE
TABLE
[
schema
.]
table
(
column
datatype [
DEFAULT
expr][, ...]);
|
1
2
3
|
create
table
test(
id number(12),
name
varchar2(32));
|
通过子查询创建表 。
1
2
|
CREATE
TABLE
table
[(
column
,
column
...)]
AS
subquery;
|
1
|
create
table
test2
as
select
empno,ename
from
emp
where
sal>1000;
|
修改表 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
--添加列
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、数据和结构都被删除 2、所有正在运行的相关事物被提交 3、所有相关索引被删除 4、DROP TABLE语句不能回滚,但是可以闪回.
1
|
drop
table
test;
|
改变对象的名称 。
1
|
rename dept
to
newDept;
|
清空表 1、删除表中所有数据。 2、释放表的存储空间。 3、truncate不能回滚.
1
|
truncate
table
test;
|
希望本文所述对大家Oracle数据库程序设计有所帮助.
原文链接:https://www.cnblogs.com/jkko123/p/6294565.html 。
最后此篇关于oracle基本查询操作子查询用法实例分析的文章就讲到这里了,如果你想了解更多关于oracle基本查询操作子查询用法实例分析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有这个 html 代码: HELLO WORLD! X V HELLO WORLD! X V 我想按 X(类关闭)将父 div 的高度更改为 20px 并显示 V(类打开),但在每个 d
在会计应用程序的许多不同实现中,有两种主要的数据库设计方法来保存日志和分类帐数据。 只保留 Journal 信息,然后 Ledger 只是 Journal 的一个 View (因为 journal 总
我想在另一个子里面有一个子, sub a { sub b { } } 我想为每次调用 sub b 创建一个新的 sub a 实例。有没有办法在 Perl 中做到这一点? 当我运行上面的
我有一些代码正在查找重复项并突出显示单元格: Private Sub cmdDups_Click() Dim Rng As Range Dim cel As Range Set Rng = ThisW
可能有一个简单的解决方案,但我很难过。 我有一个包含一个 ID 字段的主表。在两个可能的字段中有一个具有该 ID 的子表。想象一个由选手 A 和选手 B 组成的 double 队。Master 表将有
假设我有一个包含对象的数组: [ { "id": "5a97e047f826a0111b754beb", "name": "Hogwarts", "parentId": "
我正在尝试对 MySQL 数据库表执行一对父/子模型的批量插入,但似乎无法使用标准的 ActiveRecord 功能来完成。所以,我尝试了 activerecord-import gem,但它也不支持
我有一个带有多个子类的父抽象类。最终,我希望通过 GUI 中的进度条显示子类中完成的进度。 我目前所做的,我意识到这是行不通的,是在父类中声明为每个子类将覆盖的虚拟方法的事件方法定义。所以像: pub
是否可以通过键数组在对象中设置变量?例如我有这个对象: var obj = {'outer': {'inner': 'value'} }; 并希望设置由键数组选择的值: var keys = ['ou
我有一个名为 companies 的 MySQL 表,如下所示: +---------+-----------+-----------+ | id_comp | comp_name | id_pare
我正在尝试使用 sublime text 在 sublime text 上的 ionic 上打开我的第一个应用程序。它给了我一个“找不到命令”的错误。如何修复? 我试过这些命令: sudo rm -r
不好意思问,但我正在使用 webapp2,我正在设计一个解决方案,以便更容易定义路由 based on this google webapp2 route function .但这完全取决于能够在子级
我有代表树的数字字符串(我不知道是否有官方名称): 012323301212 上面的例子代表了 2 棵树。根用 0 表示。根的直接子代为“1”,“1”的直接子代为“2”,依此类推。我需要将它们分组到由
是否可以在当前 Activity 之上添加 Activity 。例如,假设我单击一个按钮,然后它将第二个 Activity 添加到当前 Activity 。而第二个 Activity 只覆盖了我当前
我很难思考如何为子资源建模。 以作者的书籍为例。你可以有 N 本书,每本书只有一位作者。 /books GET /books POST /books/id PUT /books/id DELETE 到
有人可以向我解释以下内容(python 2.7) 来自已解析文件的两个字符串数字: '410.9''410.9 '(注意尾随空格) A_LIST = ['410.9 '] '410.9' in '41
背景 在 PowerShell 中构建 hash table 是很常见的通过特定属性快速访问对象,例如以 LastName 为基础建立索引: $List = ConvertFrom-Csv @' I
我真的很难弄清楚如何调用嵌套 Polymer Web 组件的函数。 这是标记: rise-distribution组件有 canPlay我想从 rise-playlist
我写了一个小工具转储(以 dot 格式)一个项目的依赖关系图,其中所有位于同一目录中的文件都聚集在一个集群中。当我尝试生成包含相应图形的 pdf 时,dot开始哭: 命令 dot -Tpdf trim
给定一个 CODE ref,是否可以: 访问该 CODE ref 的解析树 通过指定 CODE ref 的解析树来创建一个新的 CODE ref,该解析树可以包含在 1 中返回的解析树的元素 通常我们
我是一名优秀的程序员,十分优秀!