SQL教程(四)ppt课件.ppt_第1页
SQL教程(四)ppt课件.ppt_第2页
SQL教程(四)ppt课件.ppt_第3页
SQL教程(四)ppt课件.ppt_第4页
SQL教程(四)ppt课件.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1/38,1,第四章,数据查询(1),2/38,2,回顾,SQL分为数据操作语言、数据控制语言和数据定义语言;T-SQL是SQL的扩展 通配符经常与LIKE一起使用来进行非精确的限制; 标识列不能插入指定的数据值 使用UPDATE更新数据,一般都有限制条件 使用DELETE删除数据时,不能删除被外键值所引用的数据行 使用TRUNCATE TABLE来删除所有数据时,效率要比DELETE语句高 上面的数据操作语句在程序中会经常使用到,3/38,3,目标,理解查询的机制 使用SELECT语句进行条件查询 在查询中返回限制行、进行查询排序 在查询中使用表达式、运算符和函数,4/38,4,什么是查询?

2、,客户程序,SQL SERVER,SELECT * FROM SALES,查询产生一个虚拟表,看到的是表形式显示的结果,但结果并不真正存储,每次执行查询只是现从数据表中提取数据,并按照表的形式显示出来,5/38,5,怎么查的?,6/38,6,编写查询语句之前,7/38,7,查询,SELECT FROM WHERE ORDER BY ASC或DESC,8/38,8,数据查询-基础,查询全部的行和列,查询部分行,9/38,9,数据查询-列名,使用AS来命名列,使用=来命名列,10/38,10,数据查询-空行常量列,查询空行,使用常量列,思考:非空行怎么查?,11/38,11,数据查询-限制行数,限

3、制固定行数,返回百分之多少行,12/38,12,数据查询-排序 2-1,升序排列,降序排列,13/38,13,数据查询-排序 2-2,按多列排序,思考:排序中的字段,可以使用表达式吗? 如果不可以,请说明原因; 如果可以,请举例说明;,14/38,14,SQL Server中的函数,相当于C语言中的内部函数,字符串函数 日期函数 数学函数 系统函数,15/38,15,日期函数,16/38,16,字符串函数,17/38,17,数学函数,18/38,18,系统函数,19/38,19,案例分析1要求,某公司印了一批充值卡,卡的密码是随机生成的,现在出现这个问题: 卡里面的“O和0”(哦和零)“i和1

4、”(哎和一),用户反映说看不清楚,公司决定,把存储在数据库中的密码中所有的“哦”都改成“零”,把所有的“i”都改成“1”; 请编写SQL语句实现以上要求; 数据库表名:Card;密码字段名:PassWord;,20/38,20,案例分析1分析,这是更新语句,需要使用UPDATE语句; 因为牵涉到字符串的替换,需要使用到SQL Server中的函数Replace;,21/38,21,案例分析1T-SQL,两行SQL语句,一行SQL语句,22/38,22,案例分析2要求,在数据库表中有以下字符数据,如: 13-1、13-2、13-3、13-10、13-100、13-108、13-18、13-11、

5、13-15、14-1、14-2 现在希望通过SQL语句进行排序,并且首先要按照前半部分的数字进行排序,然后再按照后半部分的数字进行排需,输出要排成这样: 13-1、13-2、13-3、13-10、13-11、13-15、13-18、13-100、13-108、14-1、14-2 数据库表名:SellRecord;字段名:ListNumber;,23/38,23,案例分析2分析,这是查询语句,需要使用SELECT语句 需要使用到ORDER BY进行排序,并且在ORDER BY的排序列中,也需要重新计算出排序的数字来 前半部分的数字,可以从先找到“-”符号的位置,然后,取其左半部分,最后再使用Co

6、nvert函数将其转换为数字: Convert(int, Left(ListNumber, CharIndex(-, ListNumber)-1) 后半部分的数字,可以先找到“-”符号的位置,然后把从第一个位置到该位置的全部字符替换为空格,最后再使用Convert函数将其转换为数字: Convert(int, Stuff(ListNumber,1, Charindex(-, ListNumber), ),24/38,24,案例分析2T-SQL,思考:还有其他的计算出排序列方法吗?,25/38,25,思考,在上一章我们学习了对表的数据的操作,其中学到了Insert语句,但Insert每次只能插入

7、一行记录,如果我们要进行多行数据插入,能行吗?,26/38,26,插入多行数据 4-1,INSERT INTO (新表列名) SELECT FROM ,当新表中的表结构与旧表的表结构相同时,可以用下面语句把旧表中的所需数据一次性插入到新表中,27/38,27,插入多行数据 4-2,SELECT (源表列名) INTO FROM ,猜一猜:该语句可以执行两次吗?,我要对一张表作测试工作,但又不想破坏表的数据,怎么办? -把这张表复制出来,28/38,28,插入多行数据 4-3,紧接上面的问题,当我复制了源表相应的列出来后,发现没有适合做主键的列,怎么? -插入新的标识列,SELECT IDENTITY(数据类型,标识种子,标识增长量) AS 列名 INTO 新表 FROM 原始表,29/38,29,插入多行数据 4-4,INSERT INTO (列名) SELECT UNION SELECT UNION ,前面讲的多行插入都是有源数据存在,那么我想自己输入新的数据进去,但只想用一条Insert语句,能成功吗?,30/38,30,总结,查询将逐行筛选表中的数据,最后符合要求的记录重新组合成“记录集”,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论