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) 数据库三级模式,两级映射 ...
随机推荐
- 异常测试之Socket网络异常
本文由作者张雨授权网易云社区发布. 前言 不知道大家在测试的过程中有没有发现关于异常测试这样一个特点: 无论是分散在功能测试中的异常用例还是规模相对较大的专项异常测试中,异常测试的用例占比虽然不大但是 ...
- pageadmin CMS网站建设教程: 附属表数据列表调用语法
列表调用语法 Html.SubDataList(参数1,参数2,参数3,参数4)参数说明: 注:第一个参数对象中必须定义Table或ParentTable/ParentField属性.参数1常用属性: ...
- nginx 场景业务汇总 (中)
本文链接:http://www.cnblogs.com/zhenghongxin/p/8906225.html,如果可以,请阅读上篇 <nginx场景业务汇总(初)> (十三)负载均衡 轮 ...
- hdoj1180 诡异的楼梯(bfs+奇偶判断)
手癌!日常手癌!被自己气死! #include<iostream> #include<cstring> #include<queue> #include<al ...
- 六,apache修改默认根文件路径
1,安装完apache后,项目默认根路径是E:\Program Files\AppServ\www. 默认根路径在httpd.conf中默认配置过了,我们可以通过修改配置文件改变项目默认根路径. Do ...
- iOS----线程之间的通信
当线程的数量大于一个的时候,线程之间可能会产生通信,既一个线程产生的结果要被另一个线程用到. 比如常用的图片的加载就是这个样子.图片的加载是在子线程进行的,当图片加载完毕,就会回到主线程中刷新UI,展 ...
- iOS-CocoaPods安装及使用
1. 安装 Ruby 对于iOS开发者,CocoaPods是最方便的第三方管理工具了,但是怎么安装CocoaPods呢,安装CocoaPods之前,要确保mac已经安装上Ruby,但在安装Ruby时, ...
- Python中第三方库的安装
网上的帖子挺多的,教你如何安装,安装第三方工具库的方法总共分为三类:Dos系统下pip命令:安装包下载安装:IDE集成环境下安装(Pycharm,Spyder……) http://www.jiansh ...
- 3、Xamarin Forms 调整安卓TabbedPage 下置
降低学习成本是每个.NET传教士义务与责任. 建立生态,保护生态,见者有份. 教程晦涩难懂是我的错误. 对于默认的TabbedPage 上面进行页面切换 上面是安卓默认的情况 对我们大部分人来说都 ...
- python中del函数的垃圾回收
今天学习面向对象里的类被del函数的垃圾回收过程搞的晕头转向,经过了老师的讲解还是是懂非懂,然后看了很多博客慢慢的心里才有了个大概的了解. 刚刚看到一篇博客,觉得讲的很好,转载过来以供参考.以下转自笨 ...