4.3 数据操纵语言(DML)
本章介绍DML的基本语句。
对数据只能执行以下四种操作:创建(Create)记录、读取(Read)记录、更新(Update)记录值和删除(Delete)记录。这几个词拼写为CRUD——即可对数据执行CRUD操作。在设计SQL时,设计人员选择不同的词汇来描述这4个操作:Insert(插入)、Select(选择)、Update(更新)与Delete(删除)。但是ISUD不如CRUD容易记忆。如果能正确掌握这四类语句,就能使用SQL对数据执行任何操作了。
1 查询是有层次的
再电影《怪物史瑞克》中,有Mike Myers配音的怪物史瑞克对其驴子朋友说过,“怪物就和洋葱一样,它们是有层次的”。在某种程度上,select语句也像怪物,或者也像洋葱,它是有层次的。外表看来不是这样,但一层一层剥开它的外皮,就会发现它有许多层次。有一点很重要:它并不复杂,它只是多个简单层次的相互叠加而已,基本概念是很简单的。这个原理称为复合的简单性。
介绍下一个主题前,需要先简要讨论一下select语句。这条语句将在第5章详细介绍。现在,只需知道在SQL Server中,select语句可以从表中返回数据。在关系数据库中,要把信息转换为数据,通常要将数据保存到多个表中。所以,要把数据转变成有用的信息,就必须从多个表中检索数据。这可以使用几个技术,包括连接、子查询、联合等。
例:运行下列查询时,查询处理器会解析查询,将其分解成一个个步骤。
select top 10 Production.Product.Name,Sales.SalesOrderDetail.LineTotal from Production.Product inner join Sales.SalesOrderDetail on Production.Product.Productid=Sales.SalesOrderDetail.ProductID where Sales.SalesOrderDetail.SpecialOfferID=1 order by Sales.SalesOrderDetail.LineTotal Desc
- SELECT TOP 10 Production.Product.Name
- ,Sales.SalesOrderDetail.LineTotal
- FROM Production.Product
- INNER JOIN Sales.SalesOrderDetail
- ON Production.Product.Productid =
Sales.SalesOrderDetail.ProductID - WHERE Sales.SalesOrderDetail.SpecialOfferID = 1
- ORDER BY Sales.SalesOrderDetail.LineTotal DESC
查询处理器自底向上处理查询,但行的排序除外。首先查询处理器查找过滤器(本例中SpecailOffer=1),接着确定如何给特价销售的所有产品返回产品名和行小计。
处理这些步骤的低级指令编译成可执行指令代码后,缓存在内存中,于是随后的执行就不需要相同的准备工作和资源开销了。因为查询是即是SQL语句的一部分,又是一存储的数据库对象,所以已编译的指令也可以保存到永久的存储介质中,以提高长期使用效率。
4.3 数据操纵语言(DML)的更多相关文章
- (让你提前知道软件开发33):数据操纵语言(DML)
文章2部分 数据库SQL语言 数据操纵语言(DML) 数据操纵语言(Data Manipulation Language,DML)包含insert.delete和update语句,用于增.删.改数据. ...
- MySQL之数据操纵语言(DML)
数据操纵语言(DML) 数据操纵语(Data Manipulation Language),简称DML. DML主要有四个常用功能. 增 删 改 查 insert delete update sele ...
- oracle数据操纵语言(DML)data manipulation language
数据库操纵语言(DML)用于查询和操纵模式对象中的数据,它不隐式地提交当前事务. SELECTINSERTUPDATEDELETECALLEXPLAIN PLANLOCK TABLEMERGE使用算术 ...
- 30442数据操纵语言DML
5.5 SQL的数据操纵功能 5.5.1 数据插入 使用CREATE语句创建的数据表还只是一个“空壳”,表中没有任何数据.利用SQL语言提供的INSERT语句可以完成向数据表插入数据的任务. INSE ...
- 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 ...
- sql 语言--- DML,DDL,DQL,DCL,TCL,CCL
结构化查询语言(Structured Query Language)简称SQL 是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理 ...
- 数据操作语言DML与运算符
数据操作语言DML(添加,修改,删除) 1.添加数据 insert into insert into 表名 (字段列表) values (值列表),值列表要和字段列表按顺序匹配. insert int ...
- 数据库原理及应用-SQL数据操纵语言(Data Manipulation Language)和嵌入式SQL&存储过程
2018-02-19 18:03:54 一.数据操纵语言(Data Manipulation Language) 数据操纵语言是指插入,删除和更新语言. 二.视图(View) 数据库三级模式,两级映射 ...
随机推荐
- c#获取word文件页数、字数
引用命名空间:using Microsoft.Office.Interop.Word; //启动Word程序 Application myWordApp = new ApplicationClass( ...
- Content-Disposition 响应头,设置文件在浏览器打开还是下载
Content-Disposition属性有两种类型:inline 和 attachment inline :将文件内容直接显示在页面 attachment:弹出对话框让用户下载 code: cont ...
- C#字符串转UNICODE
public static string StringToUnicode(string s)//字符串转UNICODE代码 { char[] charbuffers = s.ToCharArray() ...
- JEECG(一) 如何配置自己的业务包
使用自己的业务包开发,不在com.jeecg业务包下 请首先阅读这篇文章[官网] http://www.jeecg.org/forum.php?mod=viewthread&tid=1832& ...
- 【cocos2d-x + Lua(1) 绑定Lua并使用tolua++】
为什么要使用Lua进行游戏开发?转载请注明出处http://www.cnblogs.com/zisou/p/cocos2dx-lua1.html 上面一个问题我觉得在我们使用Lua之前需要深入思考的, ...
- Tomcat 7.x/8.x 优化
一.优化Connector http://www.aikaiyuan.com/8466.html tomcat的运行模式有3种 1)bio 默认的模式,性能非常低下,没有经过任何优化处理和支持. 2) ...
- Cordova - Windows版本图形界面管理工具,告别命令行输入方式!
Cordova本身提供的是命令行管理工具,并没有提供图形界面管理工具,虽然命令行管理工具可以完成所有Cordova管理,但是对于我这种懒蛋,可真不希望每次都输入命令,而且我更担心一旦输错一个字符,命令 ...
- Python小白学习之路(二十)—【打开文件的模式二】【文件的其他操作】
打开文件的模式(二) 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码.图片文件的jgp格 ...
- POJ 1157
#include<iostream> //成大才子---经典代码~ #include<stdio.h> #include<algorithm> #define MA ...
- Redis客户端使用
http://wenku.baidu.com/view/6ccd650af12d2af90242e63d.html 一.下载jedis 代码 jedis 代码地址:https://github.com ...