【云计算】SQL语言:DML、DCL、TCL
小标 2019-02-11 来源 : 阅读 776 评论 0

摘要:本文主要向大家介绍了【云计算】SQL语言:DML、DCL、TCL,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。

本文主要向大家介绍了【云计算】SQL语言:DML、DCL、TCL,通过具体的内容向大家展现,希望对大家学习云计算有所帮助。

  SQL语言

一、DML


DATA MANIPULATION LANGUAGE 数据操纵语句


只要发起一个DML语句,此时会产一个事务,这个事务是需要TCL语句来控制的;


INSERT


插入数据到指定


INSERT INTO 表名 (employee_id,last_name,salary) VALUES(100,'liu',20000);


INSERT INTO 表名 values(值与表的列一对一进行匹配插入);


例:


INSERT 一次只能插入一条数据;


快速拷贝数据:


insert into emp select * from employees;


insert into emp select * from emp;


UPDATE


修改(更新)指定表的现有数据


UPDATE EMP SET SALARY=300 ;


不加限制条件,是修改整个表的记录


UPDATE EMP SET SALARY=500 WHERE LAST_NAME='liu';


UPDATE EMP SET SALARY=500 WHERE SALARY=1;


UPDATE EMP SET SALARY=500 WHERE salary is null;


UPDATE EMP SET SALARY=500 WHERE salary is not null;


UPDATE EMP SET SALARY=500 WHERE LAST_NAME LIKE 'zh%';


例:


COMMIT;保存


ROLLBACK;撤回上一步


DELETE


删除指定中的现有数据


DELETE FROM EMP;


DELETE EMP;


DELETE EMP WHERE salary >=10000;


delete from emp where salary < 10000;


例:


commit;


rollback;


MERGE


组合,把INSERT、UPDATE、DELETE三个命令做判断


create table A_MERGE


(


id NUMBER not null,


name VARCHAR2(12) not null,


year NUMBER


);


create table B_MERGE


(


id NUMBER not null,


aid NUMBER not null,


name VARCHAR2(12) not null,


year NUMBER,


city VARCHAR2(12)


);


create table C_MERGE


(


id NUMBER not null,


name VARCHAR2(12) not null,


city VARCHAR2(12) not null


);


commit;


insert into A_MERGE values(1,'liuwei',20);


insert into A_MERGE values(2,'zhangbin',21);


insert into A_MERGE values(3,'fuguo',20);


commit;


insert into B_MERGE values(1,2,'zhangbin',30,'jilin');


insert into B_MERGE values(2,4,'yihe',33,'hljian');


insert into B_MERGE values(3,3,'fuguo',null,'shandong');


commit;


MERGE INTO A_MERGE A USING (select B.AID,B.NAME,B.YEAR from B_MERGE B) C ON (A.id=C.AID)


WHEN MATCHED THEN


UPDATE SET A.YEAR=C.YEAR


WHEN NOT MATCHED THEN


INSERT(A.ID,A.NAME,A.YEAR) VALUES(C.AID,C.NAME,C.YEAR);


commit;


查找a表和b表中 a.id和c.aid相同的行


然后把c.year赋值给a.year


如果没查到与c.aid相同的行则插入C.AID,C.NAME,C.YEAR到A表中


二、DCL


DATA CONTROL LANGUAGE 数据控制语句,允许指定用可以有哪些权限,做什么事情


GRANT


授权


数据库中对于权限管理有2种方式:


权限授予


角色来授予:角是权限或者子角色的的集合,数据库中有2类权限:


1---系统权限,创建会话,创建表、创建视图,创建索引等


select * from dba_sys_privs; 查询数据库中有哪些系统权限


2---对象权限,是指用户A想去访问用户B的对象,此时需要用户B把相关权限授予给A


也可以使用数据库管理员权限授权


SELECT * FROM DBA_TAB_PRIVS; 查询数据库中有哪些对象权限


在创建数据库的时候,系统就有一些预定义的角色


SELECT * FROM DBA_ROLES;


查询数据中所有的角色


SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE='DBA';


查询DBA角色包含哪些系统权限


SELECT * FROM DBA_TAB_PRIVS WHERE GRANTEE='DBA';


查询DBA角色包含哪些对象权限


查询一个用户拥有什么角色:


SELECT * FROM DBA_ROLE_PRIVS WHERE GRANTEE='LOUIZ';


查询当前用户拥有哪些权限:


select * from session_privs;


三、TCL


TRANSACTION CONTROL LANGUAGE 事务控制语句


COMMIT----确认提交数据,让数据生效


ROLLBACK----反悔,让数据不生效


四、练习


select employee_id,last_name,job_id,department_id


from employees


where department_id=90;


select last_name,job_id,department_id


from employees


where last_name ='Whalen';


select last_name, hire_date


from employees


where hire_date = '07-MAR-06';


          

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标大数据云计算大数据安全频道!


本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程