awed
oralce学习笔记2
08-4-17下午和晚上
--
having 对分组进行限制,
--
查询按部门分组统计平均工资大于2000的部门
select
round
(
avg
(sal),
2
),deptno
from
emp
group
by
deptno
having
avg
(sal)
>
2000
--
子查询,在一个查询中包含另一个查询
--
查询员工工资大于所有员工平均工资的员工
select
ename,sal
from
emp
where
sal
>
(
select
avg
(sal)
from
emp)
--
查询各部门中工资最高的员工
select
A.ename,A.sal,A.Deptno
from
emp A
join
(
select
max
(sal) maxsal,deptno
from
emp
group
by
deptno) B
on
(A.Deptno
=
B.deptno
and
A.sal
=
B.maxsal)
--
查询各部门中工资最高的员工,和其工资等级
select
C.ename,C.sal,D.grade,C.Deptno
from
salgrade D
join
(
select
A.ename,A.sal,A.Deptno
from
emp A
join
(
select
max
(sal) maxsal,deptno
from
emp
group
by
deptno) B
on
(A.Deptno
=
B.deptno
and
A.sal
=
B.maxsal)) C
on
(C.sal
between
D.LOSAL
and
D.HISAL)
--
查询员工的名称,工资及工资等级
select
ename,sal, grade
from
emp A, salgrade B
where
(A.Sal
between
B.losal
and
B.hisal)
--
查询所有员工的名称和其经理的名称
select
A.empno,A.ename, B.ename
as
marname
from
emp A,emp B
where
A.mgr
=
B.empno
--
查询员工的姓名和其所在部门的名称
select
ename,dname
from
emp a,dept b
where
a.deptno
=
b.deptno
select
ename,dname
from
emp a
join
dept b
on
a.deptno
=
b.deptno
--
左连接,即当左边表没有与右边表匹配的时候,显示左表的全部数据
select
A.empno,A.ename, B.ename
as
marname
from
emp A
left
join
emp B
on
A.mgr
=
B.empno
--
右连接,即当左边表没有与右边表匹配的时候,显示右表的全部数据
select
A.empno,A.ename, B.dname
from
emp A
right
join
dept B
on
A.deptno
=
B.deptno
--
求所有员工的平均薪水等级
select
avg
(C.grade)
from
(
select
A.Empno,A.Ename,A.Sal,A.Deptno,B.grade
from
emp A
join
salgrade B
on
A.Sal
between
B.losal
and
B.hisal) C
--
查询所有员工中,为经理人的名称
select
ename
from
emp
where
empno
in
(
select
distinct
mgr
from
emp)
--
比普通员工薪水还要高的经理人
select
ename
from
emp
where
empno
in
(
select
distinct
mgr
from
emp
where
mgr
is
not
null
)
and
sal
>
(
select
max
(sal)
from
emp
where
empno
not
in
(
select
distinct
mgr
from
emp
where
mgr
is
not
null
)
--
所有经理人的编号
)
--
比较效率
select
*
from
emp
where
deptno
=
10
and
ename
like
'
%A%
'
;
--
第一条高于第二条,当第一个条件不合适的时候就不用去核对第二个条件,而第一个条件较小所以会快些
select
*
from
emp
where
ename
like
'
%A%
'
and
deptno
=
10
--
创建表语句 create
orcal常用的类型有
非空约束:
NOT
NULL
唯一约束:
UNIQUE
主键约束:
PRIMARY
KEY
外建约束:
REFERENCES
外键约束被参考字段必须为主键
如:
CREATE
TABLE
CLASS(ID
NUMBER
(
8
)
PRIMARY
KEY
,NAME
VARCHAR2
(
20
)
NOT
NULL
)
CREATE
TABLE
STUDENT (
ID
NUMBER
(
8
)
PRIMARY
KEY
,
CLASS
NUMBER
(
8
)
NOT
NULL
REFERENCES
CLASS(ID),
--
增加了一个外键约束,关链CLASS表的ID
NAME
VARCHAR2
(
20
)
NOT
NULL
)
也可以这样写
CREATE
TABLE
STUDENT (
ID
NUMBER
(
8
)
NOT
NULL
,
CLASS
NUMBER
(
8
)
NOT
NULL
,
NAME
VARCHAR2
(
20
)
NOT
NULL
,
CONSTRAINT
S_ID_PK
PRIMARY
KEY
(ID),
CONSTRAINT
S_C_RE
FOREIGN
KEY
(CLASS)
REFERENCES
CLASS(ID)
)
明天需要弄清楚的事:
如何在WEBLOGIC9上建立数据源
在建表时跟在字段后的约束为字段级约束,建完字段后使用CONSTRAINT建立的约束为表
级约束,可以给约束创建约束名。
CONSTRAINT
增加表级约束
如:增加约束,不能同时出现NAME,ADDRESS,AGE相同的数据
CREATE
TABLE
TEST (
NAME
VARCHAR2
(
20
)
NOT
NULL
,
ADDRESS
VARCHAR2
(
128
),
AGE
NUMBER
(
2
),
CONSTRAINT
NAME_ADD_AGE_UNI QNIQUE (NAME,ADDRESS,AGE)
)
posted on 2008-04-18 10:02
一鸣
阅读(1113)
评论(0)
编辑
收藏
所属分类:
SQL
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
Sybase数据库清除日志的做法
SQL Server教程。
oralce学习笔记2
oracle学习笔记
导航
BlogJava
首页
新随笔
联系
聚合
管理
统计
随笔 - 10
文章 - 0
评论 - 5
引用 - 0
公告
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(3)
给我留言
查看公开留言
查看私人留言
随笔分类
HIBERNATE
(rss)
hibernate jpa
(rss)
J2EE(2)
(rss)
J2SE(1)
(rss)
SPRING
(rss)
SQL(4)
(rss)
STRUTS
(rss)
WebService(1)
(rss)
随笔档案
2010年9月 (1)
2009年6月 (1)
2008年7月 (1)
2008年6月 (1)
2008年4月 (5)
2007年12月 (1)
搜索
最新评论
1. re: 利用JS获取上传文件大小
不够安全,所以这种方式无法再真正的项目中使用
--游客
2. re: 利用JS获取上传文件大小
@大刀
楼上正解
--实施
3. re: 利用JS获取上传文件大小
这个垃圾控件,难道你是想所有使用它得人都去改自己的浏览器安全级别么?
--大刀
4. re: 自动装箱与拆箱的误用
@隔叶黄莺
谢谢您的指正,很久没有写记录的习惯了,在此谢谢你的指正,我也一定更加努力。
--一鸣
5. re: 自动装箱与拆箱的误用
评论内容较长,点击标题查看
--隔叶黄莺
阅读排行榜
1. 利用JS获取上传文件大小(6924)
2. Sybase数据库清除日志的做法(3807)
3. DWR+VML实时曲线(2064)
4. 自动装箱与拆箱的误用(1800)
5. 常用验证JS(1393)
评论排行榜
1. 利用JS获取上传文件大小(3)
2. 自动装箱与拆箱的误用(2)
3. Java书籍分享(0)
4. WebService简介(0)
5. Sybase数据库清除日志的做法(0)
Powered by:
BlogJava
Copyright © 一鸣