1. DML语句包含以下语法:

    INSERT:往一个表中增加新行

    DELETE:从一个表中删除掉现有的行

    UPDATE:更改一个表中现有的行

  2. INSERT语句
    语法:INSERT INTO TABLE(COLUMN1,COLUMN2,....) VALUES(VAL1,VAL2,...)
    使用这种方法只能一次插入一行数据

    插入包含每一个列值的新行,按缺省顺序列出表中所有的列值.

  3. 创建带有结构的空表
    SQL> create table t as select * from  emp where =;---1是不会等于2的,给了这个假条件是使得创建的表只有emp里面的表结构,而没有数据
    
    Table created.
    
    SQL> select count(*) from e;
    
      COUNT(*)
    ---------- SQL> desc e
    名称 是否为空? 类型
    ----------------------------------------- -------- ----------------------------
    EMPNO NUMBER()
    ENAME VARCHAR2()
    JOB VARCHAR2()
    MGR NUMBER()
    HIREDATE DATE
    SAL NUMBER(,)
    COMM NUMBER(,)
    DEPTNO NUMBER()
  4. 插入一条数据,日期值和字符值要用单引号括起来
    SQL>insert into t values(,' SMITH', ' CLERK' ,'',' 17-DEC-80',,null,);
    
     row created.
    
    SQL> select * from t;
    
    EMPNO ENAME  JOB         MGR HIREDATE    SAL  COMM DEPTNO
    ----- ------ --------- ----- --------- ----- ----- ------
    SMITH CLERK -DEC- SQL>commit;
    Commit complete.
  5. 指定某列进行插值
    SQL> insert into t (empno,ename) values(,'ywb');
    
     row created.
    
    SQL> commit ;
    
    Commit complete.
    
    SQL> select * from t;
    
    EMPNO ENAME  JOB         MGR HIREDATE    SAL  COMM DEPTNO
    ----- ------ --------- ----- --------- ----- ----- ------
    SMITH CLERK -DEC-
    ywb
  6. truncate表,删除表的数据,不删除结构,drop才是一锅端

    ---Truncate是DDL语言,和其他DDL语言一样,他将进行隐式提交。

    SQL> truncate table t;
    
    Table truncated.
    
    SQL> select * from t;
    
    no rows selected
    
    SQL> rollback;
    
    Rollback complete.
    
    SQL> select * from t;
    
    no rows selected
  7. 修改某列的默认值alter table t modify column default value;
    SQL> alter table t modify sal default '';
    
    Table altered.
    
    SQL> insert into t (empno,ename) values(,'ywb');
    
     row created.
    
    SQL> select * from t;
    
    EMPNO ENAME  JOB         MGR HIREDATE    SAL  COMM DEPTNO
    ----- ------ --------- ----- --------- ----- ----- ------
    ywb
    ywb
  8. 插入特殊的值:例如日期---sysdate,自动获取日期
    SQL> insert into t(empno,ename,hiredate) values (,'ywb',SYSDATE);
    
     row created.
    
    SQL> select * from t;
    
    EMPNO ENAME  JOB         MGR HIREDATE    SAL  COMM DEPTNO
    ----- ------ --------- ----- --------- ----- ----- ------
    ywb
    ywb
    ywb -AUG-
  9. 日期对格式比较敏感:虽然插入是安装yyyy-mm-dd格式,但是显示又是另一种格式
    SQL> insert into e values(,'WARD','SALESMAN',,to_date('2014-08-19','yyyy-mm-dd'),,,);
    
    已创建  行。
    
    SQL> commit;
    
    提交完成。
    
    SQL> select * from e;
    
    EMPNO ENAME  JOB         MGR HIREDATE         SAL       COMM DEPTNO
    ----- ------ --------- ----- -------------- ----- ---------- ------
    SMITH CLERK -12月-
    ALLEN SALESMAN -8月 -
    WARD SALESMAN -8月 -
  10. 从另一个表中拷贝行:

    创建带有子查询的 INSERT语句

    不要使用 VALUES 子句

    SQL> insert into t select * from emp where empno=;
    
     row created.
    
    SQL> select * from t;
    
    EMPNO ENAME  JOB         MGR HIREDATE    SAL  COMM DEPTNO
    ----- ------ --------- ----- --------- ----- ----- ------
    ywb
    ywb
    ywb -AUG-
    SMITH CLERK -DEC-
  11. 子查询中的列要与INSERT子句中的列相匹配,不然会报错
    SQL> insert into t (empno,ename,job,sal) select empno,ename,job,sal from emp where empno=;
    -------------------注意:这里没有加关键字:values----
    row created. SQL> select * from t; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
    ----- ------ --------- ----- --------- ----- ----- ------
    ywb
    ywb
    ywb -AUG-
    SMITH CLERK -DEC-
    ALLEN SALESMAN ---插入过多的值---
    SQL> insert into t (empno,ename,job,sal) select * from emp where empno=;
    insert into t (empno,ename,job,sal) select * from emp where empno=
    *
    ERROR at line :
    ORA-: too many values
  12. 替代变量插入值:
    [oracle@oracle~]$ cd /u01
    vi .sql写入如下内容:
    insert into t values(&DEPTNO,'&DNAME','&LOC'); ---注意插入字符需要加引号
    在sqlplus中执行如下操作:
    SQL>@/u01/.sql;
    SQL> @/u01/.sql;
    Enter value for empno:
    Enter value for ename: yeb2
    Enter value for sal:
    old : insert into t(empno,ename,sal) values(&EMPNO,'&ENAME','&SAL')
    new : insert into t(empno,ename,sal) values(,'yeb2','') row created. SQL> select * from t; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
    ----- ------ --------- ----- --------- ----- ----- ------
    ywb
    ywb
    ywb -AUG-
    SMITH CLERK -DEC-
    ALLEN SALESMAN
    yeb2 rows selected.
  13. UPDATE 语句
    SQL> select * from t;
    
    EMPNO ENAME  JOB         MGR HIREDATE    SAL  COMM DEPTNO
    ----- ------ --------- ----- --------- ----- ----- ------
    SMITH CLERK -DEC- SQL> update t set ename='ywb' where empno=; row updated. SQL> select * from t; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
    ----- ------ --------- ----- --------- ----- ----- ------
    ywb CLERK -DEC-
  14. 同时更改多行多列:
    SQL> select * from t;
    
    EMPNO ENAME  JOB         MGR HIREDATE    SAL  COMM DEPTNO
    ----- ------ --------- ----- --------- ----- ----- ------
    ywb SALESMAN -DEC-
    ALLEN SALESMAN -FEB- SQL> update t set (ename,job)=(select ename,job from emp where empno=) where empno= or empno=; rows updated. SQL> select * from t; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
    ----- ------ --------- ----- --------- ----- ----- ------
    ALLEN SALESMAN -DEC-
    ALLEN SALESMAN -FEB- 这里尤其要注意,set(xx,xx)=(xx,xx)后面如果跟的是值则会报错:
    SQL> update t set (job,sal)=('haha',) where empno= or empno=;
    update t set (job,sal)=('haha',) where empno= or empno=
    *
    ERROR at line :
    ORA-: UPDATE ... SET expression must be a subquery
    后面跟的必须是子查询。
  15. DELETE语句:从表中删去现存的行
    SQL> delete  from t where empno=;
    
     row deleted.
    
    SQL> select * from t;
    
    EMPNO ENAME  JOB         MGR HIREDATE    SAL  COMM DEPTNO
    ----- ------ --------- ----- --------- ----- ----- ------
    ALLEN SALESMAN -DEC-
  16. 参照另一个表来删除行:

    (注:‘SCOTT’要大写)

    SQL> delete t where empno in(select empno from emp where ename='SCOTT');
    
     row deleted.
    
    SQL> select * from t;
    
    EMPNO ENAME  JOB         MGR HIREDATE    SAL  COMM DEPTNO
    ----- ------ --------- ----- --------- ----- ----- ------
    ALLEN SALESMAN -DEC-
  17. TRUNCATE语句:
    TRUNCATE语句:
    
    . 删除表中的所有数据,保留表结构,不能使用where子句
    
    . 是DDL语句,不是DML语句,一旦删除,不能回退
    
    SQL> truncate table e ;
    
    表被截断。
    
    SQL> select * from e;
    
    未选定行
    
    SQL> roll
    回退已完成。
    SQL> select * from e; 未选定行 

使用DML语句【weber出品必属精品】的更多相关文章

  1. 全世界最详细的图形化VMware中linux环境下oracle安装(二)【weber出品必属精品】

    <ORACLE 10.2.05版本的升级补丁安装> 首先我们解压 $ unzip p8202632_10205_LINUX.zip 解压后我们会发现多出了个文件夹,他是:Disk1,进入D ...

  2. 全世界最详细的图形化VMware中linux环境下oracle安装(一)【weber出品必属精品】

    安装流程:前期准备工作--->安装ORACLE软件--->安装升级补丁--->安装odbc创建数据库--->安装监听器--->安装EM <前期准备工作> 安装 ...

  3. oracle数据库事务相关【weber出品必属精品】

    事务的概念:事务:一个事务由一组构成一个逻辑操作的DML语句组成 事务有开始有结束,事务以DML语句开始,以Conmmit和Rollback结束.以下情况会使得事务结束: 1. 执行COMMIT 或者 ...

  4. 数据库对象(视图,序列,索引,同义词)【weber出品必属精品】

    视图视图的定义:视图就是一个查询的别名为什么使用视图限制数据的存取 SQL> conn /as sysdba 已连接. SQL> grant create view to scott; 授 ...

  5. 静默安装ORACLE【weber出品必属精品】

    安装配置系统环境安装linux ,所有服务都不选择,只是选择安装开发工具,不要安装防火墙(当然也可以在后面关闭) 打开终端,执行如下命令,检查安装包,没有的都要安装 make, glibc, liba ...

  6. 集合运算符之全集、交集、补集【weber出品必属精品】

    集合的概念 与数学中的全集.交集.补集的概念是一样的 常用的集合运算符 集合运算符的作用:把两个查询构造为一个联合查询 1. 全集:求连个查询的全集 union all:将两个查询的所有数据全部列出, ...

  7. 高级子查询【weber出品必属精品】

    多列子查询 where条件中出现多列与子查询进行比较 多列子查询分为:成对比较和非成对比较 成对比较: SQL> select ename,sal,job from emp where (dep ...

  8. ORACLE SQL 组函数【weber出品必属精品】

    组函数:对一组数据进行加工,每组数据返回一个值 常用的组函数:count()  avg()  max()   min()  sum()   count()函数  1. count(*) :返回总共的行 ...

  9. ORACLE SQL单行函数(三)【weber出品必属精品】

    16.L:代表本地货币符,这个和区域有关.这个时候我们想来显示一下人民币的符号:¥ $ vi .bash_profile ---写入如下内容: export NLS_LANG='SIMPLIFIED ...

随机推荐

  1. MLlib-分类与回归

    MLlib支持二分类,多酚类和回归分析的多种方法,具体如下: 问题类别 支持方法 二分类 线性支持向量机, 逻辑回归,决策树,朴素贝叶斯 多分类 决策树,朴素贝叶斯 回归 线性最小二乘,Lasso,r ...

  2. MVC linq语法分页

    分页效果图: 表格下面的分页按钮样式是我自己做的一个样式,这4个按钮都是用同一张图片:这张图片是用ps做的. 接下来我们说一下怎么去做这个样式 第一css代码: ._HomePage,._Previo ...

  3. Fedora 19+ 启动顺序调整

    首先找到Windows 8的menuentry cat /boot/grub2/grub.cfg | grep Windows 设置Windows 作为默认的启动项 grub2-set-default ...

  4. ExtJS5_自定义菜单1

    顶部和底部区域已经作好,在顶部区域有一个菜单的按钮,这一节我们设计一个菜单的数据结构,使其可以展示出不同样式的菜单.由于准备搭建的是一个系统模块自定义的系统,因此菜单也是自定义的,在操作员系统登录的时 ...

  5. Linux前传——今天的学习

    感觉每天早上搞一个C语言的趣味题,很不错,算是比较实际的事情了.而且,好多都不会,主要是算法,也有很多语法不知道,这样补强很有用.嵌入式方面的课题进展有条不紊,感觉相关寄存器和I/O的使用必须通过大量 ...

  6. JMS集群部署问题 java.net.ConnectException: Connection refused; No available router to destination

    1:本地spring配置如下 <!-- JndiTemplate --> <bean id="jndiTpl" class="org.springfra ...

  7. grunt serve Fatal error: Port 35729 is already in use by another process.

    y@y:~$ lsof | grunt y 0t0 TCP *: (LISTEN) Optimizin y 0t0 TCP *: (LISTEN) v8:Sweepe y 0t0 TCP *: (LI ...

  8. [EXCEL] 在单元格中自动输入时间和日期

    选中需输入的单元格,直接按下“Ctrl+:”组合键可输入当前日期:如果直接按下“Ctrl+Shift+:”组合键即可输入当前时间:当然也可以在单元格中先输入其他文字然后再按以上组合键,如先输入“当前时 ...

  9. Delphi 日志的方法 Log

    写一个日志的函数,只需要传内容进去即可,自动记录时间的,日志保存在'c:\ErpRunLog.txt'下procedure writeWorkLog(sqlstr: string);var filev ...

  10. Delphi TdxBarmanager

    在 Form 上放一个 BarManager鼠标右键它,可以建立一个 MainToolBar,鼠标右键MainToolBar,建什么随便你选.只不过,最后设置一下 BarManager 的 Image ...