数据库操纵语言(DML)用于查询和操纵模式对象中的数据,它不隐式地提交当前事务。

SELECT
INSERT
UPDATE
DELETE
CALL
EXPLAIN PLAN
LOCK TABLE
MERGE
使用算术操作符(在数值型数据上使用

SELECT ename, sal, sal+300   FROM    emp;

NULL值:NULL是一个值,它和“0”、“空白”不一样。

插入图片

定义列的别名:给列表达式提供一个不同的名字,该别名在列标题中使用。如果别名中包含空格或特定的字符或需要区分大小写时,需要使用双引号。
SELECT ename AS name, sal salary   FROM   emp;

SELECT ename "Name",  sal*12 "Annual Salary"  FROM   emp;[添加了引号,看清楚了]

连接符(||):将两个串结合在一起,两个串可以是列名或直接量

使用DISTINCT关键字消除所选择的重复行,只返回一行。
SELECT DISTINCT deptno  FROM   emp;

条件(WHERE):比较符

SELECT    ename, sal
  2  FROM     emp
  3  WHERE    sal BETWEEN 1000 AND 1500;

SELECT    empno, ename, sal, mgr
  2  FROM     emp
  3  WHERE    mgr IN (7902, 7566, 7788);


条件(WHERE):比较符,LIKE用例。Oracle支持两种匹配符号:「 % 」 和「 _ 」 ,符号「 % 」可匹配0个或 多个字符 ,符号「 _ 」可匹配任何单一字符 。

条件(WHERE):逻辑操作符 [and or not]


排序(ORDER BY子句):使得SQL在显示查询结果时将各返回行按顺序排列,返回行的排列顺序由ORDER BY 子句指定的表达式的值确定.
ASC:从小到大排序(default)
DESC:从大到小排序
ORDER BY子句在SELECT语句的最后
SELECT ename,job,deptno,hiredate
  2  FROM         emp
  3  ORDER BY hiredate DESC;

数值函数

日期类型:
Oracle是用数字来存储日期信息,数字的整数部分代表与Julian Calendar(罗马儒略历,公历)相距的天数 (由公元前4712年1月1日开始),而小数部分代表时、分和秒。
Oracle默认日期格式:DD-MON-YY
SYSDATE函数返回系统当前的日期和时间。
DUAL是Oracle内置的虚拟表,只有一行一列。
日期运算:不允许日期加日期
日期函数:


数据转换

转换函数:隐式转换
在赋值时,Oracle服务器能够进行自动转换的数据类型列表

显示转换

函数TO_CHAR
TO_CHAR(date, 'format_model')

SELECT    ename,     
  2        TO_CHAR(hiredate, 'fmDD Month YYYY') HIREDATE
  3  FROM      emp;

ENAME      HIREDATE
---------- -----------------
KING       17 November 1981
BLAKE      1 May 1981
CLARK      9 June 1981
JONES      2 April 1981
MARTIN     28 September 1981
ALLEN      20 February 1981

SELECT Ename,TO_CHAR(hiredate,'DD-Mon-YYYY')
FROM  emp
WHERE hiredate < TO_DATE('01-01-90','DD-MM-RR');

空值置换函数:如果表达式不为NULL,函数就返回该表达式的值。如果位空,就返回用来替换的值

NVL (expr1, expr2)
NVL2 (expr1, expr2, expr3)

函数可以使用date, character, 和number数据类型。
表达式的值和替换值类型必须匹配:
      NVL(comm,0)
      NVL(hiredate,'01-JAN-97')
      NVL(job,'No Job Yet')

条件表达式: CASE表达式
SELECT ename, job, sal,
       CASE job WHEN 'ANALYST'  THEN  1.10*sal
                   WHEN 'CLERK' THEN  1.15*sal
                   WHEN 'SALESMAN'   THEN  1.20*sal
       ELSE  sal END REVISED_SALARY
FROM   emp;

条件表达式: DECODE函数

SELECT ename, job, sal,
       DECODE(job, 'ANALYST',  1.10*sal,
                      'CLERK', 1.15*sal,
                      'SALESMAN',   1.20*sal,
              sal)
       REVISED_SALARY
FROM   emp;

函数的嵌套:单行函数能够在任何一个层次嵌套。


连接:
连接是将二个或多个表、视图或快照的行合并,每一返回行包含来自多个表的数据。每当在FROM子句中出现多表时ORACLE需要执行连接,WHERE子句决定如何连接。
在连接表时,应尽量避免迪卡尔乘积(Cartesian)。

如:SELECT    table1.column, table2.column
FROM    table1, table2
WHERE    table1.column1 = table2.column2;

连接:使用表的别名
SELECT e.empno, e.ename, e.deptno,   
  2         d.deptno, d.loc
  3  FROM   emp e, dept d
  4  WHERE  e.deptno=d.deptno;


连接:外连接(Outer Joins) —是对简单联接的扩充,它返回简单联接所返回的全部行,而且还返回一表中不与另一表的行相匹配的行。

外连接操作符时(+)加号(表示在该表中加入一个空行来与没有直接匹配行的数据进行匹配)
SQL> SELECT    e.ename, d.deptno, d.dname
  2  FROM    emp e, dept d
  3  WHERE    e.deptno(+) = d.deptno
  4  ORDER BY    e.deptno;

自连接

SELECT worker.ename||' works for '||manager.ename
  2  FROM     emp worker, emp manager
  3  WHERE     worker.mgr = manager.empno;

WORKER.ENAME||'WORKSFOR'||MANAG
-------------------------------
BLAKE works for KING
CLARK works for KING
JONES works for KING
MARTIN works for BLAKE
...
13 rows selected.


连接:递归查询(树查询)。应用举例:(只提一下下)

SELECT lpad(ename,length(ename)+(level-1)*3,'-') employee,level
FROM emp
START WITH ename = 'KING'
CONNECT BY PRIOR empno = mgr;

集合操作符:将两个查询结果合成单个结果。

UNION(并) :返回查询选择的全部不同行。
 UNION ALL (并) :返回查询选择的全部行,包括全部重复。
 INTERSECT(交):返回两个查询同时选择的全部不同行。
 MINUS(差):返回由第一个查询选择的而且不属于第二个查询选择的全部不同行。

oracle数据操纵语言(DML)data manipulation language的更多相关文章

  1. oracle数据操纵语言(DML)data manipulation language(续集)

    SQL查询语句(SELECT)进阶分组函数(Group Functions):对多行进行操作,并为每一组给出一个结果. AVG([DISTINCT|ALL] expression) 平均值COUNT ...

  2. 数据库原理及应用-SQL数据操纵语言(Data Manipulation Language)和嵌入式SQL&存储过程

    2018-02-19 18:03:54 一.数据操纵语言(Data Manipulation Language) 数据操纵语言是指插入,删除和更新语言. 二.视图(View) 数据库三级模式,两级映射 ...

  3. Hive 6、Hive DML(Data Manipulation Language)

    DML主要是对Hive 表中的数据进行操作的(增 删 改),但是由于Hadoop的特性,所以单条的修改.删除,其性能会非常的低所以不支持进行级操作: 主要说明一下最常用的批量插入数据较为常用的方法: ...

  4. (让你提前知道软件开发33):数据操纵语言(DML)

    文章2部分 数据库SQL语言 数据操纵语言(DML) 数据操纵语言(Data Manipulation Language,DML)包含insert.delete和update语句,用于增.删.改数据. ...

  5. MySQL之数据操纵语言(DML)

    数据操纵语言(DML) 数据操纵语(Data Manipulation Language),简称DML. DML主要有四个常用功能. 增 删 改 查 insert delete update sele ...

  6. 【转】Hive Data Manipulation Language

    Hive Data Manipulation Language Hive Data Manipulation Language Loading files into tables Syntax Syn ...

  7. 30442数据操纵语言DML

    5.5 SQL的数据操纵功能 5.5.1 数据插入 使用CREATE语句创建的数据表还只是一个“空壳”,表中没有任何数据.利用SQL语言提供的INSERT语句可以完成向数据表插入数据的任务. INSE ...

  8. 【MySQL笔记】数据操纵语言DML

    1.数据插入   INSERT INTO table_name (列1, 列2,...) VALUES(值1, 值2,....),(第二条),(第三条)...   注: 1)如果表中的每一列均有数据插 ...

  9. mysql数据库-mysql数据定义语言DDL (Data Definition Language)归类(六)

    0x01 创建数据库并指定字符集和排序规则 -- 三种实例写法 create database temptab2 character set utf8 collate utf8_general_ci; ...

随机推荐

  1. 编译安装-Percona 5.6

    CentOS 6.4编译安装Percona 5.6.16 Percona 下载地址:http://www.percona.com 一.卸载原有MySQL检查是否安装有MySQL Server: rpm ...

  2. JAVA网站高并发解决方案

    一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构.性能的要求都很简单,随着互联网业务的不断丰富,网站 ...

  3. HDU 3696 Farm Game(dp+拓扑排序)

    Farm Game Problem Description “Farm Game” is one of the most popular games in online community. In t ...

  4. 关于Collection'

    ---恢复内容开始--- 众所周知在我们使用Java中的类的存储的时候经常会使用一些容器,链表的概念,本文将彻底帮您弄清链表的各种概念和模型!!!!注 意理解哦~~~ 大致框架如下: ----> ...

  5. window.location.href的使用方法

    http://hljqfl.blog.163.com/blog/static/40931580201122210573364/ 在写ASP.Net程序的时候,我们常常遇到跳转页面的问题,我们常常使用R ...

  6. linux scp 服务器远程拷贝

    一.将本机文件复制到远程服务器上 #scp /home/administrator/news.txt root@192.168.1.1:/etc/squid /home/administrator/  ...

  7. hdu 5594 ZYB's Prime 最大流

    ZYB's Prime Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5 ...

  8. C# udpclient 发送数据断网后自动连接的方法

    需求 有一个winform程序, 用来调试路由器和对路由器吞吐量进行测试 需要后台不断的接收来自udp服务器端的数据,同时要发送数据到服务器端(无线路由器) 设计时候,通过一个线程,for(;;)死循 ...

  9. KMP算法具体解释(转)

    作者:July. 出处:http://blog.csdn.net/v_JULY_v/. 引记 此前一天,一位MS的朋友邀我一起去与他讨论高速排序,红黑树,字典树,B树.后缀树,包含KMP算法,只有在解 ...

  10. cocos2dx实例开发之flappybird(入门版)

    cocos2dx社区里有个系列博客完整地复制原版flappybird的全部特性.只是那个代码写得比較复杂,新手学习起来有点捉摸不透,这里我写了个简单的版本号.演演示样例如以下: watermark/2 ...