文章2部分 数据库SQL语言

数据操纵语言(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

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

这是数据库的错误/异常处理机制,须要对SQL语句运行成功或失败进行检查,以便依据运行结果决定兴许的操作。

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

在SQLServer/Sybase数据库中。能够通过系统变量“@@error”来检查,并依据结果进行处理,假设已经開始了事务(数据库的改动是以事务为单位进行的。

一个事务就是一个操作序列。这些操作要么全做,要么全不做,它是一个不可切割的工作单位),则须要进行回滚。

正例:

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)使用的很的广泛,正确地使用该语言是对一个软件开发者的基本要求。

(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5。微信号:245924426。欢迎关注!

)

版权声明:本文博主原创文章,博客,未经同意不得转载。

(让你提前知道软件开发33):数据操纵语言(DML)的更多相关文章

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

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

  2. 让你提前知道软件开发(22):shell脚本文件操作

    文章1部分 再了解C语言 shell脚本中的文件操作 [文章摘要] 编写shell脚本时,经常会涉及到对文件的操作,比方从文件里读取一行数据.向文件追加一行数据等. 完毕文件读写操作的方法有非常多,了 ...

  3. 让你提前知道软件开发(24):C语言和主要特征的发展史

    文章1部分 再了解C语言 C语言的发展历史和主要特点 作为一门众所周知的计算机编程语言,C语言是谁发明的呢?它是怎样演进的?它有何特点?究竟有多少人在使用它? 1. C语言之父 C语言是1972年由美 ...

  4. 让你提前知道软件开发(24):C语言和主要特征的历史

    文章1部分 再次了解C语言 C语言的发展历史和主要特点 作为一门众所周知的计算机编程语言,C语言是谁发明的呢?它是怎样演进的?它有何特点?究竟有多少人在使用它? 1. C语言之父 C语言是1972年由 ...

  5. 30442数据操纵语言DML

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

  6. oracle数据操纵语言(DML)data manipulation language

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

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

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

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

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

  9. DML(数据操纵语言)

    1.概念(C) 数据操纵语言 DML (Data Manipulation Langua)是SQL语言的一个分类,用于对表的内容或者说数据进行增.删.改.查等操作. 通过以下几个关键字实现: SELE ...

随机推荐

  1. radare, the reverse engineering framework

    History The radare project [http://radare.org/] started in February of 2006 aiming to provide a free ...

  2. 126邮件POP3,SMTP服务器与端口设置

  3. LoaderManager使用具体解释(一)---没有Loader之前的世界

    来源: http://www.androiddesignpatterns.com/2012/07/loaders-and-loadermanager-background.html 感谢作者Alex ...

  4. Classification and Representation

    Classification To attempt classification, one method is to use linear regression and map all predict ...

  5. 【29.27%】【hdu 5908】Abelian Period

    Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/131072 K (Java/Others) 问题描述 设SS是一个数字串,定义 ...

  6. Android中的消息机制:Handler消息传递机制 分类: H1_ANDROID 2013-10-27 22:54 1755人阅读 评论(0) 收藏

    参考<疯狂android讲义>第2版3.5 P214 一.背景 出于性能优化考虑,Android的UI操作并不是线程安全的,这意味着如果有多个线程并发操作UI组件,可能导致线程安全问题.为 ...

  7. JS和PHP和JAVA的正则表达式的区别(java没有分解符,java中的转义字符是\\)

    JS和PHP和JAVA的正则表达式的区别(java没有分解符,java中的转义字符是\\) 一.总结 js正则:var patrn=/^[0-9]{1,20}$/; php正则:$pattern='/ ...

  8. js 鼠标坐标

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. [JS Compose] 5. Create types with Semigroups

    An introduction to concatting items via the formal Semi-group interface. Semi-groups are simply a ty ...

  10. 网络编程02---HTTP协议

    1.URL简单介绍 1.client怎样找到server 我们都知道网络中部署着各种各样的server.比方腾讯的server.百度的server.那么问题来了.client怎样找到想要连接的serv ...