(让你提前知道软件开发33):数据操纵语言(DML)
文章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)的更多相关文章
- MySQL之数据操纵语言(DML)
数据操纵语言(DML) 数据操纵语(Data Manipulation Language),简称DML. DML主要有四个常用功能. 增 删 改 查 insert delete update sele ...
- 让你提前知道软件开发(22):shell脚本文件操作
文章1部分 再了解C语言 shell脚本中的文件操作 [文章摘要] 编写shell脚本时,经常会涉及到对文件的操作,比方从文件里读取一行数据.向文件追加一行数据等. 完毕文件读写操作的方法有非常多,了 ...
- 让你提前知道软件开发(24):C语言和主要特征的发展史
文章1部分 再了解C语言 C语言的发展历史和主要特点 作为一门众所周知的计算机编程语言,C语言是谁发明的呢?它是怎样演进的?它有何特点?究竟有多少人在使用它? 1. C语言之父 C语言是1972年由美 ...
- 让你提前知道软件开发(24):C语言和主要特征的历史
文章1部分 再次了解C语言 C语言的发展历史和主要特点 作为一门众所周知的计算机编程语言,C语言是谁发明的呢?它是怎样演进的?它有何特点?究竟有多少人在使用它? 1. C语言之父 C语言是1972年由 ...
- 30442数据操纵语言DML
5.5 SQL的数据操纵功能 5.5.1 数据插入 使用CREATE语句创建的数据表还只是一个“空壳”,表中没有任何数据.利用SQL语言提供的INSERT语句可以完成向数据表插入数据的任务. INSE ...
- oracle数据操纵语言(DML)data manipulation language
数据库操纵语言(DML)用于查询和操纵模式对象中的数据,它不隐式地提交当前事务. SELECTINSERTUPDATEDELETECALLEXPLAIN PLANLOCK TABLEMERGE使用算术 ...
- oracle数据操纵语言(DML)data manipulation language(续集)
SQL查询语句(SELECT)进阶分组函数(Group Functions):对多行进行操作,并为每一组给出一个结果. AVG([DISTINCT|ALL] expression) 平均值COUNT ...
- 【MySQL笔记】数据操纵语言DML
1.数据插入 INSERT INTO table_name (列1, 列2,...) VALUES(值1, 值2,....),(第二条),(第三条)... 注: 1)如果表中的每一列均有数据插 ...
- DML(数据操纵语言)
1.概念(C) 数据操纵语言 DML (Data Manipulation Langua)是SQL语言的一个分类,用于对表的内容或者说数据进行增.删.改.查等操作. 通过以下几个关键字实现: SELE ...
随机推荐
- go 字符串 数字 整型 浮点 转换
import "strconv" //先导入strconv包 // string到int int, err := strconv.Atoi(string) // string到in ...
- Injector Job深入分析 分类: H3_NUTCH 2015-03-10 15:44 334人阅读 评论(0) 收藏
Injector Job的主要功能是根据crawlId在hbase中创建一个表,将将文本中的seed注入表中. (一)命令执行 1.运行命令 [jediael@master local]$ bin/n ...
- js进阶 12-3 如何实现元素跟随鼠标移动
js进阶 12-3 如何实现元素跟随鼠标移动 一.总结 一句话总结:获取鼠标位置,将鼠标位置设置为元素偏移即可. 1.用什么事件获取鼠标位置? 用mousemove可以获取鼠标移动的时候的位置 $(d ...
- TensorFlow on Windows: “Couldn't open CUDA library cudnn64_5.dll”
TensorFlow on Windows: "Couldn't open CUDA library cudnn64_5.dll" 在 windows 下,使用 import te ...
- 在云平台上基于Go语言+Google图表API提供二维码生成应用
二维码能够说已经深深的融入了我们的生活其中.到处可见它的身影:但通常我们都是去扫二维码, 曾经我们分享给朋友一个网址直接把Url发过去,如今我们能够把自己的信息生成二维码再分享给他人. 这里就分享一下 ...
- js进阶 11-16 jquery如何查找元素的父亲、祖先和子代、后代
js进阶 11-16 jquery如何查找元素的父亲.祖先和子代.后代 一.总结 一句话总结:过滤或者查找的方法里面可以带参数进行进一步的选择. 1.parent()和parents()方法的区别是什 ...
- [TypeScript] Find the repeated item in an array using TypeScript
Say you have an array that has at least one item repeated. How would you find the repeated item. Thi ...
- Android自定义组件系列【2】——Scroller类
在上一篇中介绍了View类的scrollTo和scrollBy两个方法,对这两个方法不太了解的朋友可以先看<自定义View及ViewGroup> scrollTo和scrollBy虽然实现 ...
- [Grid Layout] Use the minmax function to specify dynamically-sized tracks
Using minmax() is an amazingly useful way to specify boundaries for the smallest and largest size a ...
- sql for xml 还有一种写法(採用 tag 与 union all,简洁易懂)
sql for xml 还有一种写法(採用 tag 与 union all,简洁易懂) 測试环境:sql 08, 08 R2, 2010, 2012, 2014 等 declare @agent t ...