(让你提前知道软件开发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 ...
随机推荐
- 3、在编译过程中出现no space left on device
原因:通过df -h查看发现磁盘空间不错 删掉不需要的文件后执行sudo apt-get clean
- UCloud上LAMP小型站点搭建与測试
文件夹 介绍 LAMP环境搭建 打开UCloud防火墙 WordPress安装 应用測试 介绍 本篇博客旨在通过介绍搭建一个WordPress博客的过程介绍在UCloud的云主机(UHOST)上搭建单 ...
- storm编程指南
目录 storm编程指南 (一)创建spout (二)创建split-bolt (三)创建wordcount-bolt (四)创建report-bolt (五)创建topo storm编程指南 @(博 ...
- 组合搜索(combinatorial search)在算法求解中的应用
1. 分治.动态规划的局限性 没有合适的分割方式时,就不能使用分治法: 没有合适的子问题或占用内存空间太大时,就不能用动态规划: 此时还需要回到最基本的穷举搜索算法. 穷举搜索(exhaustive ...
- [React] Setup 'beforeunload' listener
In this lesson we'll show how to take a beforeUnload call and convert it to a declarative React Comp ...
- 使用 Google Guava 美化你的 Java 代码:1~4 【转】
文章转载自:http://my.oschina.net/leejun2005/blog/172328 1.使用Google Collections,Guava,static imports编写漂亮代码 ...
- html 页面 黑白
css代码,写在最顶端 html {filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);-webkit-filter: ...
- tomcat 启动项目时出现 ZipException: error in opening zip file
错误情况 项目用 maven 打好 war 包后放到 tomcat 下,启动 tomcat,出现以下错误 3-Nov-2017 12:21:44.346 严重 [localhost-startStop ...
- Smarty3.1.8 安装
应用环境:Winsows7 IIS + PHP5.5.12 + Smarty3.1.8 1. IIS 及 PHP 安装,参照<php手册>,这里不做细表. 2. 假定应用目录为 C:\in ...
- SYSTEMTIME 与 time_t 之间的转换,计算2个SYSTEMTIME的时间差
time_t systemtime_to_time_t(const SYSTEMTIME& st) { struct tm gm = {st.wSecond, st.wMinute, st.w ...