首页
论坛
门户
空间
手机版
IXPUB
插件
收藏
设置
注册
登录
商店
搜索
培训
Wiki
Blog
归档
丛书
退出
ITPUB论坛
»
Oracle入门与认证
» sg笔记三
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
评价
|
打印
|
推荐
|
订阅
|
收藏
标题: sg笔记三
wisdomone1
西北苍狼
希望会员
精华贴数 0
个人空间
0
技术积分 2454 (637)
社区积分 60 (4457)
注册日期 2007-3-15
论坛徽章:4
#1
使用道具
发表于 2008-6-25 10:11
sg笔记三
续上.
只看该作者
wisdomone1
西北苍狼
希望会员
精华贴数 0
个人空间
0
技术积分 2454 (637)
社区积分 60 (4457)
注册日期 2007-3-15
论坛徽章:4
#2
使用道具
发表于 2008-6-25 17:23
007-202
subquery:single subquery and multiple subquery
子查询把传递结果参数给父查询
标准子查询和外查询没有关联关系,子查询只执行一次
关联子查询和外查询有关联,子查询要执行多次
select deptno,min(sal)---having也可以用子查询
2 from emp
3 group by deptno
4 having min(sal)>(select min(sal) from emp where ename='JOB');
no rows selected
1 select * from
2 emp
3* where sal>(select min(sal) from emp)
SQL> select count(*) from emp;
COUNT(*)
----------
14
any ---任何一个
all ---每一个都要
in -----列表任何一个
join好于子查询(多表连接)
isqlplus学习
进入isqlplus:http://localhost/isqlplus
isqlplus从9i引入,三层体系架构
substitution value替换变量:
& select ename from emp where job=&x;---可以用于where,from,order by,column,select ,也可以select * from &b where &z;--一个sql中多个替换变量
&& select &&sal from emp order by &sal
define ---先给替换变理定义一个值,以后不用提示了.define z='zxy',取消define定义,用undefine,或退出isqlplus
define下,可查看相关define定义变量情况
select &&sal from emp order by &sal;
Enter value for sal: sal
old 1: select &&sal from emp order by &sal
new 1: select sal from emp order by sal
SAL
----------
800
950
1100
1250
1250
1300
1500
1600
2450
2850
2975
SAL
----------
3000
3000
5000
14 rows selected.
set verify on|off ---是否对系统进行验证,也就是显示替换变量old,new
show all;----查询set一系列sqlplus中环境变量的配置情况
set 变量名 变理值
help 要帮助的主题
007-203 之25分钟
只看该作者
wisdomone1
西北苍狼
希望会员
精华贴数 0
个人空间
0
技术积分 2454 (637)
社区积分 60 (4457)
注册日期 2007-3-15
论坛徽章:4
#3
使用道具
发表于 2008-6-25 17:43
column job clear ---清除复位到原型
col last_name heading 'zxy'
column sal justify left format $99,999.00
column manager format 999999999 null 'no manager'
break on ---压缩重复值
ttitle [text|on|off]
btitle 'test report' ---尾
ttitle 'salary report header'---头
SQL> ttitle 'report title'
SQL> btitle 'report footer'
SQL> /
Mon Jun 23 page 1
report title
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7698 BLAKE MANAGER 7839 01-MAY-81 2850 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 10
report footer
Mon Jun 23 page 2
report title
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7788 SCOTT ANALYST 7566 19-APR-87 3000 20
7839 KING PRESIDENT 17-NOV-81 5000 10
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7876 ADAMS CLERK 7788 23-MAY-87 1100 20
7900 JAMES CLERK 7698 03-DEC-81 950 30
7902 FORD ANALYST 7566 03-DEC-81 3000 20
7934 MILLER CLERK 7782 23-JAN-82 1300 10
report footer
14 rows selected.
SQL> select * from dept;
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> col deptno justify left----表明justify left|right只是针对列标题左右排列
SQL> /
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
SQL> col deptno justify right
SQL> /
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
col comm justify right null 'not comm' ---对comm列空值进行显示,以not comm显示
SQL> /
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-DEC-80 800 not comm 20
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7566 JONES MANAGER 7839 02-APR-81 2975 not comm 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
只看该作者
jvkojvko
小马哥
精华贴数 1
个人空间
0
技术积分 5625 (235)
社区积分 44824 (17)
注册日期 2007-9-10
论坛徽章:17
#4
使用道具
发表于 2008-6-25 19:19
学习了
__________________
马无夜草不肥,人无外财不富。
-------------------------------
长期高价出售奥运章
只看该作者
wisdomone1
西北苍狼
希望会员
精华贴数 0
个人空间
0
技术积分 2454 (637)
社区积分 60 (4457)
注册日期 2007-3-15
论坛徽章:4
#5
使用道具
发表于 2008-6-25 19:54
update emp_bak set comm=decode(comm,null,0,comm);---以不同条件结合decode对表进行更新
SQL> save /home/oracle/x.sql
Created file /home/oracle/x.sql
update emp
set job=(select job from emp where ename='zxy')
where deptno=58;---表明update中可以有子查询(set 和where中)
update emp set job='anaylist' where deptno in(select deptno from dept);---update可包含in子句
delete也同上可能用子查询
insert into (select * from emp where ) values();---insert中也可以用子查询,置于into中.
SQL> create table te(a int,b int default 0);---default constriant
Table created.
SQL> insert into te values(1,default);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from te;
A B
---------- ----------
1 0
SQL> insert into te(a) values(2);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from te;
A B
---------- ----------
1 0
2 0
merge学习
merge into copy_emp c
using employee e ---引用另外一个表
on (c.employee_id=e.employee_id) ---merge into表和using表连接条件
when matched then ---二表匹配,更新,以using表更新merge into 表
update set
c.first_name=e.first_name
when not matched then ----二表不匹配,则插入using表的值到merge into表
insert values(e.employee_id)
oracle事务:
显式和隐式事务
ddl dcl隐式自动提交,dml要手工提交
只看该作者
wisdomone1
西北苍狼
希望会员
精华贴数 0
个人空间
0
技术积分 2454 (637)
社区积分 60 (4457)
注册日期 2007-3-15
论坛徽章:4
#6
使用道具
发表于 2008-6-25 20:15
语句级rollback,就是如果你插入多条记录,在最后一下插入发生错误,前面的插入还在,但要是rollback,前几个插入没有了
dirty read:没有rollback or commit的语句,它是保存在undo中的.另外oracle也锁定这条记录,其它用户不能更改它
oracle通过undo来实现读一致性:其它用户读取undo中的data pi
读不阻写,写不阻读
lock:显式和隐式
exclusive:排它
share
dml:table share,row exclusive
query:no lock required
ddl
rotect object definitions ---
lock会在commit or rollback release it
只看该作者
wisdomone1
西北苍狼
希望会员
精华贴数 0
个人空间
0
技术积分 2454 (637)
社区积分 60 (4457)
注册日期 2007-3-15
论坛徽章:4
#7
使用道具
发表于 2008-6-25 20:40
SQL> create table table-1 (a int); --- -这个符号不能用于表名
create table table-1 (a int)
*
ERROR at line 1:
ORA-00903: invalid table name
SQL> create table "table-l"(a int); ---加上双引号就可以,单引号也不行
Table created.
SQL> drop table "table-l";
Table dropped.
SQL> create table 23a(x int);---表明表名只能以字母开头
SQL> create table 23a(x int);
create table 23a(x int)
*
ERROR at line 1:
ORA-00903: invalid table name
SQL> create table a23(x int);
Table created.
SQL> create table =x(a int);---reserved work不能用于表名
create table =x(a int)
*
ERROR at line 1:
ORA-00903: invalid table name
SQL> create table a(x date);---测试在insert可以用function作value insert
Table created.
SQL> insert into a values(sysdate);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from a;
X
---------
23-JUN-08
1* select to_char(x,'yyyymmdd') from a
SQL> /
TO_CHAR(
--------
20080623
只看该作者
wisdomone1
西北苍狼
希望会员
精华贴数 0
个人空间
0
技术积分 2454 (637)
社区积分 60 (4457)
注册日期 2007-3-15
论坛徽章:4
#8
使用道具
发表于 2008-6-25 20:56
long ---2g ,不建议使用它
clob ---4g
raw and long raw ---raw binary data
blob ---binary data up to 4g
bfile ---binary data stored in an external file;up to 4 g
rowid --64 base
number(p,s) ---精度和刻度
timestamp ---用得少,有用再学
alter table drop|add|modify ---drop column时,如果在线系统,此动作有一定延时,所以先让此列失效,然后在系统不太busy再delete it
SQL> desc a;
Name Null? Type
----------------------------------------- -------- ----------------------------
X DATE
SQL> alter table a modify x char;---不同的类型转换要先把数据清除了.才可以转换
alter table a modify x char
*
ERROR at line 1:
ORA-01439: column to be modified must be empty to change datatype
SQL> truncate table a;
Table truncated.
SQL> alter table a modify x char;
Table altered.
SQL> alter table a modify x varchar2(10);
Table altered.
SQL> alter table a modify x number;--在表中没数据时,列数据类型转换没有什么限制
Table altered.
SQL> alter table a add y int;
Table altered.
SQL> desc a;
Name Null? Type
----------------------------------------- -------- ----------------------------
X NUMBER
Y NUMBER(38)
SQL> alter table a drop column y;
Table altered.
SQL> alter table a add y int;
Table altered.
SQL> desc a;
Name Null? Type
----------------------------------------- -------- ----------------------------
X NUMBER
Y NUMBER(38)
SQL> select * from a;
no rows selected
SQL> insert into a values(1,1);
1 row created.
SQL> /
1 row created.
SQL> /
1 row created.
SQL> /
1 row created.
SQL> commit;
Commit complete.
SQL> select * from a;
X Y
---------- ----------
1 1
1 1
1 1
1 1
SQL> alter table a drop column y;---在有数据时,删除一个列,数据仍在
Table altered.
SQL> desc a;
Name Null? Type
----------------------------------------- -------- ----------------------------
X NUMBER
SQL> select * from a;
X
----------
1
1
1
1
只看该作者
wisdomone1
西北苍狼
希望会员
精华贴数 0
个人空间
0
技术积分 2454 (637)
社区积分 60 (4457)
注册日期 2007-3-15
论坛徽章:4
#9
使用道具
发表于 2008-6-25 21:02
SQL> alter table a modify x default 5;
Table altered.
SQL> select * from a;
no rows selected
SQL> insert into a values(default);
1 row created.
SQL> /
1 row created.
SQL> commit;
Commit complete.
SQL> select * from a;
X
----------
5
5
SQL>
SQL> select * from tx;
A B
---------- ----------
1 2
2 3
SQL> alter table tx set unused column b;---利用此命令可以先把列变为不可用,在删除它在不busy时
Table altered.
SQL> desc tx;
Name Null? Type
----------------------------------------- -------- ----------------------------
A NUMBER(38)
SQL> alter table tx drop unused columns;
Table altered.
SQL> desc tx;
Name Null? Type
----------------------------------------- -------- ----------------------------
A NUMBER(38)
SQL> select * from tx;
A
----------
1
2
SQL>
只看该作者
投票
交易
悬赏
活动
相关内容
ITPUB论坛
≡ 数据库技术 ≡
> Oracle数据库管理
> Oracle开发
> Oracle Developer Suite
> Oracle入门与认证
> Oracle专题深入讨论
> Oracle新技术/11g
> Oracle电子文档
> Oracle Application Server套件
> IBM数据库产品
> MS SQL Server
> Sybase管理与开发
> MySQL及其它开源数据库
> 内存数据库
> 数据仓库与数据挖掘
> 移动及嵌入式数据库
≡ 企业信息化 ≡
> ERP产品与实践
> CRM产品与实践
> HR产品与实践
> 物流
> 供应链
> 供应链建模与仿真
> 物流设备与系统工程
> 企业管理咨询
> 管理协同与办公自动化
> IT服务管理
> 数据中心建设
> ERP二次开发
> Oracle ERP
> EBS相关文档
> PeopleSoft与JDE
> SAP R/3
> SAP Business One开发与快速实施
> SAP财务及CRM
> SAP后勤及HR
> mySAP ERP
> 系统开发及跨应用设置
> SAP相关文档
> 国外其它ERP产品
> 国内ERP产品
≡ 开发技术 ≡
> Java入门与认证版
> Java web开发及框架技术
> Java企业开发
> ASP.NET【已迁移到微软开发技术论坛】
> .Net企业开发与应用【已迁移到微软开发技术论坛】
> WEB程序开发
> WEB 2.0技术
> 动态语言
> 移动与游戏开发
≡ 系统设计与项目管理 ≡
> 系统分析与UML
> 系统分析与UML精华区
> 项目管理
> 项目过程
> 软件测试
> 算法讨论与研究
≡ IBM软件技术园地 ≡
> IBM数据库产品
> Lotus
> Tivoli
> Websphere
> Rational
> 与SOA相关的IBM产品与技术
> IBM软件技术精英协会
> 软件技术精英活动专版
≡ 操作系统与硬件 ≡
> AIX及IBM产品【已迁移到IXPUB】
> HP-UX及HP产品【已迁移到IXPUB】
> Solaris及SUN产品【已迁移到IXPUB】
> Linux及其应用 【已迁移到IXPUB】
> 其它UNIX系统【已迁移到IXPUB】
> windows系统及微软相关产品 【已迁移到IXPUB】
> 存储设备与容灾技术 【已迁移到IXPUB】
> 服务器 【已迁移到IXPUB】
≡ 行业纵向讨论区 ≡
> IT业界评论与展望
> 政府与教育事业
> 中国政府信息主管联盟
> 电信行业
> 金融行业
> 医卫行业
> 制造行业
> 电力行业
> 信息安全与审计
≡ 会员交流 ≡
> IT职业生涯
> 招聘求职商务信息
> 体育世界
> 体育博彩专版
> 旅游,驴友
> 汽车世界
> 外语角
> 数码摄影
> 你的故事我的歌
> 音乐推荐区
> 电子图书与IT文档资料
> 软件交流
> 软件交流精华区
≡ ITPUB产品与服务 ≡
> ITPUB地面活动专版
> BLOG天地
> WIKI世界
> 授权用户区
> 站务管理
≡ 微软开发技术 ≡
> 开发工具和语言
> .NET Framework 相关
> Visual Basic/VB.net
> Visual C#
> Visual C++/vc.net
> Visual Studio
> .NET软件架构与模式
> .NET开发辅助工具及框架
> Web开发
> ASP.NET与AJAX
> Web相关技术讨论(IIS等)
> Silverlight 技术
> 微软企业级产品技术
> SQL Server
> windows server
> SharePoint
> Exchange Server
> Biztalk
> 嵌入式及移动开发
> Windows Embedded 嵌入式技术
> Windows 移动设备
> Office开发
> Microsoft office system
> Office Business Application
> 微软产品用户交流区
> .Net电子书籍&&书籍介绍
> .Net人才交流
技术积分榜
社区积分榜
徽章
电子杂志
会员
团队
统计
邮箱
游乐场
帮助
TOP
CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号
联系我们
法律顾问
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
升级个人空间
基本概况
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计