PLSQL 基础教程 二 增删改(DML)
来源:互联网 发布:医疗网络咨询工资待遇 编辑:程序博客网 时间:2024/06/05 23:46
1. DML简介
DML含义
DML,全称为Data Manipulation Language,即数据操作语言,主要用于检索或者操作数据库中的数据。
与前一节文章中介绍的DDL不同,DDL是用于创建或者删除数据库对象的,而DML并不是对数据对象做的操作,只是对数据库中的记录进行相关的操作而已,操作的对象是数据。
DML范围
DML主要是对数据库中的表中的数据进行的相关操作,主要包含以下几个方面的操作:。
SELECT:用于检索数据;
INSERT:用于增加数据到数据库;
UPDATE:用于从数据库中修改现存的数据
DELETE:用于从数据库中删除数据。
其中,INSERT、UODATE和DELETE操作都是事务相关的,即这些操作之后是必须提交事务的,提交事务之后相关的修改才可以生效;而SELECT只是用于检索数据,并不涉及事务处理。
本文中主要介绍INSERT、UODATE和DELETE这几种操作,SELECT操作后续继续介绍。
2. 增删改
数据库的基本对象是表,表是存储数据的基本单元,对表的操作主要包括增、删、改、查这几个部分。本节主要介绍增删改这三部分的内容,后续将继续介绍查询相关的知识。
SQL中的增、删、改均是涉及到事务处理的,因此相关操作之后,要想使记录修改生效,就必须提交事务处理,SQL中提交事务使用COMMIT语句,后边也会较少提交事务的两种方式。
新增INSERT
如何向数据库中的表添加记录?SQL中主要是通过INSERT语句来完成的,常用的INSERT方式有一下两种:
a. 直接使用INSERT VALUES脚本,具体语法格式如下:
INSERTINTO <TABLE_NAME> (<COLUMN_LIST>)VALUES (<VALUE_LIST>);
其中,TABLE_NAME需要插入数据的数据表的表名;COLUMN_LIST是数据库表中的列;VALUE_LIST是对应的需要插入的数据信息,与数据库列信息一一对应。
此处列举一个新增的示例:
INSERTINTO CUX_SQL_LEARN (ID,CLASS_NAME)VALUES (1,'测试1');
上述脚本的执行之后变回向表 CUX_SQL_LEARN中新增一条ID为“1”,CALSS_NAME为“测试1”的记录,但是没有提交事务处理,并不会永久的存储在数据库中。要想使记录修改生效,则必须提交事务处理,可以使用一下脚本:
INSERTINTO CUX_SQL_LEARN (ID,CLASS_NAME)VALUES (1,'测试1');COMMIT;
b. 使用INSERT SELECT 的形式来新增记录,具体的语法格式如下:
INSERTINTO < A_TABLE_NAME > (< COLUMN_LIST >) SELECT < ITEM_LIST > FROM < B_TABLE_NAME >WHERE < WHERE_CLAUSE >;
A_TABLE_NAME:需要插入数据的表语法说明:
COLUMN_LIST:需要插入的数据列
B_TABLE_NAME:选取数据的数据表
ITEM_LIST:从B_TABLE_NAME中选取的与COLUMN_LIST对应的数据信息
WHERE_CLAUSE:需要筛选数据的数据表B的过滤条件,可根据实际需要添加或修改
实际使用示例为:
INSERTINTO CUX_SQL_LEARN (ID, CLASS_NAME) SELECT1, '测试2'FROM DUAL;COMMIT;INSERT SELECT和INSERT VALUES脚本的区别:
INSERT VALUES:一次新增一条记录,插入多条记录的时候需要执行多次;
INSERT SELECT:一次可以新增一条或者多条记录,使用比较灵活。
删除DELETE
如果要对表中的数据进行删除操作,则需要使用DELETE语句。具体的语法格式为:
DELETE <TABLE_NAME> WHERE <WHERE_CLAUSE>;COMMIT;--执行COMMIT之后才能使删除脚本生效
WHERE_CLAUSE:需要删除的数据的过滤条件,不添加条件的话整个表的数据都会被删除,因此操作的时候需要注意,避免删除不必要的数据,造成业务数据的丢失。TABLE_NAME:需要删除数据的数据表
修改UPDATE
对数据库中的数据进行修改,则需要使用UPDATE语句。常用的UPDATE语句也有两种形式,具体如下:
a. UPDATE语句
UPDATE <TABLE_NAME> SET <COLUMN_ASSIGNMENT> WHERE <WHERE_CLAUSE>;
COLUMN_ASSIGNMENT:修改修改的列信息,多个列之间用“,”隔开TABLE_NAME:需要修改的表名
WHERE_CLAUSE:需要修改的数据的过滤条件,不添加条件则整个表中的记录都会被修改
实际示例:
UPDATE CUX_SQL_LEARN N SET N.CLASS_NAME = '测试修改'WHERE N.ID = 1;COMMIT;
脚本修改说明:将CUX_SQL_LEARN中的Id为“1”的记录的CLASS_NAME修改为“测试修改”,修改后直接COMMIT使修改生效。
b. SELECTFOR UPDATE形式
该种形式的修改脚本主要在PSQL窗口中使用较多,其他SQL客户端中可根据实际情况考虑使用。
增删改的相关知识到此基本结束,本文只是介绍了简单的语法知识和简单的示例信息,具体如何使用还需要在日后的学习和工作中逐渐积累,才能不断的提高和深入了解。
3. 附录
附录
a. 本系列教程为个人原创,基于实际工作中的使用情况及个人理解,仅供学习交流之用,有不足之处还望批评指正,希望共同提高
b. 本节示例中的CUX_SQL_LEARN的建表脚本如下:
-- Create tablecreatetable CUX_SQL_LEARN( ID NUMBERnotnull, CLASS_NAME VARCHAR2(1000));
- PLSQL 基础教程 二 增删改(DML)
- 数据库增删改操作(DML)
- DML-数据操作(增删改)
- iOS基础教程-SQLite数据库操作(二简单实例学生信息增删改查数据库操作)
- oracle plsql forall(批量增删改)
- PLSQL与SQL配合使用(DML增删该查)
- 表的创建修改及增删改查-DML操作
- MySQL中的DML:数据操作语言,增删改
- MySQL增删改查之DML语句详解
- Oracle的表操作——增删改查(DML)
- Mysql (二) - 增删改查
- MyBatis(二)增删改查
- plsql 实现表的创建以及增删改查。
- plsql误操作表(增删改)的数据恢复
- php增删改[初学](二)
- struts+hibernate增删改查(二)
- sqlite数据库之二增删查改
- struts+hibernate增删改查(二)
- 如何发布一个war网站
- Struts标签、ongl表达式与值栈
- HttpClient4.5 post
- 再识Intent-实现调用Android内置浏览器打开网页
- slick log日志配置文件
- PLSQL 基础教程 二 增删改(DML)
- my97DatePicker的基本使用
- 【CodeVS】1083 Cantor表
- Vi/Vim键盘图
- linux 查看内存情况总结
- 3D Convolutional Neural Networks for Human Action Recognition
- SpringMVC 表单验证
- c语言基础
- 技术焦虑症?来这里找解药