《SQL教程四》PPT课件.ppt

上传人:xt****7 文档编号:1798402 上传时间:2019-11-06 格式:PPT 页数:30 大小:632.50KB
返回 下载 相关 举报
《SQL教程四》PPT课件.ppt_第1页
第1页 / 共30页
《SQL教程四》PPT课件.ppt_第2页
第2页 / 共30页
《SQL教程四》PPT课件.ppt_第3页
第3页 / 共30页
点击查看更多>>
资源描述
1/38,1,第四章,数据查询(1),2/38,2,回顾,SQL分为数据操作语言、数据控制语言和数据定义语言;T-SQL是SQL的扩展 通配符经常与LIKE一起使用来进行非精确的限制; 标识列不能插入指定的数据值 使用UPDATE更新数据,一般都有限制条件 使用DELETE删除数据时,不能删除被外键值所引用的数据行 使用TRUNCATE TABLE来删除所有数据时,效率要比DELETE语句高 上面的数据操作语句在程序中会经常使用到,3/38,3,目标,理解查询的机制 使用SELECT语句进行条件查询 在查询中返回限制行、进行查询排序 在查询中使用表达式、运算符和函数,4/38,4,什么是查询?,客户程序,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,数据查询-限制行数,限制固定行数,返回百分之多少行,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”(哎和一),用户反映说看不清楚,公司决定,把存储在数据库中的密码中所有的“哦”都改成“零”,把所有的“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、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的排序列中,也需要重新计算出排序的数字来 前半部分的数字,可以从先找到“-”符号的位置,然后,取其左半部分,最后再使用Convert函数将其转换为数字: 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每次只能插入一行记录,如果我们要进行多行数据插入,能行吗?,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,总结,查询将逐行筛选表中的数据,最后符合要求的记录重新组合成“记录集”,记录集的结构类似于表结构 判断一行中的数据项是否为空,使用IS NULL 使用ORDER BY进行查询记录集的排序,并且可以按照多个列进行排序 在查询中,可以使用常量、表达式、运算符 在查询中使用函数,能够像在程序中那样处理查询得到的数据项,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!