2019独角兽企业重金招聘Python工程师标准>>>

DML 数据操作语言
insert :
1、单行插入
insert into 表名(列名,列名....) values (要插入的内容)
insert into 表名 values (要插入的内容)
2、多行插入/子查询插入
insert into 表名 select ....;

单表查询:
>>>insert into dept1 values(13,'ulook','cd'); //表一共三个列要插入三个值
>>>insert into dept1(dname,loc) values('ulook','cd') ; // 
>>>insert into dept1(dname,loc,deptno) values(null,null,20); //可以插入空值
>>>insert into dept1 values(default);//插入默认值,前提是建表的时候给了默认值

多表插入:
>>>insert into test(job) select job from emp  where deptno=10; //插入的字符必须一致

>>select a.* ,dbms_rowid.rowid_block_number(rowid)rb,dbms_rowid.rowid_relative_fno(rowid) rf from dept a;//可以看到插入后的数据,放到哪个地方的。可以通过desc dbms-rowid 查看相关字段

update---修改数据库
1、update 表名 set 列名=要修改后的值; //工作中谨慎使用,会修改整个表
update 表名 set 列名=要修改后的值 where <>;
2、子查询的修改
update 表名 set 列名=(select ....)

>>>update dept1 set deptno=20 where loc='cd';

>>>update dept1 set dname=(select ename from emp where emp=7788);//子查询的修改

delete---删除
1、delete 表名;
delete 表名 where<>;
2、delete 表名 where (select...);
>>>delete dept1 where deptno in (select deptno from emp);

delete //并未正真删除,需要用alter 作空间回收才能真正删除
trun ;//数据真正删除用
alter table <>shrink space; //表空间的回收

merger into ---融合语句
meger into<表名1>
using <表名2> on <条件> //使用using指定数据的来源
when matchd then //当条件满足时,更新数据
update set 列名1=列名2
when not match then //当条件不满足是,插入数据
insert values (列值....)

SQL> create table emp1 as select ename,deptno,sal,empno from emp where deptno=10;

Table created.

SQL> select * from emp1;

ENAME        DEPTNO      SAL      EMPNO
---------- ---------- ---------- ----------
CLARK    10     2450       7782
KING    10     5000       7839
MILLER    10     1300       7934

SQL> merge into emp1 a
  2  using emp b on (a.empno=b.empno)
  3  when matched then
  4  update set sal=sal+1
  5  when not matched then
  6  insert values(b.ename,b.deptno,b.sal,b.empno);

14 rows merged.

SQL> select * from emp1
  2  ;

ENAME        DEPTNO      SAL      EMPNO
---------- ---------- ---------- ----------
CLARK    10     2451       7782
KING    10     5001       7839
MILLER    10     1301       7934
TURNER    30     1500       7844
WARD    30     1250       7521
MARTIN    30     1250       7654
SCOTT    20     3000       7788
BLAKE    30     2850       7698
JONES    20     2975       7566
ALLEN    30     1600       7499
FORD    20     3000       7902

ENAME        DEPTNO      SAL      EMPNO
---------- ---------- ---------- ----------
SMITH    20      800       7369
ADAMS    20     1100       7876
JAMES    30      950       7900

14 rows selected.

SQL> l
  1  merge into emp1
  2  using emp on (emp.empno=emp1.empno)
  3  when matched then
  4  update set sal=emp.sal
  5  when not matched then
  6* insert values(emp.ename,emp.deptno,emp.sal,emp.empno)
SQL> /

14 rows merged.
SQL> select * from emp1;

ENAME        DEPTNO      SAL      EMPNO
---------- ---------- ---------- ----------
CLARK    10     2450       7782
KING    10     5000       7839
MILLER    10     1300       7934
TURNER    30     1500       7844
WARD    30     1250       7521
MARTIN    30     1250       7654
SCOTT    20     3000       7788
BLAKE    30     2850       7698
JONES    20     2975       7566
ALLEN    30     1600       7499
FORD    20     3000       7902

ENAME        DEPTNO      SAL      EMPNO
---------- ---------- ---------- ----------
SMITH    20      800       7369
ADAMS    20     1100       7876
JAMES    30      950       7900

14 rows selected.

SQL> select * from emp1;

ENAME        DEPTNO      SAL      EMPNO
---------- ---------- ---------- ----------
CLARK    10     2450       7782
KING    10     5000       7839
MILLER    10     1300       7934
TURNER    30     1500       7844
WARD    30     1250       7521
MARTIN    30     1250       7654
SCOTT    20     3000       7788
BLAKE    30     2850       7698
JONES    20     2975       7566
ALLEN    30     1600       7499
FORD    20     3000       7902

ENAME        DEPTNO      SAL      EMPNO
---------- ---------- ---------- ----------
SMITH    20      800       7369
ADAMS    20     1100       7876
JAMES    30      950       7900

14 rows selected.

SQL> select * from emp1;

ENAME        DEPTNO      SAL      EMPNO
---------- ---------- ---------- ----------
CLARK    10     2450       7782
KING    10     5000       7839
MILLER    10     1300       7934
TURNER    30     1500       7844
WARD    30     1250       7521
MARTIN    30     1250       7654
SCOTT    20     3000       7788
BLAKE    30     2850       7698
JONES    20     2975       7566
ALLEN    30     1600       7499
FORD    20     3000       7902

ENAME        DEPTNO      SAL      EMPNO
---------- ---------- ---------- ----------
SMITH    20      800       7369
ADAMS    20     1100       7876
JAMES    30      950       7900

14 rows selected.

TCL--- 事务的操作,用来保证数据的一致型
事务是如何产生:
dml,ddl,dcl
事务结束:
commit/dd/exit/conn/ 断电 /rollback

commit ----事务完成 //如果在一个终端执行dml操作,如果事务未结束,其他的终端用户不能够看到我dml操作的内容但是我事务结束后,另外的终端是可以看到操作后的表
rollback---在事务为提交前才能生效 //回滚的位置是回滚到最近一次执行--commit操作的位置
我们可以用savepoint s1设置保存点,用rollback to s1(保存点)--回到我们想回到的位置

在进行DML操作时,会生成一个表级锁或者行级锁,只能在当前用户当前终端 才能进行操作,其他用户和终端无法操作。只有等当前事务操作完毕后才会释放锁,其他用户才可以操作。

>>>select *from emp for update ;//先申请锁表,再进行操作

转载于:https://my.oschina.net/liubaizi/blog/793631

sql----DML ,TCL相关推荐

  1. PL/SQL -- DML 触发器

    --======================= -- PL/SQL --> DML 触发器 --======================= 何谓触发器?简言之,是一段命名的PL/SQL代 ...

  2. SQL DML操作之增删改查

    SQL 是结构化查询语言(Structured Query Language)简称,是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统.SQL 语句用于取回和更新数据库中的数据.SQL 可与 ...

  3. sql中TCL语句(事务控制语句)

    目录 事务 事务是怎么做到多条DML语句同时成功和同时失败的呢? 提交事务 回滚事务 事务包括4个特性 隔离性 使用保留点 SAVEPOINT TCL语句表示事务控制语言 commit 事务提交 ro ...

  4. SQL DML 数据操纵语句

    前言 DML(Data Manipulation Language)语句:数据操纵语句,用于添加.删除.更新和查询数据库记录,并检查数据完整性.常用的语句关键字主要包括 insert.delete.u ...

  5. SQL四种语言:DDL,DML,DCL,TCL

    1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema ...

  6. SQL 四大功能DDL/DML/DCL/TCL

    SQL主要分成四部分: (1)数据定义.(SQL DDL)用于定义SQL模式.基本表.视图和索引的创建和撤消操作. (2)数据操纵.(SQL DML)数据操纵分成数据查询和数据更新两类.数据更新又分成 ...

  7. DDL DML DCL TCL

    1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema ...

  8. 第一讲SQL命令的DDL和DML操作讲解

    知识点: 一.sql命令DDL(结构化操作) 二.sql命令DML操作(增删改查) 1.sql命令DDL(结构化操作) 1.1表添加字段: alter table 表名 add 列定义 如: alte ...

  9. DDL、DML、DCL的理解

    1.DDL 1-1.DDL的概述 DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表.视图等等,DDL对这 ...

  10. mysql中括号_《MySQL数据库》SQL简介、语法格式

    一.SQL的简介 结构化查询语言(Structured Query Language),简称SQL.它是专门用来访问数据库的标准编程语言.它可以用于存储数据,查询数据,更新数据以及管理关系型数据库等操 ...

最新文章

  1. python二十九:__name__
  2. pycharm 使用教程
  3. java中的操作符(位操作符>>与>>>的区别)
  4. 嗓子痛引发大抢救!33岁程序员的垂死经历,为所有人敲响警钟!
  5. 运用begin和end截取值
  6. 陶瓷移动在飞信版C++女程序员
  7. amazon aws ip check
  8. socket.io html5 聊天,WebSocket探讨之——socket.io搭建多聊天室
  9. Java实现的各种排序算法
  10. 【嵌入式模块】DS18B20 数字温度传感器
  11. Java枚举(enum)
  12. 【学术相关】人工智能300年!LSTM之父万字长文:详解现代AI和深度学习发展史...
  13. 邮件开发:邮件作用、邮件服务器、电子邮箱与邮件客户端软件
  14. Outlier Detection Based on Fuzzy Rough Granules in Mixed Attribute Data论文精读
  15. Linux 用户 quote 配置 说明
  16. photo2cartoon环境搭建-真人头像卡通画-写实
  17. 找不到anaconda prompt
  18. 哈尔滨工业大学计算机考研专业课,2020考研哈尔滨工业大学计算机考研考试科目...
  19. 基于Dlib模型实现驾驶员疲劳检测项目
  20. 在阿里云从0开始部署vue+springboot项目

热门文章

  1. Inception v1
  2. 公式推导以及仿真代码的修改 11-28
  3. 2020 恒生电子 面经
  4. 线性空间的向量组与数量矩阵的乘法
  5. 贝叶斯公式和共轭分布
  6. MATLAB 生成随机数
  7. 20.有效的括号(力扣leetcode) 博主可答疑该问题
  8. CSS之cursor用法
  9. Web jsp开发学习——Servlet提交表单时用法
  10. docker nginx 反向代理