数据库操纵语言(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. 汇编语言程序入门实验一:在dos下对用户输入作出应答

    汇编语言程序入门实验一:在dos下对用户输入作出应答 1,背景 成功预言了今天要上计算机操作系统上机实验课,昨天预习后,今天的两个上机实验做得很成功.但是也有一些问题.问题1:学校的系统目前是wind ...

  2. Java Service Wrapper配置详解

    #encoding=UTF-8 # Configuration files must begin with a line specifying the encoding # of the the fi ...

  3. Unity3d:播放物理目录下的MP3文件

    u3d里,是支持播放MP3文件的,但要放到资源里,不支持播放物理目录下的MP3文件.由于界面上无需显示,只是当作背景音乐来播放,所以想到调用c#的组件来解决此问题.主要代码都在附件中,根据需要加到自己 ...

  4. Java中移位操作运算符的理解

    java中的移位运算符有三种: 1. <<: 左移 2. >>: 右移 3. >>>: 无符号右移 使用方法:左移就是将左边的操作数在内存中的二进制数据左移指 ...

  5. 新建VM_Script

    在Hyper-V群集中,不需要设置VM的自启动,当宿主机意外关机重新启动后,上面的VM会自动转移到另一台主机:如果另一台主机处于关机状态,则宿主机重新启动后,其VM也会自启动(如果其VM在宿主机关机前 ...

  6. 从客户端(&)中检测到有潜在危险的 Request.Path 值解决方案

    出这个问题基本上是在转址字符串中有非法字符“<”,'&'之类的. 方案1: 如果仅仅只是转换页面,传参时出现的问题,可对数据加密: 绑定数据传值时加密 <%#Server.UrlE ...

  7. 【MongoDB】mongoimport and mongoexport of data (一)

    In the software development, we usually are faced with a common question of exporting or importing d ...

  8. 网站性能扩展案例:每天30-50亿请求,300K QPS是如何炼成的

    Reduce Data广告服务网站(http://reducedata.com)如何扩展到每天300K QPS请求?分享经验如下: 1. 为大规模而设计,广告服务平台从一开始增长就很惊人,因此,系统开 ...

  9. 【KPC】关于为什么不用Zepto而用JQuery

    1.zepto在window phone手机上不是很兼容 2.JQuery的Deferred对象在zepto上不支持. 3.JQuery经过压缩,以及部分页面的使用,以及缓存,可以达到优化用户体验的效 ...

  10. MySql 日期格式化函数date_format()

    mysql> select date_format(now(),'%Y'); +-------------------------+ | date_format(now(),'%Y') | +- ...