oracle 开发学习笔记 20071011
来源:互联网 发布:java调用短信接口代码 编辑:程序博客网 时间:2024/05/17 07:28
2007-10-11 oracle培训内容
/*
备注:字符串和日期的值用符号(‘)括起来。
*/
-- where 句的条件为真的场合
SQL> select * from t_department t where 1=1;
DEPT DEPTNAME DEPTSITE
---- ---------------------------------------- ----------------------------------------
10 経理 東京
20 研究開発 名古屋
30 営業 大阪
40 管理 東京
-- where 句的条件为假的场合
SQL> select * from t_department t where 1=2;
レコードが選択されませんでした。
-- 查询入社日为1981年11月17号的记录
SQL> select * from t_employee t
2 where t.startdate = to_date('1981-11-17','YYYY-MM-DD');
EMPNO EMPNAME POST SENIOR STARTDAT PAY COMMISSION DEPT
-------- ---------------------------------------- ---------------------------------------- -------- -------- ---------- ---------- ----
7839 林 社長 81-11-17 900000 10
where句的比较条件列表
比较条件 说明 例子 = 相等 col = 100
!= <> ^=
不等 col != 100
>= 以上 col >= 100
<= 以下 col <= 100
> 大于 col > 100
< 小于 col < 100
BETWEEN
a AND b
a以上b以下的范围 col BETWEEN 100 AND
200
NOT BETWEEN
a AND b a以上b以下的范围外 col NOT BETWEEN 100 AND
200 IN (list)
等于list内的任何值 col IN (10,20)
NOT IN (list)
不等于list内的任何值 col NOT IN (10,20)
IS NULL
含有NULL值 col IS NULL
IS NOT NULL
没有NULL值 col IS NOT NULL
LIKE 包含所选字符
col LIKE 'A%'
NOT LIKE
没有所选字符 col LIKE 'A%'
WHERE 句子的逻辑条件 逻辑条件 说明
NOT 否定 AND 逻辑与 OR 逻辑或 例子:
-- not
SQL> select * from t_employee where not deptno = 10;
-- and
SQL> select * from t_employee where deptno = 10 and post = '担当';
-- or
SQL> select * from t_employee where deptno = 10 or post = '担当';
/*
备注:逻辑条件的优先顺序
1:()
2:not
3:and
4:or
*/
SQL> select * from t_employee where deptno = 10
or deptno = 20
and post = '担当'
or not post = '課長'
and deptno = 30;
SQL> select * from t_employee where (deptno = 10
or deptno = 20 )
and post = '担当'
or not (post = '課長'
and deptno = 30);
/**//*
备注:BETWEEN AND
*/
-- **** 工资在180000以上300000以下的员工名单 ****
-- col BETWEEN a AND b
SELECT t.empname,t.pay FROM t_employee t
WHERE t.pay BETWEEN 180000 AND 300000;
-- col >= a AND col <= b
SELECT t.empname,t.pay FROM t_employee t
WHERE t.pay >= 180000 AND t.pay <= 300000;
-- **** 工资在180000以上300000以下以外的员工名单 ****
-- col NOT BETWEEN a AND b
SELECT t.empname,t.pay FROM t_employee t
WHERE t.pay NOT BETWEEN 180000 AND 300000;
-- col < a OR col > b
SELECT t.empname,t.pay FROM t_employee t
WHERE t.pay < 180000 OR t.pay > 300000;
/**//*
备注:IN
*/
-- 担当为‘营业’、‘科长’、‘担当’的记录
-- col IN ('a','b','c')
SELECT t.empname,t.post FROM t_employee t
WHERE t.post IN ('担当','営業','課長');
-- col = 'a' OR col ='b' OR col='c'
SELECT t.empname,t.post FROM t_employee t
WHERE t.post = '担当' OR t.post = '営業' OR t.post = '課長';
/**//*
备注:NOT IN
*/
-- 担当为‘营业’、‘科长’、‘担当’以外的记录
-- col NOT IN ('a','b','c')
SELECT t.empname,t.post FROM t_employee t
WHERE t.post NOT IN ('担当','営業','課長');
-- col != 'a' AND col !='b' AND col!='c'
SELECT t.empname,t.post FROM t_employee t
WHERE t.post != '担当' AND t.post != '営業' AND t.post != '課長';
/**//*
备注:LIKE
*/
-- **** 以‘长’字结尾的记录 ****
SELECT DISTINCT t.post FROM t_employee t
WHERE t.post LIKE '%長'
-- **** 第二个字为‘长’字的记录 ****
SELECT DISTINCT t.post FROM t_employee t
WHERE t.post LIKE '_長%'
-- **** 第二个字为‘长’字并且由两个字组成的记录 ****
SELECT DISTINCT t.post FROM t_employee t
WHERE t.post LIKE '_長'
/**//*
备注:ESCAPE关键字经常用于使某些特殊字符,如通配符:'%','_'转义为它们原
来的字符的意义,被定义的转义字符通常使用'',但是也可以使用其他的符号。
*/
-- **** 查询包含字符(_)的文字的场合 ****
INSERT INTO t_department VALUES('60','HEAD_OFFICE','東京');
INSERT INTO t_department VALUES('70','HEADAOFFICE','東京');
SELECT * FROM t_department t
WHERE t.deptname LIKE 'HEAD_%';
SELECT * FROM t_department t
WHERE t.deptname LIKE 'HEAD_%' ESCAPE '';
/**//*
备注:NOT LIKE
*/
-- **** 第一个字符不是‘課’字的记录
-- col NOT LIKE 'a%'
SELECT DISTINCT t.post FROM t_employee t
WHERE t.post NOT LIKE '課%';
/**//*
备注:排序
*/
-- **** 查询担当列为‘担当’的记录并且以部门NO升序排序
-- ASC
SELECT t.deptno,t.empname,t.pay,t.post
FROM t_employee t
WHERE t.post = '担当'
ORDER BY t.deptno;
-- DESC
SELECT t.deptno,t.empname,t.pay,t.post
FROM t_employee t
WHERE t.post = '担当'
ORDER BY t.deptno DESC;
/**//*
备注:多个列组合排序
*/
-- **** 查找部署番号为20的记录,并且以但当列为降序、工资列为升序表示
SELECT t.deptno,t.empname,t.pay,t.post
FROM t_employee t
WHERE t.deptno = '20'
ORDER BY t.post DESC,t.pay;
-- **** 查找部署番号为20的记录,并且以但当列为降序、工资列为降序表示
SELECT t.deptno,t.empname,t.pay,t.post
FROM t_employee t
WHERE t.deptno = '20'
ORDER BY t.post DESC,t.pay DESC;
/**//*
备注:排序其他部分
*/
-- **** 明确表示为升序的场合
SELECT t.deptno,t.empname,t.pay,t.post
FROM t_employee t
WHERE t.deptno = '20'
ORDER BY t.post DESC,t.pay ASC;
-- **** 检索列中不包含排序字段的场合
SELECT t.deptno,t.empname,t.pay,t.post,t.startdate
FROM t_employee t
WHERE t.deptno = '20'
ORDER BY t.startdate;
SELECT t.deptno,t.empname,t.pay,t.post
FROM t_employee t
WHERE t.deptno = '20'
ORDER BY t.startdate;
-- **** 指定列号排序 (t.deptno,t.pay)
SELECT t.deptno,t.empname,t.pay,t.post
FROM t_employee t
WHERE t.post IN ('担当','課長')
ORDER BY 1,3 ;
-- **** 给 工资*12 取个别名叫 Ypay 然后根据年收入升序排序
SELECT t.deptno,t.empname,t.pay * 12 Ypay
FROM t_employee t
WHERE t.post IN ('担当','課長')
ORDER BY Ypay ;
/*
备注:字符串和日期的值用符号(‘)括起来。
*/
-- where 句的条件为真的场合
SQL> select * from t_department t where 1=1;
DEPT DEPTNAME DEPTSITE
---- ---------------------------------------- ----------------------------------------
10 経理 東京
20 研究開発 名古屋
30 営業 大阪
40 管理 東京
-- where 句的条件为假的场合
SQL> select * from t_department t where 1=2;
レコードが選択されませんでした。
-- 查询入社日为1981年11月17号的记录
SQL> select * from t_employee t
2 where t.startdate = to_date('1981-11-17','YYYY-MM-DD');
EMPNO EMPNAME POST SENIOR STARTDAT PAY COMMISSION DEPT
-------- ---------------------------------------- ---------------------------------------- -------- -------- ---------- ---------- ----
7839 林 社長 81-11-17 900000 10
where句的比较条件列表
比较条件 说明 例子 = 相等 col = 100
!= <> ^=
不等 col != 100
>= 以上 col >= 100
<= 以下 col <= 100
> 大于 col > 100
< 小于 col < 100
BETWEEN
a AND b
a以上b以下的范围 col BETWEEN 100 AND
200
NOT BETWEEN
a AND b a以上b以下的范围外 col NOT BETWEEN 100 AND
200 IN (list)
等于list内的任何值 col IN (10,20)
NOT IN (list)
不等于list内的任何值 col NOT IN (10,20)
IS NULL
含有NULL值 col IS NULL
IS NOT NULL
没有NULL值 col IS NOT NULL
LIKE 包含所选字符
col LIKE 'A%'
NOT LIKE
没有所选字符 col LIKE 'A%'
WHERE 句子的逻辑条件 逻辑条件 说明
NOT 否定 AND 逻辑与 OR 逻辑或 例子:
-- not
SQL> select * from t_employee where not deptno = 10;
-- and
SQL> select * from t_employee where deptno = 10 and post = '担当';
-- or
SQL> select * from t_employee where deptno = 10 or post = '担当';
/*
备注:逻辑条件的优先顺序
1:()
2:not
3:and
4:or
*/
SQL> select * from t_employee where deptno = 10
or deptno = 20
and post = '担当'
or not post = '課長'
and deptno = 30;
SQL> select * from t_employee where (deptno = 10
or deptno = 20 )
and post = '担当'
or not (post = '課長'
and deptno = 30);
/**//*
备注:BETWEEN AND
*/
-- **** 工资在180000以上300000以下的员工名单 ****
-- col BETWEEN a AND b
SELECT t.empname,t.pay FROM t_employee t
WHERE t.pay BETWEEN 180000 AND 300000;
-- col >= a AND col <= b
SELECT t.empname,t.pay FROM t_employee t
WHERE t.pay >= 180000 AND t.pay <= 300000;
-- **** 工资在180000以上300000以下以外的员工名单 ****
-- col NOT BETWEEN a AND b
SELECT t.empname,t.pay FROM t_employee t
WHERE t.pay NOT BETWEEN 180000 AND 300000;
-- col < a OR col > b
SELECT t.empname,t.pay FROM t_employee t
WHERE t.pay < 180000 OR t.pay > 300000;
/**//*
备注:IN
*/
-- 担当为‘营业’、‘科长’、‘担当’的记录
-- col IN ('a','b','c')
SELECT t.empname,t.post FROM t_employee t
WHERE t.post IN ('担当','営業','課長');
-- col = 'a' OR col ='b' OR col='c'
SELECT t.empname,t.post FROM t_employee t
WHERE t.post = '担当' OR t.post = '営業' OR t.post = '課長';
/**//*
备注:NOT IN
*/
-- 担当为‘营业’、‘科长’、‘担当’以外的记录
-- col NOT IN ('a','b','c')
SELECT t.empname,t.post FROM t_employee t
WHERE t.post NOT IN ('担当','営業','課長');
-- col != 'a' AND col !='b' AND col!='c'
SELECT t.empname,t.post FROM t_employee t
WHERE t.post != '担当' AND t.post != '営業' AND t.post != '課長';
/**//*
备注:LIKE
*/
-- **** 以‘长’字结尾的记录 ****
SELECT DISTINCT t.post FROM t_employee t
WHERE t.post LIKE '%長'
-- **** 第二个字为‘长’字的记录 ****
SELECT DISTINCT t.post FROM t_employee t
WHERE t.post LIKE '_長%'
-- **** 第二个字为‘长’字并且由两个字组成的记录 ****
SELECT DISTINCT t.post FROM t_employee t
WHERE t.post LIKE '_長'
/**//*
备注:ESCAPE关键字经常用于使某些特殊字符,如通配符:'%','_'转义为它们原
来的字符的意义,被定义的转义字符通常使用'',但是也可以使用其他的符号。
*/
-- **** 查询包含字符(_)的文字的场合 ****
INSERT INTO t_department VALUES('60','HEAD_OFFICE','東京');
INSERT INTO t_department VALUES('70','HEADAOFFICE','東京');
SELECT * FROM t_department t
WHERE t.deptname LIKE 'HEAD_%';
SELECT * FROM t_department t
WHERE t.deptname LIKE 'HEAD_%' ESCAPE '';
/**//*
备注:NOT LIKE
*/
-- **** 第一个字符不是‘課’字的记录
-- col NOT LIKE 'a%'
SELECT DISTINCT t.post FROM t_employee t
WHERE t.post NOT LIKE '課%';
/**//*
备注:排序
*/
-- **** 查询担当列为‘担当’的记录并且以部门NO升序排序
-- ASC
SELECT t.deptno,t.empname,t.pay,t.post
FROM t_employee t
WHERE t.post = '担当'
ORDER BY t.deptno;
-- DESC
SELECT t.deptno,t.empname,t.pay,t.post
FROM t_employee t
WHERE t.post = '担当'
ORDER BY t.deptno DESC;
/**//*
备注:多个列组合排序
*/
-- **** 查找部署番号为20的记录,并且以但当列为降序、工资列为升序表示
SELECT t.deptno,t.empname,t.pay,t.post
FROM t_employee t
WHERE t.deptno = '20'
ORDER BY t.post DESC,t.pay;
-- **** 查找部署番号为20的记录,并且以但当列为降序、工资列为降序表示
SELECT t.deptno,t.empname,t.pay,t.post
FROM t_employee t
WHERE t.deptno = '20'
ORDER BY t.post DESC,t.pay DESC;
/**//*
备注:排序其他部分
*/
-- **** 明确表示为升序的场合
SELECT t.deptno,t.empname,t.pay,t.post
FROM t_employee t
WHERE t.deptno = '20'
ORDER BY t.post DESC,t.pay ASC;
-- **** 检索列中不包含排序字段的场合
SELECT t.deptno,t.empname,t.pay,t.post,t.startdate
FROM t_employee t
WHERE t.deptno = '20'
ORDER BY t.startdate;
SELECT t.deptno,t.empname,t.pay,t.post
FROM t_employee t
WHERE t.deptno = '20'
ORDER BY t.startdate;
-- **** 指定列号排序 (t.deptno,t.pay)
SELECT t.deptno,t.empname,t.pay,t.post
FROM t_employee t
WHERE t.post IN ('担当','課長')
ORDER BY 1,3 ;
-- **** 给 工资*12 取个别名叫 Ypay 然后根据年收入升序排序
SELECT t.deptno,t.empname,t.pay * 12 Ypay
FROM t_employee t
WHERE t.post IN ('担当','課長')
ORDER BY Ypay ;
- oracle 开发学习笔记 20071011
- oracle 学习开发笔记
- Oracle SQL开发学习笔记
- Oracle数据库开发学习笔记
- .net+oracle+crystalReports开发web应用程序学习笔记(一)
- .net+oracle+crystalReports开发web应用程序学习笔记(二)
- .net+oracle+crystalReports开发web应用程序学习笔记(
- .net+oracle+crystalReports开发web应用程序学习笔记(
- .net+oracle+crystalReports开发web应用程序学习笔记(一)
- Oracle学习笔记(7) 开发PLSQL子程序和包
- ORACLE 开发笔记
- Oracle SQL开发笔记
- oracle数据库开发笔记
- Oracle学习笔记--Oracle入门
- Oracle学习笔记
- 学习ORACLE笔记
- Oracle 学习笔记
- ORACLE学习笔记
- c语言中的时间处理函数集合
- Windows Embedded CE 6.0开发初体验(一)Windows CE概述
- 揭秘jbpm流程引擎内核设计思想及构架[收藏]
- js显示时间
- js源码--拖动div进行布局
- oracle 开发学习笔记 20071011
- the difference of echo&print function
- 自己做的一个触发器小示例
- 什么是bootloader程序及其功能和特点
- [转] Debian创始人Ian Murdock上海见面会
- Tapestry笔录
- NHibernate中对于多字段主键的Maping
- 演示了字符串在String ,ansi char ,std::string之间的转换
- JBOSS JBPM