一、DML数据操作语言

  主要用于检索、插入和修改数据库信息。它是最常用的SQL命令,如INSERT(插入)、UPDATE(更新)、SELECT(选择)、DELETE(删除)。

  1、INSERT插入语句:

  语法:

  INSERT INTO tablename[column1[,column2...]]

  VALUES (value1[,value2...]);

  说明:

  INSERT INTO:为插入的关键字。

  tablename:表示要插入的表。

  column1:可选参数,表示要插入的列,多个列使用,分隔。

  values(value1..):插入的值,这里的value1,必须和前面的列相对应,如果不写列,则必须和表的结构一致。

  例:  

--创建学员信息表,并添加约束
CREATE TABLE stuinfo
(
stuName VARCHAR2(20) NOT NULL CONSTRAINT pk_name PRIMARY KEY,
stuPass VARCHAR2(20) NOT NULL CONSTRAINT ck_pass CHECK (LENGTH(stupass) > 3),
stuAge NUMBER(3,0) NOT NULL CONSTRAINT ck_age CHECK (stuage>18),
birthday DATE DEFAULT SYSDATE
)

  向学员信息表中插入数据   

--向学生表中插入一条记录
INSERT INTO stuinfo(stuname,stupass,stuage,birthday)
VALUES ('张三','',20,DEFAULT) --添加自定义日期类型的数据
INSERT INTO stuinfo
VALUES ('李四','',25,to_date('1999-9-20','yyyy-Mm-dd'))

  这里需要注意:

  1)插入的列必须和插入的值一一对应,包括数据类型,个数,顺序必须要全一致。

  2)如果数据表中包含了默认值,则可以使用default关键字插入默认值。

  3)插入的数据必须满足数据约束。否则插入失败。

  4)插入的列可以省略,但是必须按照表中列的顺序插入数据。

  5)通过to_date完成对日期函数数据的添加。

  6)插入字符串类型必须使用'包含起来。

  插入多行记录:

  1、insert..into...select...生成自定义数据

--一次插入多行数据,通过union关键字拼接查询
INSERT INTO stuinfo(stuname,stupass,stuage,birthday)
SELECT '王五','',20,to_date('1999-8-8','yyyy-Mm-dd') FROM dual UNION
SELECT '赵六','',25,to_date('195-8-20','yyyy-Mm-dd') FROM dual

  将多个查询结果拼接起来一次插入数据库,这里查询的类型数据必须和插入的数据类型和顺序完全一致。

  2、insert..into...select...将已经存在表的记录插入到新表中  

INSERT INTO stuinfo (stuname,stupass,stuage,birthday)
SELECT NAME,pass,age,SYSDATE FROM backuser

  将查询结果插入到一个已经存在的表中,如果表不存在则报错。

  3、select...into...  

--将查询到的数据生成一张新的表
CREATE TABLE backuser AS
SELECT stuname,stupass,stuage,birthday
FROM stuinfo

  将查询到的结果插入到一张新表中,表必须不存在,如果存在则报错。

  

  2、update语句

  语法:

  update tablename set column_name=value[,column=value,...]

  [where=condition];

  说明:

  update:关键字

  tablename:表明

  column=value:设置列的值,多个列使用,隔开,不需要set。

  where condition:条件,必须为boolean表达式。如果不带条件则更所表中所有数据,操作要谨慎。

  例:  

--将赵六的密码修改为8个6,然后将出生日期改为1989-5-20
UPDATE stuinfo
SET stupass='',
birthday=to_date('1989-5-20','yyyy-MM-dd') --插入日期需要进行格式转换
WHERE stuname = '赵六' --指定修改数据的条件,条件不满足不执行任何操作
commit; --执行完毕后自动进行提交

  注意:  

  1)修改的数据同样必须满足数据库中的约束。

  2)修改后的数据如果在PLSQL中需要使用comit提交事务,数据才算修改成功。

  3)修改后的条件需要跟上,否则是修改表中所有记录。

  

  3、删除语句

  1)DELETE语法:

  DELETE [FROM] tablename

  [WHERE condition];

  说明:

  DELETE [FROM]:为删除的关键字。FROM可以省略不写。

  tablename:要删除数据的表。

  where condition:要删除数据的条件,不写则删除表中所有记录

  例:  

DELETE stuinfo WHERE stuname = '赵六'  --删除用户名为'赵六的用户信息';
DELETE stuinfo --删除表中所有的记录

  

  2)TRUNCATE table 清空表

  语法:

  truncate tablename;

  说明:

  truncate:清空关键字。

  tablename:要清空的表明。

  例:  

TRUNCATE TABLE backuser;  --清空backuser表

  delete和truncate的区别:

  a)truncate快速删除记录并释放空间,不适用事务处理,因此无法回滚,而delete命令可在执行删除之后,通过rollback撤销删除。

  b)truncate将删除表中的所有记录,而DELETE不仅可以删除表中的记录,还可以通过where条件删除表中的部分数据。

Oracle基础(十) DML数据操作的更多相关文章

  1. HIVE之 DDL 数据定义 & DML数据操作

    DDL数据库定义 创建数据库 1)创建一个数据库,数据库在 HDFS 上的默认存储路径是/user/hive/warehouse/*.db. hive (default)> create dat ...

  2. ORACLE链接SQLSERVER数据库数据操作函数范例

    ORACLE链接SQLSERVER数据库数据操作函数范例 create or replace function FUN_NAME(LS_DJBH IN varchar2 ,LS_ITM varchar ...

  3. 6.1课堂笔记—DML(数据操作语言),DQL查询语句

    一.DML(数据操作语言) InnoDB MyISAM 支持事务 不支持事务 不支持全文索引 支持全文索引 支持外键约束 不支持 命令查看默认存储引擎 show variables like '%st ...

  4. hive从入门到放弃(三)——DML数据操作

    上一篇给大家介绍了 hive 的 DDL 数据定义语言,这篇来介绍一下 DML 数据操作语言. 没看过的可以点击跳转阅读: hive从入门到放弃(一)--初识hive hive从入门到放弃(二)--D ...

  5. DML数据操作语言

    DML数据操作语言 用来对数据库中表的数据记录进行更新.(增删改) 插入insert -- insert into 表(列名1,列名2,列名3...) values (值1,值2,值3...):向表中 ...

  6. DML数据操作语言之增加,删除,更新

    1.数据的增加 数据的增加要用到insert语句  ,基本格式是: insert into <表名> (列名1,列名2,列名3,......) values (值1,值2,值3,..... ...

  7. DML数据操作语言之复杂查询

    1.视图(View) 我们知道,在关系型数据库中,用来保存实际数据记录的是数据表.和表同等概念也是用来保存东西是:视图. 但是数据表是用来保存实际数据记录的,而视图是用来保存常用select语句的. ...

  8. DML数据操作语言之常用函数

    所谓函数,就是输入某一值,得到相应的输出结果的功能.相当于一个加工厂,给了原料,最终产出成品. 其中原料 就是参数(parameter). 产品 就是返回值. 函数大致可以分为以下五个种类: 算术函数 ...

  9. DML数据操作语言之查询(二)

    当我们查询出了N条记录之后 ,我们知道一共是几条记录,或者这些记录某一字段(列值)的最大值,最小值,平均值等,就可以使用聚合函数. 1.聚合函数 聚合函数会将null 排除在外.但是count(*)例 ...

随机推荐

  1. 汇编语言程序入门实验二:在dos下建立子目录操作

    汇编语言程序入门实验二:在dos下建立子目录操作 1,背景 在读此文,并读懂前,建议读者先阅读这两篇博客 1,在dos环境下汇编语言程序设计入门(输出hello world)和masm32的下载.安装 ...

  2. JDBC和JPA调用储存过程 接收存储过程有返回值

    ============jdbc==========================================--java代码:一个输出参数--String connURL = null;Con ...

  3. redis 重用命令

    一. set 1.smembers key 查看所有元素

  4. 固定分隔符字符串与数组互转及ArrayList与数组(Array)互转

    1.字符串转数组 这个相信多数人都会常用,string.split方法,分隔符可以为多个.详细信息参见MSDN string[] actionCfgs = _para.Split(new char[] ...

  5. c++中从一段字符串中提取数字

    采用标准输入输出: 输入:12&3 34*133^3131   13031* 输出:12 3 34 133 3131 13031 思路,先将整个输入存进一个字符串,再解析字符串,这样运行速度会 ...

  6. 守护进程和inetd超级服务器

    守护进程: 1 系统启动时,由系统初始化脚本启动.一般在/etc目录下,或者以/etc/rc开头的目录 2 许多网络服务器由inetd超级服务器启动 3 cron守护进程按规则定期执行一些程序 4 用 ...

  7. windows win7 win10 多系统启动菜单 多系统引导设置

    win键+R 输入msconfig 根据显示的程序设置(除非你看不懂文字)

  8. iOS上传文件,有关http上传协议-RFC1867

    以上是抓包HTML input file标签上传的内容 只要模拟上面http 的header跟body就可以成功. 整体说明: post 上传文件时,以在http body里面带参数,参数的格式,根据 ...

  9. 使用 Protocol Buffers 代替 JSON 的五个原因

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  10. C++异常

    相对于C语言,C++增加了异常机制.考虑,异常解决了什么问题,又带来了什么问题. 异常解决了什么问题: 1.问题检测与问题处理相分离. 2.C语言只是返回一个整数,而异常带有上下文信息,方便找出问题. ...