`
Luob.
  • 浏览: 1572675 次
  • 来自: 上海
社区版块
存档分类
最新评论

Oralce DDL,DML,DQL,DCL,TCL

阅读更多
--Oracle 
--day:2010-4-8  author:luobing  



create or replace procedure PROC_INSERT_BLDAREN(rownums IN number)
    is
    begin
        truncate table BI_BAOLIAO_DAREN;
        insert into BI_BAOLIAO_DAREN (ID,USERID,USERNAME,BAOLIAONUM,CREDITS) select bi_baoliao_sequence.nextval,bl.* from (select b.userid,b.username,count(b.id),sum(b.credits) credits from bi_baoliao b  group by b.userid,b.username order by credits desc) bl where rownum <=rownums;
    END PROC_INSERT_BLDAREN;


________________________________DDL(Data Definition Language 数据对象定义语言)___________________________
    
			CREATE : 在数据库中创建新的数据对象
			ALTER : 修改数据库中对象的数据结构
			DROP : 删除数据库中的对象
			DISABLE/ENABLE TRIGGER : 修改触发器的状态
			UPDATE STATISTIC : 更新表/视图统计信息
			TRUNCATE TABLE : 清空表中数据
			COMMENT : 给数据对象添加注释
			RENAME : 更改数据对象名称
__________________________________________________________________________________________________________


--查询日期字段
--方法1
select to_char(date1,'yyyy-mm-dd mm:hh:ss') "Date" from table1;
--方法2
select cast(date1 as timestamp) "Date" from table1;

select * from tb_shop;


create table tb_shopType
(
       Id number(10) primary key,
       typeName varchar2(10) not null
 );


create table tb_shop
(
       Id number(10) primary key,
       shopId varchar2(20) unique not null,
       shopName varchar2(20)  not null,
       price number(6,2) check(price>0) not null, --添加check约束 ==>constraint ch_price check(price>0),
       shopTypeId number(10) not null,   -- ==>可以写成  references tb_shopType(Id),
       manufactoruingdate date not null,
       constraint fk_shopTypeId foreign key(shopTypeId) references tb_shopType(Id)
       
);

--向表中添加一个新列
alter table tb_shop add memo varchar2(100);

--修改表中列名为memo的类型
alter table tb_shop modify memo varchar2(50);

--删除表中的一列
alter table tb_shop drop column memo;

--删除表中所有的行记录
truncate table tb_shop;

--删除表对象
drop table tb_shop;




________________________________________DML(Data Manipulation Language  数据操作语言)________________

			Insert :将数据插入到表或视图
			Delete :从表或视图删除数据
			Select :从表或视图中获取数据
			Update :更新表或视图中的数据
			Merge : 对数据进行合并操作(插入/更新/删除)
______________________________________________________________________________________________________

--Insert 语句
         --普通
         insert into tb_shopType values(1,'家电类');
         --插入日期值
         insert into tb_shop values(1,'s003','电脑',3400.00,1,'11-3月-10');
         insert into tb_shop values(2,'s002','LenoveG50',4500.00,1,'11-3月-10');
--Update 语句
         --更新 产品日期为  11-3月-10 的商品的价格+100;
         update tb_shop t set t.price=t.price+100 where t.manufactoruingdate='11-3月-10';
         update tb_shop t set t.shopName='LenovoG450' where t.shopname='LenoveG50';
--Delete 语句
         --删除 商品中日期为 11-3月-10 且名称为LenovoG450的 商品
         delete tb_shop t where t.shopName='LenovoG450' and t.manufactoruingdate=to_date('2010-3-11','yyyy-mm-dd');  --使用了TO_DATE函数




________________________________________DQL(Data Query Language  数据查询操作语言)________________

select:用来查询数据的 

__________________________________________________________________________________________________________________


--Select 语句
         --单行子查询 (查询公司中工资最高的员工的信息)
         Select first_name,last_Name,salary from employees where salary=(select max(salary) from employees);
         
         --多行子查询 必须使用多行运算符(IN ,NOT IN ,EXISTS NOT EXISTS,ALL ANY)
         --查询工资 大于部门编号为20的所有员工薪水 的员工信息
         select first_name,last_name,salary,department_id from employees where salary>=all(select salary form employees where deparement_id=20);
         
         --多列子查询 (查询个部门中工资最低的员工的信息)
         select first_name,last_name,salary,deparment_id from employees where (salary,deparment_id) in(select min(salary),department_id from employees group by department_id) order by department_id; 
         
         --相关子查询 (查询负责管理其他员工的管理员信息)
         select employee_id,first_name,last_name,department_id from employees a where exists ( select * from employees b where b.manager_id=a.employee_id) order by department_id,employee_id;
         
         
--________________________DDL,DML 中使用子查询___________________________
         --1.Create Table {使用employees中的几个新列,创建一个新表,并插入department_Id为90 和110 的部门的员工
         create table emp (empId,ename,hireDate,deptId) as select a.employee_id,a.first_name||a.last_name,a.hire_date,a.department_id from employees a where a.department_id in(90,110);
         
         --2.Insert {将一个表中的数据插入到另一个表中(将表中部门编号为20 的所有员工信息添加到 emp中)
         insert into emp select a.employee_id,a.first_naem||a.last_name,a.hire_date,a.department_id from employees a where a.department_id=20;
         
         --3 Delete {删除emp中 位于Marketing 部门的雇员信息}
         delete emp where emp.deptid=(select department_id from departments where department_name='Marketing');
         
         --4 Update {将员工206的hiredate 和 depti 的之设置成 员工100的 }
         update emp set(hiredate,deptid)=(select hiredate,deptid from emp where emp.empid=206) where emp.empid=100;
         



       
______________________________DCL(Data Control Language 数据对象权限控制语言)________________________________________________
	GRANT : 赋予用户某种控制权限
	REVOKE :取消用户某种控制权限

______________________________________________________________________________________________________________________________

--Grant  (授权)
         --1: Select {授予查询权限
         grant select on emp to scott;
         
         --2: Select {授予emp表的某empid,ename列的查询权限 必须使用视图}
              create view view_emp as select empid,ename from emp;
              grant select on view_emp to scott;
              
         --3: Update {授予scott对某empid,ename列的更新权限
         grant update(empid,ename) on emp to scott;
         
         --4: ALL   { 授予emp表对象的所有权限给scott}
         grant all on emp to scott;
         
         --5: Insert update delete select 权限 和上面 一样
         grant insert /*(update/delete/insert)*/ on emp to scott;  
         
--Revoke (撤销权限)
         --1: delete  撤销 scott 对emp 的delete权限
         Revoke  delete on emp to scott;   


连接查询
– 左连接通用写法:select * from a left join b on a.id=b.id

– 右连接通用 写法:select * from a right join b on a.id=b.id 

– 全连接通用 写法:select * from a full join b on a.id=b.id 

– 左连接Oracle 写法:select * from a,b where a.id=b.id(+) 

– 右连接Oracle 写法:select * from a,b where a.id (+) =b.id

--自连接select w.ename||' work for '||m.job from emp w,emp m  where w.empno=m.empno;         
     



___________________________________TCL(Transaction ControlLanguage 事务控制语言)___________________________
		COMMIT : 保存已完成事务动作结果
		SAVEPOINT : 保存事务相关数据和状态用以可能的回滚操作
		ROLLBACK : 恢复事务相关数据至上一次COMMIT操作之后
		SET TRANSACTION : 设置事务选项
___________________________________________________________________________________________________________


 --Commit
        --1  在 sqlplus中 要commit;
        commit;
        
--Rollback 
       --1  在 insert  Update  delete  后 是用 Rollback
       rollback; 
       
       --2 有 savepoint 时候 撤销  保存点后的所有操作
       savepoint p1;
       rollback to p1; --或者下面的
       rollback to savePoint p1;
  
分享到:
评论

相关推荐

    详解SQL四种语言:DDL DML DCL TCL

    本文详细介绍了sql的四种语言,包括数据定义语言(DDL)、数据操作语言(DML)、数据控制语言(DCL)和事物控制语言(TCL)。在这几种语言中有疑惑的可以来看看这篇文章。

    数据库的DDL、DML、DQL、DCL名词详解

    2,DML(DataManipulationLanguage):数据操作语言,用来定义数据库记录(数据); 3,DQL(DataQueryLanguage):数据查询语言,用来查询记录(数据); 4,DCL(DataControlLanguage):数据控制语言,用来定义...

    MySQL基础课堂笔记.md

    mysql 的最基础知识总结,包括DDL DML DQL DCL 以及不同分类的理解,类比记忆。一些常见的DDL DMLDCL 的相关语句。

    MySQL基础课堂笔记.html

    mysql 的最基础知识总结,包括DDL DML DQL DCL 以及不同分类的理解,类比记忆。一些常见的DDL DMLDCL 的相关语句。

    MySQL数据库-概括以及DDL、DML、DQL、DCL的详解

    mysql数据库基础知识,从介绍数据库的含义到创建数据表,对数据增删改查的知识,很是详细,一看就懂。

    DQL,DML, DDL,DCL区别.pdf

    .

    DQL,DML, DDL,DCL区别.docx

    .

    DDL与DML详解

    SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML, 数据定义语言DDL,数据控制语言DCL。其中用于定义数据的结构,比如 创建、修改或者删除数据库;DCL用于定义数据库用户的权限;在这篇文章中我将详细讲述这...

    简单mysql的sql语句模板

    包括DDL,DML,DQL,DCL,例如创建数据库,修改表等

    mysql基本语法,增删改查大全总结,以及常用的sql语句总结

    mysql语法大全总结,内含DDL,DML,DQL,DCL等语句,可作为工作学习的小字典,随时查看学习,查询所有数据库、查询当前数据库、创建数据库、删除数据库、切换数据库、查询当前数据库的所有表、查看指定表结构、查询指定...

    数据库基本操作指令大全.doc

    整理了mysql数据库的基本操作指令,挺齐全的,包含DDL,DML,DCL ,DQL。各种查询创建语句。对初学数据库操作的新人用处很大

    MySQL个人学习笔记

    囊括了ddl、dml、dcl、dql、函数、约束、事务、索引、各种查询语句,增删查改等等,以及一些概念性的解释和示例使用方法 适合想学习MySQL的初学者或者用来查询想使用的语句格式或者拿来复习温习也是很不错的选择,...

    MYSQL_DQL思维导图

    SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL。1. 数据查询语言DQL数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块:SELECT &lt;字段名表&gt;FROM...

    SQL语言共分为四大类

    SQL语言共分为四大类:数据查询语言DQL,数据操纵语言DML, 数据定义语言DDL,数据控制语言DCL。

    SQL系列之DDL/DCL语言

    SQL语言主要分为以下四类:数据定义语言(DDL):用于下定义和管理数据对象(库,表,索引,视图),包括数据库,数据表等,例如:CREATEDROP ALTER等语句。数据操作语言(DML):用于操作数据库对象中包含的数据,...

    JavaEE求职简历-姓名-JAVA开发工程师-范文.doc

    熟练掌握 使用jdbc标准连接数据库,掌握DDL、DML、DCL、DQL和C3P0\DBCP连接池的使用; 熟练掌握 Mysql 数据库select、insert、update、delete、modify等基本操作和聚合函数、子集、排序、分组、索引查询、子查询...

    数据库知识点整理.md

    非常详细的数据库知识点整理,主要涵盖:数据库基础知识、DDL、DML、DQL、DCL、事务讲解、Mysql、JDBC、Java操作Mysql、数据库连接池、Redis型非关系数据库、Java使用Jedis操作Redis数据库

    MySQL笔记整理.doc

    数据库,简而言之可视为电子化的文件柜——存储电子文件...这里有我整理的一些关于数据库的笔记(MySQL),其中包括了DDL、DML、DQL、DCL等知识,内容相对基础,适合小白用于复习使用,或者参照数据库视频教学等学习。

    数据库学习之MySQL (零)——纲举目张 文章导航

    数据库学习之MySQL (四)——DQL DDL DML DCL 事务 到底是什么 MySQL上手 DQL DQL基础查询语法 数据库学习之MySQL (五)——select 语句 IFNULL() CONCAT()的应用 数据库学习之MySQL (六)——条件查询 条件表达式 ...

Global site tag (gtag.js) - Google Analytics