`
longgangbai
  • 浏览: 7339528 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle 10g SQL Fundamentals II(学习笔记二第3-4章)

 
阅读更多
		第三章 大数据集合
		    从一个表中拷贝数据
				insert into sales(id,name,salary,commission_pct)
				select employee_id,last_name,salary
				from employees
				where job_id like '%REP%';
			
			
			将子查询作为insert的目标
				INSERT INTO
					(SELECT employee_id, last_name,
							email, hire_date, job_id, salary, 
							department_id
					 FROM   empl3
					 WHERE  department_id = 50) 
				VALUES (99999, 'Taylor', 'DTAYLOR',
						TO_DATE('07-JUN-99', 'DD-MON-RR'),
						'ST_CLERK', 5000, 50);
            
			获取数据使用子查询作为数据源
	            SELECT  a.last_name, a.salary, 
                    a.department_id, b.salavg
				FROM    employees a, (SELECT   department_id, 
									  AVG(salary) salavg
									  FROM     employees
									  GROUP BY department_id) b
				WHERE   a.department_id = b.department_id
				AND     a.salary > b.salavg;

		    update emp
			   set job_id=(select job_id from employees
			               where employee_id=205
						   )
			   ,salary=( select salary from employees
			               where employee_id=205
			   )
			  where  employee_id=114;
			  
			  
			  INSERT ALL插入多个表的数据
               语法				
				INSERT  ALL  
						INTO table_a VALUES(…,…,…)  
						INTO table_b VALUES(…,…,…)  
						INTO table_c VALUES(…,…,…)  
				   SELECT … 
				   FROM  sourcetab   
				   WHERE …;
				   
	           例如一:
					  INSERT  ALL
							INTO sal_history VALUES(EMPID,HIREDATE,SAL)   
							INTO mgr_history VALUES(EMPID,MGR,SAL)
					  SELECT employee_id EMPID, hire_date HIREDATE,           
							salary SAL, manager_id MGR 
					  FROM  employees   
					  WHERE employee_id > 200;

	            例如二:
					  INSERT ALL
							WHEN SAL > 10000 THEN   
								INTO sal_history VALUES(EMPID,HIREDATE,SAL) 
							WHEN MGR > 200   THEN    
								INTO mgr_history VALUES(EMPID,MGR,SAL)  
					  SELECT employee_id EMPID,hire_date HIREDATE,  
						salary SAL, manager_id MGR 
					  FROM   employees   
					  WHERE  employee_id > 200;
	             实例三:
					 INSERT FIRST
						WHEN SAL  > 25000          THEN    
							INTO special_sal VALUES(DEPTID, SAL)  
						WHEN HIREDATE like ('%00%') THEN    
							INTO hiredate_history_00 VALUES(DEPTID,HIREDATE)  
						WHEN HIREDATE like ('%99%') THEN    
							INTO hiredate_history_99 VALUES(DEPTID, HIREDATE)  
						ELSE  
							INTO hiredate_history VALUES(DEPTID, HIREDATE)
					SELECT department_id DEPTID, SUM(salary) SAL,         
						MAX(hire_date) HIREDATE  FROM   employees
					GROUP BY department_id;
					
					
				实例四:
					INSERT ALL
						INTO sales_info VALUES(employee_id,week_id,sales_MON)
						INTO sales_info VALUES(employee_id,week_id,sales_TUE)
						INTO sales_info VALUES(employee_id,week_id,sales_WED)
						INTO sales_info VALUES(employee_id,week_id,sales_THUR)
						INTO sales_info VALUES(employee_id,week_id,sales_FRI)
                     SELECT employe_id,week_id,sales_mon,sales_tue,sales_wed,sales_thur,sale_pri
                     FROM sales_source_data;

				MERGE语句的使用:
				      语法:
					     MERGE INTO table_name table_alias
						  USING (table|view|sub_query) alias
						  ON (join condition)
						  WHEN MATCHED THEN
							UPDATE SET 
							col1 = col_val1,
							col2 = col2_val
						  WHEN NOT MATCHED THEN
							INSERT (column_list)
							VALUES (column_values);

                     例如:插入或者更新empl3表信息
					 MERGE INTO empl3  c
					  USING employees e
					  ON (c.employee_id = e.employee_id)
					WHEN MATCHED THEN
					  UPDATE SET
						 c.first_name     = e.first_name,
						 c.last_name      = e.last_name,
						 ...
						 c.department_id  = e.department_id
					WHEN NOT MATCHED THEN
					 INSERT VALUES(e.employee_id, e.first_name, e.last_name,
							  e.email, e.phone_number, e.hire_date, e.job_id,
							  e.salary, e.commission_pct, e.manager_id, 
							  e.department_id);

             第四章分组相关的函数
			 语法:
			 SELECT	[column,] group_function(column)... 
				FROM		table
				[WHERE	condition]
				[GROUP BY	group_by_expression]
				[HAVING 	having_expression] 	
				[ORDER BY	column];

			 SELECT   department_id, job_id, SUM(salary), 
				 COUNT(employee_id)
				FROM     employees
				GROUP BY department_id, job_id ;



				SELECT   department_id, job_id, SUM(salary)
				FROM     employees  
				WHERE    department_id < 60
				GROUP BY ROLLUP(department_id, job_id);


				SELECT   department_id, job_id, SUM(salary)
				FROM     employees  
				WHERE    department_id < 60
				GROUP BY CUBE (department_id, job_id) ;


				SELECT   department_id DEPTID, job_id JOB, 
					 SUM(salary),
					 GROUPING(department_id) GRP_DEPT,
					 GROUPING(job_id) GRP_JOB
					FROM     employees
					WHERE    department_id < 50
					GROUP BY ROLLUP(department_id, job_id);
					
					
					SELECT   department_id, job_id, 
					 manager_id,avg(salary)
					FROM     employees
					GROUP BY GROUPING SETS((department_id,job_id), (job_id,manager_id));



				SELECT   department_id, job_id, manager_id, 
						 SUM(salary)
				FROM     employees 
				GROUP BY ROLLUP( department_id,(job_id, manager_id));



				SELECT   department_id, job_id, manager_id, 
						 SUM(salary)
				FROM     employees  
				GROUP BY department_id,
						 ROLLUP(job_id),
						 CUBE(manager_id);

 

分享到:
评论

相关推荐

    D17111GC11.Oracle.Database.10g.SQL.Fundamentals.II

    Oracle Database 10g SQL Fundamentals II是针对Oracle 10g数据库的高级SQL技术的学习资源。通过对上述知识点的深入理解和实践,可以极大地提升个人在Oracle数据库管理和开发方面的能力,为通过1z0-047 Oracle ...

    Oracle 11g SQL Fundamentals I

    ### Oracle 11g SQL Fundamentals I:详细解析 #### 一、课程概述 《Oracle 11g SQL Fundamentals I》是Oracle公司为初学者和有一定基础的数据库管理员提供的培训资料之一,主要目的是帮助学员掌握Oracle 11g版本中...

    Oracle Database SQL Fundamentals II.pdf

    Oracle Database SQL Fundamentals II的第二部分,意味着它是在基础教程的延续上更进一步地展开深入学习。 在这份教材中,涉及的知识点包括但不限于以下几个方面: 1. SQL语言基础:包括SQL的定义、功能、特点及其...

    Oracle Database 10g SQL Fundamentals I - Student Guide

    ### Oracle Database 10g SQL Fundamentals I - 学生指南 #### 一、概述 本学生指南旨在为学习者提供Oracle Database 10g SQL基础的全面介绍。Oracle Database 10g作为一款功能强大的关系型数据库管理系统,被广泛...

    Oracle Database 10g SQL Fundamentals I

    Oracle Database 10g SQL Fundamentals I 是一个深入学习Oracle数据库管理系统中SQL基础的课程,主要面向初学者和希望进一步掌握SQL语言的IT专业人士。在这个课程中,你会了解到如何使用SQL来管理和操作Oracle数据库...

    oracle 10g sql Fundamentals

    Oracle 10g SQL Fundamentals 是一套针对初学者和专业人士的教程,旨在深入理解Oracle数据库管理系统中的SQL(Structured Query Language)基础。这个版本是2.1,可能包含了更新的教学材料和改进的学习路径。 在...

    Oracle Database 11g - SQL Fundamentals I

    Oracle Database 11g SQL Fundamentals I 是一个深入学习Oracle数据库管理系统基础的教程,主要针对初学者和希望提升SQL技能的IT专业人士。Oracle 11g是Oracle公司的一个重要版本,提供了许多增强的功能和优化,使得...

    Oracle Database 11g SQL Fundamentals

    Oracle Database 11g SQL Fundamentals 是一套针对Oracle数据库系统SQL基础的官方教程,主要针对初学者和希望深入理解SQL语言的IT专业人士。这个教程详细介绍了如何在Oracle 11g环境中有效地使用SQL进行数据查询、...

    Oracle_Database_10g_SQL_Fundamentals_I.pdf

    Oracle 10g OCP官方课程列表: Oracle Database 10g: SQL Fundamentals Oracle Database 10g: Administration Workshop I Oracle Database 10g: Administration Workshop II

    Oracle Database 11g:SQL Fundamentals I1

    部分内容开头提到了这是 Oracle Database 11g: SQL Fundamentals I 的第二卷学生指南,版权信息和免责声明等法律条款,这些都确保了文档的正规性和合法性。此外,文档还列出了作者和技术贡献者名单,以及编辑、图形...

    Oracle Database 11g SQL Fundamentals 英文原版

    Oracle Database 11g SQL Fundamentals 是Oracle公司推出的一本针对初学者和数据库管理员的权威指南,旨在深入讲解SQL在Oracle 11g环境中的应用。这本书分为两个部分,全面覆盖了SQL的基础知识以及在Oracle数据库...

    oracle pl/sql fundamentals

    Oracle PL/SQL Fundamentals是Oracle University为学生设计的一份培训指南,旨在深入理解并掌握Oracle数据库中的PL/SQL编程基础。PL/SQL是Oracle数据库特有的结构化查询语言扩展,它结合了SQL的强大功能与过程性编程...

    oracle 10g sql Fundamentals.part01.rar

    oracle 10g sql Fundamentals.part01.rar

    oracle 11G sql fundamentals

    Oracle 11g SQL Fundamentals是学习Oracle数据库管理和开发的基础,尤其对于准备Oracle Certified Professional (OCP)考试的人员来说,这部分知识至关重要。SQL(Structured Query Language)是用于管理关系数据库的...

    [Oracle官方PPT讲义] Oracle DB 11g SQL Fundamentals I

    Oracle DB 11g SQL Fundamentals I 是一套官方提供的PPT讲义,旨在深入浅出地介绍Oracle数据库11g版本中的SQL基础概念和技术。在这一讲义中,你将全面学习到如何与Oracle数据库进行交互,理解SQL语言的基础结构,并...

    Oracle Database 11g SQL Fundamentals I Ed 2 _V1(CN)_Z0_051

    ### Oracle Database 11g: SQL ...通过完成**Oracle Database 11g: SQL Fundamentals I** 课程,学习者将能够熟练地使用SQL在Oracle 11g数据库中执行各种数据管理任务,并为进一步深入学习Oracle数据库打下坚实的基础。

    小布老师Oracle9i DBA Fundamentals II 视频教程学习笔记

    《小布老师Oracle9i DBA Fundamentals II 视频教程学习笔记》是针对Oracle数据库管理基础II课程的深入解析,由知名教育平台聚众培训视频网提供,旨在帮助学员掌握Oracle9i环境下数据库管理的核心技能。以下是该教程...

Global site tag (gtag.js) - Google Analytics