提前认识软件开发(33) 数据操纵语言(DML)

数据操纵语言(Data Manipulation Language,DML)包括insert、delete和update语句,用于增、删、改数据。

本文用以下的表tb_employeeinfo作为例子加以说明:

create table tb_employeeinfo

(

    employeeno         varchar(20)       not null,       -- 员工工号

    employeename    varchar(20)      not null,       -- 员工姓名

    employeeage       int                            null        -- 员工年龄

);

在实际的软件开发项目中,DML的使用规则如下:

1. insert语句必须列出字段名

许多开发人员为了省事,在需要向一个表中所有字段都插入数据的时候,就直接列出表名即可,如下所示:

反例:

insert into tb_employeeinfo vaues(‘10000’,’Jim’, 30)

这样,如果tb_employeeinfo表结构发生了修改,以前的SQL语句就不能写入数据了。正确的做法是不管向表中多少个字段插入数据,都需要列出字段名。如下所示:

正例:

insert into tb_employeeinfo(employeeno, employeename, employeeage) vaues(‘10000’,’Jim’, 30)

同样,不要使用“select * from”语句,必须列出字段名,即使是返回所有字段的值。

2. delete,update语句必须带where条件

这样做是为了防止将整个表的数据修改和清空,导致系统瘫痪。对于全表处理,则使用“where 1=1”。

正例:

delete from tb_employeeinfo where employeeage=30

update tb_employeeinfo set employeeage=32 where 1=1

更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/project/

3. SQL语句块或存储过程中需要对DML语句的执行结果进行检查

这是数据库的错误/异常处理机制,需要对SQL语句执行成功或失败进行检查,以便根据执行结果决定后续的操作。

(1) SQLServer/Sybase数据库的处理

在SQLServer/Sybase数据库中,可以通过系统变量“@@error”来检查,并根据结果进行处理,如果已经开始了事务(数据库的修改是以事务为单位进行的。一个事务就是一个操作序列,这些操作要么全做,要么全不做,它是一个不可分割的工作单位),则需要进行回滚。

正例:

begin tran                   -- 事务开始

    insert into ……

    if @@error <> 0

    begin

        rollback tran         -- 事务回滚

        return

    end

    update ……

    if @@error <> 0

    begin

       rollback tran        -- 事务回滚

       return

   end

commit tran                 -- 事务提交

(2) Oracle数据库的处理

在Oracle中,错误是通过异常机制进行处理的。如果没有异常处理部分,它会立即中止当前的SQL语句块,并自动进行回退。如果需要根据情况进行处理,就应该使用异常处理部分,否则使用Oracle缺省的行为中止当前的SQL块,并自动回退。

正例1:

begin

    insert into …

    update …

    insert into…

    exception

        when others then

        begin

           ……            -- 错误处理

           rollback;

       end;

end;

正例2:

begin

    insert into …

    update …

    insert into…        -- 没有异常处理部分

end;

此外,在SQL语句块和存储过程中使用事务,必须保证事务的开始与结束匹配,即必须保证在SQL语句块的任何分支和异常情况下“begin tran”都有正确的“commit”或“rollback”与之对应。

在实际的软件项目中,数据操纵语言(DML)使用的非常的广泛,正确地使用该语言是对一个软件开发人员的基本要求。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索insert
, 数据
, 事务
, 语句
, oracle中字段异常
, 字段
, 处理
dml
数据操纵语言dml、梦想三国提前看33全部、人偶操纵、操纵证券案宣判、阴阳师人偶操纵,以便于您获取更多的相关知识。

时间: 2024-09-14 18:25:31

提前认识软件开发(33) 数据操纵语言(DML)的相关文章

让你提前认识软件开发(33):数据操纵语言(DML)

第2部分 数据库SQL语言 数据操纵语言(DML)           数据操纵语言(Data Manipulation Language,DML)包括insert.delete和update语句,用于增.删.改数据.         本文用以下的表tb_employeeinfo作为例子加以说明: create table tb_employeeinfo (     employeeno         varchar(20)       not null,       -- 员工工号    

提前认识软件开发(1) 序言

序言 正式踏上软件开发岗位已经将近两年了,经历了很多,也学到了很多."万事开头难",学生转变为职业人的过程,恰似茧化成蝶的过程. 1.为什么要写作本系列? 在工作的过程中,我发现我们在学校里面学到的很多东西片面肤浅,根本达不到岗位的要求.像编码规范.研发流程等等学校里几乎不提及的知识,在实际的软件开发项目中却恰恰是异常的重要. 在学校里面,我们欠缺的教育主要包括以下方面: 第一,对编码规范的要求.计算机编程课上,老师只要求学生能够编写程序实现既定的功能即可,几乎不会对编码规范提出要求,

让你提前认识软件开发(1):序言

序言           正式踏上软件开发岗位已经将近两年了,经历了很多,也学到了很多."万事开头难",学生转变为职业人的过程,恰似茧化成蝶的过程.          1.为什么要写作本系列?        在工作的过程中,我发现我们在学校里面学到的很多东西片面肤浅,根本达不到岗位的要求.像编码规范.研发流程等等学校里几乎不提及的知识,在实际的软件开发项目中却恰恰是异常的重要.        在学校里面,我们欠缺的教育主要包括以下方面:        第一,对编码规范的要求.计算机编程

让你提前认识软件开发(19):C语言中的协议及单元测试示例

第1部分 重新认识C语言 C语言中的协议及单元测试示例   [文章摘要]         在实际的软件开发项目中,经常要实现多个模块之间的通信,这就需要大家约定好相互之间的通信协议,各自按照协议来收发和解析消息.        本文以实际的程序代码为例,详细介绍了如何用C语言来实现通信协议,并基于对协议字段的判断,说明了程序单元测试的过程,为相关的开发工作提供了有益的参考. [关键词]        软件开发  协议  单元测试  C语言  字段   一.软件模块之间的协议         什么

让你提前认识软件开发(18):C语言中常用的文件操作函数总结及使用方法演示代码

第1部分 重新认识C语言 C语言中常用的文件操作函数总结及使用方法演示代码           在C语言中,有关文件操作的函数多达数十种,但并非每个函数都经常会被用到.        本文对实际软件开发项目中常用的C文件操作函数的用法进行了总结,并用实际的C代码来演示了它们的用法.   1. C语言中常用的文件操作函数总结 (1) fopen 作用:打开文件. 表头文件:#include <stdio.h> 定义函数:FILE *fopen(const char *path, const ch

让你提前认识软件开发(9):C语言中的大括号

第1部分 重新认识C语言 C语言中的大括号           在C语言中,大括号"{}"是一类比较特殊的符号.如果能够在适当的地方利用它,可使代码看起来非常的整洁,也能够从侧面体现出一个编程人员的专业修养.         那么,在C语言中,大括号应该用在哪些地方呢?         1.初始化数组变量         在实际的软件开发项目中,变量在使用前应初始化,防止未经初始化的变量被引用.         对于数组变量来说,恰当的初始化样例如下:           char s

让你提前认识软件开发(20):如何在C语言里面执行SQL语句?

第1部分 重新认识C语言 如何在C语言里面执行SQL语句? [文章摘要]         在通信类软件中,程序经常需要与数据库打交道.为了实现诸如从数据库中获取数据.更新数据库表某字段.插入或删除某条数据等功能,就需要在C语言程序中构造一些SQL语句,并用函数来执行这些SQL语句.         本文介绍如何在C语言程序中构造并执行SQL语句,为相关软件开发工作的开展提供了参考. [关键词]          SQL语句  C语言  程序  流程  开发   一.为什么要在C语言程序中执行SQ

提前认识软件开发(25) 数据库简介

数据库是个通用化的综合性的数据集合,它可以供各种用户共享且具有最小的冗余度和较高的数据与程序的独立性.目前,国际上主导的大型数据库管理系统有ORACLE.SQL SERVER.SYBASE.INFORMIX和INGRES等. 数据库中常用的编程语言是SQL语言,按其功能可分为四大部分: 开发(25) 数据库简介-tcga数据库简介"> (1) 数据定义语言(Data Definition Language,DDL),用于定义.撤销和修改数据模式. (2) 数据查询语言(Data Query

让你提前认识软件开发(25):数据库简介

第2部分 数据库SQL语言 数据库简介           数据库是个通用化的综合性的数据集合,它可以供各种用户共享且具有最小的冗余度和较高的数据与程序的独立性.目前,国际上主导的大型数据库管理系统有ORACLE.SQL SERVER.SYBASE.INFORMIX和INGRES等.         数据库中常用的编程语言是SQL语言,按其功能可分为四大部分:         (1) 数据定义语言(Data Definition Language,DDL),用于定义.撤销和修改数据模式.