- 浏览: 85858 次
文章分类
最新评论
实例;http://www.1keydata.com/cn/sql/sql-truncate.php
会话隔离:
备份表
create table table_name1 as select * from emp;
最常用的SELECT:
SELECT的基本构成
DUAL
查询( query)和子查询( subquery)
层次查询
集合
连接
WITH语句
理解SELECT语法图
执行顺序:
where最新执行
group by
order by
详细顺序:
from:对from子句中的前两个表执行笛卡尔积(Cartesian product)(交叉联接),生成虚拟表VT1
on:对VT1应用ON筛选器。只有那些使<join_condition>为真的行才被插入VT2。
outer(join):如 果指定了OUTER JOIN(相对于CROSS JOIN 或(INNER JOIN),保留表(preserved table:左外部联接把左表标记为保留表,右外部联接把右表标记为保留表,完全外部联接把两个表都标记为保留表)中未找到匹配的行将作为外部行添加到 VT2,生成VT3.如果FROM子句包含两个以上的表,则对上一个联接生成的结果表和下一个表重复执行步骤1到步骤3,直到处理完所有的表为止。
where:对VT3应用WHERE筛选器。只有使<where_condition>为true的行才被插入VT4.
group by:按GROUP BY子句中的列列表对VT4中的行分组,生成VT5.
CUBE|ROLLUP:把超组(Suppergroups)插入VT5,生成VT6.
having:对VT6应用HAVING筛选器。只有使<having_condition>为true的组才会被插入VT7.
select:处理SELECT列表,产生VT8.
distinct:将重复的行从VT8中移除,产生VT9.
order by:将VT9中的行按ORDER BY 子句中的列列表排序,生成游标(VC10).
top:从VC10的开始处选择指定数量或比例的行,生成表VT11,并返回调用者。
count(*)是计算有多少列
sum(salary)是计算salary列的总合
DML异常:
ORA-00979 不是 GROUP BY 表达式错误的解释
err ;select deptno,job,avg(sal) from emp group by deptno;
right:select deptno,job,avg(sal) from emp group by deptno,job;
因为在select 列表像中出现了像deptno和job,而在group by中并没有出现的缘故。
子查询( subquery)
一个查询嵌套在另外的SQL语句中,该查询称为子查询( subquery)
子查询不仅仅会出现在SELECT中
select empno, ename from emp where mgr in (select empno from emp where job='MANAGER');
select * from emp where sal > 1.4*(select avg(sal) from emp);
insert into dept(deptno, dname, loc) select 50, 'TRAINING', 'PEKING' from dual;
exists是判断是否存在,和in类似,但效率要比in高
update emp set sal=sal*1.2 where exists (select 1 from dept where deptno=emp.deptno and loc='DALLAS');
update emp set sal=sal*1.2 where in (select deptno from dept where loc='DALLAS');
注意exists的使用,一定要带表的别名
Set:
数学上的集合
集合的概念
一个集合就是将数个对象归类而分成为一个或数个形态各异的大小整体。
一般来讲,集合是具有某种特性的事物的整体,或是一些确认对象的汇集。
构成集合的事物或对象称作元素或是成员。
集合的特性
唯一性
无序性
确定性
计算机上的集合
列表:数据项的顺序是确定的,也可以存在多个相同的数据项。
队列、堆栈
集:数据项是无序的,也不允许存在相同数据项。
多重集:类似于集,其中数据项是无序的。但在多重集中,可以存在相同的数据项。
关联数组:和字典相似,为键输入提供一个值输出,即Key-Value
树:“根”节点与一定数量的数据项以亲-子关系联系起来,而其子数据项也与另外的数据项
以同样的方式联系。
图:每个数据项都可以与一个或多个其它数据项联系起来,其中每个节点都是平等的,类似于
无根节点、无亲-子关系的树。
Oracle的结果集( ResultSet)
结果集的概念
一个查询(包括子查询)的结果,称为结果集。
结果集的特性
不唯一性
无序性
确定性
Oracle中的集合操作
并集
UNION:集
UNION ALL:集或多重集
交集
INTERSECT:集
差集(补集)
MINUS:集
操作符( UNION [ALL], INTERSECT, MINUS)
拥有同样的优先级
括号可以改变运算顺序
query1 minus (query2 union query3)
contect:
连接定义
从两张或更多张表/视图中做的查询称为连接
只要FROM后面出现多个表/视图, Oracle总会去执行连接操作
如果某列的名称在多个表/视图中出现,那么为避免模棱两可必须在列前加上表/视图的名或别名
连接条件
通常多表连接都会至少有一个连接条件
无连接条件的连接结果集称为笛卡尔积( Cartesian Products)
连接条件两端的字段必然来自不同的两张表/视图
多表连接时,除了连接条件,还可以有单表数据过滤条件
连接类型: 等值连接、自连接、笛卡尔积、内连接(简单连接/连接)、外连接、反连接、半连接
等值连接 [ = ] (笛卡尔积受制于where条件)
自连接 from emp a, emp b
内连接 from emp inner join salgrade on
反连接 not in
半连接 where exists 相当于 and (没有生成笛卡尔积,故快速)
select * from emp a where exists (select 1 from dept b where loc='NEW YORK' and a.deptno=b.deptno);
外连接 (+)过时但可用,替代:left outer join, right outer join和full outer join
from dept b left join emp a on
from emp a right join dept b on
from emp a right outer join dept b on
左连接和左外连接的区别:
两者是一样的,只是写法不同,相同的概念。
层次查询Hierarchical Query
select empno, ename, job, mgr, deptno, level from emp start with job='PRESIDENT'connect by prior empno= mgr;
CONNECT BY rownum <= length(p_str))对输入的字符串进行逐个遍历
select * from dual connect by rownum<5
会话隔离:
备份表
create table table_name1 as select * from emp;
最常用的SELECT:
SELECT的基本构成
DUAL
查询( query)和子查询( subquery)
层次查询
集合
连接
WITH语句
理解SELECT语法图
执行顺序:
where最新执行
group by
order by
详细顺序:
from:对from子句中的前两个表执行笛卡尔积(Cartesian product)(交叉联接),生成虚拟表VT1
on:对VT1应用ON筛选器。只有那些使<join_condition>为真的行才被插入VT2。
outer(join):如 果指定了OUTER JOIN(相对于CROSS JOIN 或(INNER JOIN),保留表(preserved table:左外部联接把左表标记为保留表,右外部联接把右表标记为保留表,完全外部联接把两个表都标记为保留表)中未找到匹配的行将作为外部行添加到 VT2,生成VT3.如果FROM子句包含两个以上的表,则对上一个联接生成的结果表和下一个表重复执行步骤1到步骤3,直到处理完所有的表为止。
where:对VT3应用WHERE筛选器。只有使<where_condition>为true的行才被插入VT4.
group by:按GROUP BY子句中的列列表对VT4中的行分组,生成VT5.
CUBE|ROLLUP:把超组(Suppergroups)插入VT5,生成VT6.
having:对VT6应用HAVING筛选器。只有使<having_condition>为true的组才会被插入VT7.
select:处理SELECT列表,产生VT8.
distinct:将重复的行从VT8中移除,产生VT9.
order by:将VT9中的行按ORDER BY 子句中的列列表排序,生成游标(VC10).
top:从VC10的开始处选择指定数量或比例的行,生成表VT11,并返回调用者。
count(*)是计算有多少列
sum(salary)是计算salary列的总合
DML异常:
ORA-00979 不是 GROUP BY 表达式错误的解释
err ;select deptno,job,avg(sal) from emp group by deptno;
right:select deptno,job,avg(sal) from emp group by deptno,job;
因为在select 列表像中出现了像deptno和job,而在group by中并没有出现的缘故。
子查询( subquery)
一个查询嵌套在另外的SQL语句中,该查询称为子查询( subquery)
子查询不仅仅会出现在SELECT中
select empno, ename from emp where mgr in (select empno from emp where job='MANAGER');
select * from emp where sal > 1.4*(select avg(sal) from emp);
insert into dept(deptno, dname, loc) select 50, 'TRAINING', 'PEKING' from dual;
exists是判断是否存在,和in类似,但效率要比in高
update emp set sal=sal*1.2 where exists (select 1 from dept where deptno=emp.deptno and loc='DALLAS');
update emp set sal=sal*1.2 where in (select deptno from dept where loc='DALLAS');
注意exists的使用,一定要带表的别名
Set:
数学上的集合
集合的概念
一个集合就是将数个对象归类而分成为一个或数个形态各异的大小整体。
一般来讲,集合是具有某种特性的事物的整体,或是一些确认对象的汇集。
构成集合的事物或对象称作元素或是成员。
集合的特性
唯一性
无序性
确定性
计算机上的集合
列表:数据项的顺序是确定的,也可以存在多个相同的数据项。
队列、堆栈
集:数据项是无序的,也不允许存在相同数据项。
多重集:类似于集,其中数据项是无序的。但在多重集中,可以存在相同的数据项。
关联数组:和字典相似,为键输入提供一个值输出,即Key-Value
树:“根”节点与一定数量的数据项以亲-子关系联系起来,而其子数据项也与另外的数据项
以同样的方式联系。
图:每个数据项都可以与一个或多个其它数据项联系起来,其中每个节点都是平等的,类似于
无根节点、无亲-子关系的树。
Oracle的结果集( ResultSet)
结果集的概念
一个查询(包括子查询)的结果,称为结果集。
结果集的特性
不唯一性
无序性
确定性
Oracle中的集合操作
并集
UNION:集
UNION ALL:集或多重集
交集
INTERSECT:集
差集(补集)
MINUS:集
操作符( UNION [ALL], INTERSECT, MINUS)
拥有同样的优先级
括号可以改变运算顺序
query1 minus (query2 union query3)
contect:
连接定义
从两张或更多张表/视图中做的查询称为连接
只要FROM后面出现多个表/视图, Oracle总会去执行连接操作
如果某列的名称在多个表/视图中出现,那么为避免模棱两可必须在列前加上表/视图的名或别名
连接条件
通常多表连接都会至少有一个连接条件
无连接条件的连接结果集称为笛卡尔积( Cartesian Products)
连接条件两端的字段必然来自不同的两张表/视图
多表连接时,除了连接条件,还可以有单表数据过滤条件
连接类型: 等值连接、自连接、笛卡尔积、内连接(简单连接/连接)、外连接、反连接、半连接
等值连接 [ = ] (笛卡尔积受制于where条件)
自连接 from emp a, emp b
内连接 from emp inner join salgrade on
反连接 not in
半连接 where exists 相当于 and (没有生成笛卡尔积,故快速)
select * from emp a where exists (select 1 from dept b where loc='NEW YORK' and a.deptno=b.deptno);
外连接 (+)过时但可用,替代:left outer join, right outer join和full outer join
from dept b left join emp a on
from emp a right join dept b on
from emp a right outer join dept b on
左连接和左外连接的区别:
两者是一样的,只是写法不同,相同的概念。
层次查询Hierarchical Query
select empno, ename, job, mgr, deptno, level from emp start with job='PRESIDENT'connect by prior empno= mgr;
CONNECT BY rownum <= length(p_str))对输入的字符串进行逐个遍历
select * from dual connect by rownum<5
发表评论
-
17、nosql -- redis(一)简介
2015-04-01 11:09 440数据库发展史 --> 无库时代--> 层次状数据库 ... -
16、ER设计工具--powerdesigner
2015-03-30 14:09 1385entity-relationShip 1. 概念数据模型 ... -
15、pl/sql高级应用
2015-03-30 11:40 463now is null now is null now is ... -
14、oracle --sql 排名/相邻/统计函数
2015-03-30 09:49 12121、排名函数 排名的几个分析函数 row_number ... -
13、oracle--sql 数字/日期/字符串/过滤函数
2015-03-30 00:08 1026常用的数据类型:数字(number|float)、日期(d ... -
11、oracle--pl/sql
2015-03-28 00:16 516JDBC, 全称为Java DataBase Con ... -
11、深入学习Oracle
2015-03-22 14:24 0Oracle是个高并发的软件; -
11、oracle用户/权限管理
2015-03-14 21:25 0create user c##2015 identified ... -
10、oracle的卸载与安装
2015-03-15 20:10 655安装了oracle发现编码不对,想找/Home0注册表也没找到 ... -
9、实现行列转换
2015-03-15 20:10 366行转列: 1、通过Oracle数据库自带的wm_c ... -
8、concat(str1,str2)连接多个数据
2015-03-15 20:10 505ex ; select concat(region_na ... -
7、union并/intersect交
2015-03-15 20:10 455union 跟 jion 有些许类似,因为这两个指令都可 ... -
6、查询消除重复数据distinct
2015-03-15 20:09 553ex: select distinct name,id fr ... -
5、外联查询
2015-03-14 10:33 5921、左联 left join a.name = b.name ... -
4、truncate清空表保留表结构
2015-03-14 10:08 836ex: truncate table test 这是个d ... -
3、简单的crud语句
2015-03-14 10:00 3021、update ex: update repeat ... -
2、in的用法
2015-03-14 09:59 446select t.* from repeat t where ... -
###.什么是持久化?
2015-03-11 13:08 0<转>http://cuisuqiang.it ... -
lll数据异常
2015-03-04 17:06 0Duplicate column name 'cat_id' ... -
lll.mysql建表设置utf-8
2015-03-04 16:15 0CREATE TABLE message( id int(10 ...
相关推荐
目前,大多数应用程序使用的是Oracle数据库,而用户或多或少的使用了Oracle的...Oracle兼容性方面实现的功能包括:ROWNUM表达式、多列IN语法、层次查询、外连接语法“(+)”、INSTEADOF触发器、%TYPE以及记录类型等
说明:用于连接到oracle数据库,也可实现用户的切换 用法:conn 用户名/密码 [as sysdba/sysoper] 注意:当用特权用户连接时,必须带上sysdba或sysoper 例子: 3. 断开连接(disc) 说明:断开与当前数据库的连接 ...
数据库开发 Oracle数据库 SQL开发教程 第12章 Oracle数据库网络连接(共39页).pdf 数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共...
1 Oracle 结构组件 目标 1-2 基本结构概述 1-3 Oracle 服务器 1-4 Oracle 实例 1-5 建立连接和创建会话 1-6 Oracle 数据库 1-7 物理结构 1-8 内存结构 1-9 系统全局区(SGA) 1-10 共享池 1-12 库缓存 1-13 数据字典...
1.6.2 sql的层次结构 15 1.6.3 客户程序和服务程序系统 17 1.6.4 sql环境中对象的命名规则 18 第2章 主要的关系数据库与sql 21 2.1 sql server 21 2.1.1 sql server的结构 21 2.1.2 数据库访问标准化接口—...
数据库开发 Oracle数据库 SQL开发教程 第12章 Oracle数据库网络连接(共39页).pdf 数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共...
Oracle之所以得到广大用户的青睐,其主要原因在于:支持多用户、大事务量的事务处理、提供标准操作接口、实施安全性控制和完整性控制、支持分布式数据处理、具有可移值性、可兼容性和可连接性。 (7)
数据库开发 Oracle数据库 SQL开发教程 第12章 Oracle数据库网络连接(共39页).pdf 数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共...
数据库开发 Oracle数据库 SQL开发教程 第12章 Oracle数据库网络连接(共39页).pdf 数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共...
数据仓库技术是目前已知的比较成熟和被广泛采用的解决方案,用于整和电信运营企业内部所有分散...本文着重分析ORACLE SQL优化中对于系统性能影响极大的表连接方式、特点、适用范围,并对如何使用和优化做了详细的探讨。
数据库开发 Oracle数据库 SQL开发教程 第12章 Oracle数据库网络连接(共39页).pdf 数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共...
数据库开发 Oracle数据库 SQL开发教程 第12章 Oracle数据库网络连接(共39页).pdf 数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共...
数据库开发 Oracle数据库 SQL开发教程 第12章 Oracle数据库网络连接(共39页).pdf 数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共...
《精通SQ:结构化查询语言详解》全面讲解SQL语言,提供317个典型应用,读者可以随查随用,针对SQL Server和Oracle进行讲解,很有代表性。 全书共包括大小实例317个,突出了速学速查的特色。《精通SQ:结构化查询语言...
首先,Oracle的字典表和视图基本上可以分为三个层次。 1.1 X$表 这一部分表是Oracle数据库的运行基础,在数据库启动时由Oracle应用程序动态创建。 这部分表对数据库来说至关重要,所以Oracle不允许SYSDBA之外的用户...
数据库开发 Oracle数据库 SQL开发教程 第12章 Oracle数据库网络连接(共39页).pdf 数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共...
该文档包括工作中常用的查询语句,条件查询,模糊查询,多层次查询,内外连接查询等。
数据库开发 Oracle数据库 SQL开发教程 第12章 Oracle数据库网络连接(共39页).pdf 数据库开发 Oracle数据库 SQL开发教程 第13章 创建和维护表(共37页).pdf 数据库开发 Oracle数据库 SQL开发教程 第14章 约束(共...
4.4. Oracle 实例进程结构 12 4.5. Oracle 物理组件 13 4.6. Oracle 逻辑组件 13 4.7. 模式 15 4.8. 数据文件(*.dbf) 15 4.9. 控制文件(*.tcl)和日志文件(*.log) 16 4.10. 逻辑存储结构 16 4.11. 数据字典 17 五、...