sqlplus scott/tiger
------3.1.1示例数据库概述
DESC dept
DESC emp
DESC bonus
DESC salgrade
SELECT * FROM dept;
SELECT * FROM emp;
SELECT * FROM bonus;
SELECT * FROM salgrade;
CONNECT sys/password AS sysdba
SELECT username, account_status FROM dba_users
WHERE username in ('SCOTT','HR');
ALTER USER hr IDENTIFIED BY pswd ACCOUNT UNLOCK;
CONNECT hr/pswd
CONNECT sys/password AS sysdba
ALTER USER hr PASSWORD EXPIRE ACCOUNT LOCK;
sqlplus hr/pswd
------3.1.3HR示例方案中的表结构
DESC regions
DESC countries
DESC locations
DESC departments
DESC employees
DESC job_history
DESC jobs
------3.2.1.1查询所有列
SELECT * FROM regions;
SELECT * FROM countries;
COLUMN street_address FORMAT A28
COLUMN city FORMAT A22
COLUMN state_province FORMAT A20
SELECT * FROM locations;
CLEAR columns
SELECT * FROM departments;
SELECT * FROM job_history;
SELECT * FROM jobs;
SELECT * FROM employees;
SELECT department_id, employee_id, first_name, last_name, hire_date FROM employees;
------3.2.1.2查询指定的列
SELECT employee_id, job_id 岗位, start_date, end_date FROM job_history;
SELECT DISTINCT country_id FROM locations;
------3.2.1.4使用WHERE子句指定查询条件
--使用默认的日期格式20-3月-00
SELECT employee_id, first_name, last_name, hire_date FROM employees
WHERE hire_date > '20-3月-00';
--不使用默认的日期格式2000-3-20
SELECT employee_id, first_name, last_name, hire_date FROM employees
WHERE hire_date > TO_DATE('2000-3-20', 'YYYY-MM-DD');
SELECT employee_id, first_name, salary, department_id FROM employees
WHERE department_id = 30;
SELECT employee_id, first_name, salary, department_id FROM employees
WHERE department_id = 30 AND salary > 3000;
SELECT first_name "First(姓)", last_name "Last(名)",
salary "工 资", commission_pct "奖金比例%"
FROM employees
WHERE salary >= 11000 AND commission_pct IS NOT NULL;
SELECT postal_code, city, country_id FROM locations
WHERE country_id IN('JP', 'US');
SELECT postal_code, city, country_id FROM locations
WHERE country_id = 'JP' OR country_id = 'US';
SELECT first_name, last_name, salary, hire_date FROM employees
WHERE salary BETWEEN 11000 AND 13000;
SELECT first_name, last_name, salary, hire_date FROM employees
WHERE salary BETWEEN 11000 AND 13000
AND hire_date BETWEEN '17-2月-96' AND '10-3月-97';
------3.2.1.5使用通配符指定字符串的模糊查询条件
SELECT first_name, last_name FROM employees
WHERE last_name LIKE 'Ma%';
SELECT first_name, last_name FROM employees
WHERE last_name LIKE '%ma%';
------3.2.1.6使用表达式
SELECT region_id || '是指' || region_name AS 地区编码的意思 FROM regions;
SELECT region_id, region_name,
CASE region_id
WHEN 1 THEN '欧洲'
WHEN 2 THEN '美洲'
WHEN 3 THEN '亚洲'
WHEN 4 THEN '中东和非洲'
ELSE '未定义'
END 中文地区名 FROM regions;
SELECT employee_id, first_name, job_id, salary, department_id,
CASE
WHEN salary > 20000 THEN '高工资'
WHEN salary > 10000 AND salary <= 20000 THEN '中等工资'
ELSE '低工资'
END 工资级别 FROM employees
WHERE department_id = 90;
------3.2.1.7使用ORDER BY子句对查询结果排序
SELECT rowid, rownum, first_name, salary, hire_date FROM employees
WHERE salary BETWEEN 11000 AND 13000;
SELECT rownum, first_name, salary, hire_date FROM employees
WHERE salary BETWEEN 11000 AND 13000
ORDER BY salary DESC, hire_date;
SELECT rownum, first_name, salary "工 资", hire_date FROM employees
WHERE salary BETWEEN 11000 AND 13000
ORDER BY "工 资" DESC, 4;
--不好的语句
SELECT employee_id, department_id FROM job_history
ORDER BY start_date;
--错误的语句
SELECT DISTINCT employee_id, department_id FROM job_history
ORDER BY start_date;
------3.2.2分组查询
查询雇员的最高工资、最低工资、平均工资、总工资
SELECT MAX(salary), MIN(salary), AVG(salary), SUM(salary)
FROM employees;
SELECT count(department_id), count(*), count(manager_id) FROM departments;
SELECT count(country_id), count(DISTINCT country_id) FROM locations;
------3.2.2.2使用GROUP BY子句
单列分组
SELECT department_id, MAX(hire_date), MIN(hire_date) FROM employees
GROUP BY department_id;
SELECT employee_id 雇员编码, count(*) 更换岗位次数 FROM job_history
GROUP BY employee_id
ORDER BY employee_id DESC;
SELECT employee_id 雇员编码, count(*) 更换岗位次数 FROM job_history
GROUP BY employee_id
ORDER BY 更换岗位次数 DESC;
按多列分组
SELECT department_id, job_id, COUNT(*), MAX(salary) FROM employees
WHERE department_id <= 50
GROUP BY department_id, job_id
ORDER BY department_id, job_id;
------3.2.2.3使用HAVING子句
SELECT department_id, MAX(salary), AVG(salary) avg_sal
FROM employees
WHERE department_id <= 50
GROUP BY department_id;
SELECT department_id, MAX(salary), AVG(salary) avg_sal
FROM employees
WHERE department_id <= 50
GROUP BY department_id
HAVING AVG(salary) >= 6000;
--错误的语句
SELECT department_id, MAX(salary), MIN(salary), AVG(salary), SUM(salary)
FROM employees;
SELECT employee_id, first_name, last_name, hire_date FROM employees
WHERE hire_date > '20-3月-00';
SELECT employee_id, first_name, last_name, hire_date FROM employees
HAVING hire_date > '20-3月-00';
--错误的语句,在HAVING子句中使用了别名
SELECT department_id, MAX(salary), AVG(salary) avg_sal
FROM employees
GROUP BY department_id
HAVING avg_sal >= 10000;
--错误的语句,在WHEREG子句中使用了聚合函数
SELECT department_id, MAX(salary), AVG(salary) avg_sal
FROM employees
WHERE AVG(salary) >= 10000
GROUP BY department_id;
--正确的语句
SELECT department_id, MAX(salary), AVG(salary) avg_sal
FROM employees
WHERE department_id <= 50
HAVING AVG(salary) >= 3000
GROUP BY department_id;
--错误的语句
SELECT department_id, MAX(salary), AVG(salary) avg_sal
FROM employees
HAVING AVG(salary) >= 3000
GROUP BY department_id
WHERE department_id <= 50;
------3.2.3连接查询
SELECT region_name FROM regions;
SELECT city FROM locations
WHERE country_id = 'UK';
SELECT region_name, city FROM regions, locations
WHERE country_id = 'UK';
相等连接
SELECT first_name, department_id FROM employees
WHERE employee_id = 177;
SELECT department_name FROM departments
WHERE department_id = 80;
SELECT first_name, department_name
FROM employees, departments
WHERE employees.department_id = departments.department_id
AND employee_id = 177;
等价
SELECT employees.first_name, departments.department_name
FROM employees, departments
WHERE employees.department_id = departments.department_id
AND employees.employee_id = 177;
SELECT e.first_name, d.department_name
FROM employees e, departments d
WHERE e.department_id = d.department_id
AND e.employee_id = 177;
三个表的等值连接
SELECT first_name, department_name, job_title
FROM employees e, departments d, jobs j
WHERE e.department_id = d.department_id
AND e.job_id = j.job_id
AND employee_id = 177;
不相等连接
SELECT e.first_name, e.salary, j.job_title, j.min_salary, j.max_salary
FROM employees e, jobs j
WHERE e.salary BETWEEN j.min_salary AND j.max_salary
AND e.employee_id = 177;
SELECT e.first_name, e.salary, j.job_title, j.min_salary, j.max_salary
FROM employees e, jobs j
WHERE e.salary > j.max_salary
AND e.employee_id = 177;
自身连接
SELECT a.employee_id, a.first_name, a.manager_id, b.first_name
FROM employees a, employees b
WHERE a.manager_id = b.employee_id
AND a.employee_id = 177;
SELECT employee_id, first_name, manager_id
FROM employees
WHERE employee_id = 177;
SELECT employee_id, first_name, manager_id
FROM employees
WHERE employee_id = 149;
SELECT a.employee_id, a.first_name, a.manager_id 上司,
b.manager_id 上司的上司
FROM employees a, employees b
WHERE a.manager_id = b.employee_id
AND a.employee_id = 177;
------3.2.4使用SQL92语法的连接查询
内连接
SELECT e.first_name, d.department_name
FROM employees e, departments d
WHERE e.department_id = d.department_id
AND e.emplo
没有合适的资源?快使用搜索试试~ 我知道了~
oracle11g宝典 光盘源代码
共114个文件
txt:100个
sql:12个
lst:1个
需积分: 9 29 下载量 69 浏览量
2009-03-13
22:58:56
上传
评论
收藏 87KB RAR 举报
温馨提示
oracle11g宝典 光盘源代码,里面对书中所讲详细的内容都有代码,希望对你有用。
资源推荐
资源详情
资源评论
收起资源包目录
oracle11g宝典 光盘源代码 (114个子文件)
result.lst 363B
set.sql 2KB
crtreport.sql 1KB
my_utlpwdmg.sql 549B
datafile.sql 544B
insert.sql 486B
script04.sql 339B
script09.sql 307B
script02.sql 162B
droptable.sql 78B
script01.sql 64B
script03.sql 56B
script.sql 55B
ch03sql.txt 18KB
ch14sql.txt 16KB
ch07sql.txt 16KB
ch04sql.txt 13KB
ch10sql.txt 12KB
ch11sql.txt 11KB
ch06sql.txt 10KB
ch16sql.txt 10KB
function.txt 9KB
transaction.txt 8KB
ch12sql.txt 7KB
ch17sql.txt 7KB
ch13sql.txt 7KB
ch19sql.txt 7KB
ch08sql.txt 6KB
ch18sql.txt 6KB
ch02sql.txt 5KB
ch15sql.txt 5KB
ch05sql.txt 4KB
report.txt 3KB
pkgexp2bd.txt 2KB
Readme光盘说明.txt 2KB
ch09sql.txt 1KB
ifexp3.txt 1KB
procexp1.txt 910B
procexp1.txt 910B
table1.txt 884B
curvarexp2.txt 838B
curvarexp1.txt 827B
curexp3.txt 811B
apimethod2.txt 808B
varray.txt 805B
procexp1_2.txt 754B
procexp1_2.txt 754B
apimethod1.txt 722B
forexp2.txt 704B
procexp1_1.txt 700B
procexp1_1.txt 700B
curexp4.txt 699B
apimethod3.txt 676B
table2.txt 662B
tr_emp_sal_comm.txt 657B
curexp2.txt 631B
curexp6.txt 628B
raiseerror3.txt 627B
raiseerror1.txt 627B
eptexp2.txt 606B
record.txt 590B
tr_i_o_reg_cou.txt 568B
type.txt 554B
eptexp6.txt 554B
vfield.txt 544B
curexp1.txt 544B
ifexp1.txt 536B
ifexp2.txt 532B
nullexp1.txt 527B
sqlcode1.txt 521B
curexp9.txt 512B
recorderror.txt 505B
whileloopexp1.txt 493B
curexp8.txt 492B
pkgexp2.txt 441B
funcexp1.txt 425B
eptexp1.txt 424B
sqlerrmsg.txt 388B
selectinto.txt 368B
tr_dept_emp.txt 357B
funcexp1_1.txt 352B
eptexp3.txt 350B
rowtype.txt 337B
eptexp7.txt 334B
ifexp4.txt 332B
tr_dept_time.txt 329B
interval.txt 317B
curexp5.txt 310B
varrayerror2.txt 308B
tr_reg_cou.txt 307B
eptexp5.txt 266B
curexp7.txt 265B
eptexp42.txt 258B
eptexp41.txt 258B
timestamp.txt 253B
pkgexp2bd_1.txt 239B
raiseerror2.txt 232B
funcexp2.txt 231B
pkgexp1.txt 226B
pkgexp1_1.txt 213B
共 114 条
- 1
- 2
资源评论
delphiPB
- 粉丝: 1
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- alu.v
- H21-282学习参考.pdf
- QuestionTwo.java
- QuestionOne.java
- AWS Certified Solutions Architect Study Guide -SAA-C03 .docx
- 校园小情书微信小程序源码 社区小程序前后端开源 校园表白墙交友小程序.rar
- OA办公自动化管理系统(Struts1.2+Hibernate3.0+Spring2+DWR).rar
- 简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
- 南京邮电大学数学实验:熟练掌握 Matlab 软件的基本命令和操作
- 简历-求职简历-word-文件-简历模版免费分享-应届生-高颜值简历模版-个人简历模版-简约大气-大学生在校生-求职-实习
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功