ImageVerifierCode 换一换
格式:PPT , 页数:64 ,大小:1.10MB ,
资源ID:8117036      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-8117036.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(SQL sever 2000语句操作.ppt)为本站会员(myw993772)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

SQL sever 2000语句操作.ppt

1、,SQL Server 2000管理及 应用开发教程,授课教师: 职务:,第8章 常用数据操纵语言(DML),课程描述数据操纵语言(DML)包含了用来查询、添加、修改和删除数据库中数据的语句,这些语句包括SELECT、INSERT、UPDATE和DELETE等。本章将介绍使用这些SQL语句操纵数据库中数据的方法。,本章知识点,数据查询语句 插入数据语句 修改数据语句 删除数据语句,8.1 数据查询语句,SELECT语句语法简介 准备演示数据 简单SELECT语句 使用分组统计 生成汇总行 连接查询 子查询 合并查询 保存查询结果,8.1.1 SELECT语句语法简介,SELECT子句 INTO

2、 子句 FROM 子句 WHERE 子句 GROUP BY 子句 HAVING 子句 ORDER BY 子句 例如:SELECT * FROM EmpInfo,SELECT语句中各子句的说明,8.1.2 准备演示数据,本节使用数据库HrSystem中表DepInfo和表EmpInfo中的数据来演示表的查询操作。,表DepInfo中的演示数据,表EmpInfo中的演示数据,8.1.3 简单SELECT语句,SELECT子句是SELECT语句的关键部分。它的作用是指定由查询返回的列。 SELECT子句的语法结构如下:SELECT ALL | DISTINCT TOP n PERCENT WITH

3、TIES ,参数说明,1使用DISTINCT关键字,DISTINCT关键字的作用是指定结果集中返回指定列存在不重复数据的记录。 【例8.1】查询表EmpInfo中所有的职务数据,可以使用以下命令:USE HrSystem GO SELECT Title FROM EmpInfo GO,如果使用DISTINCT,USE HrSystem GO SELECT DISTINCT Title FROM EmpInfo GO,例8.1的运行结果,2使用TOP n PERCENT关键字,如果只需要显示前n行,可以在SELECT语句中使用TOP n PERCENT关键字。 【例8.2】查询表EmpInfo中

4、的前3个员工记录,具体语句如下:USE HrSystem GO SELECT TOP 3 Emp_Name FROM EmpInfo GO,例8.2的运行结果,3改变显示的列标题,USE HrSystem GO SELECT TOP 3 Emp_Name as 姓名, Title as 职务 FROM EmpInfo GO,4设置查询条件,WHERE子句指定用于限制返回的行的搜索条件。它的语法结构如下: WHERE | :=column_name * = | = * column_name参数 是通过使用谓词限制结果集内返回的行。对搜索条件中可以包含的谓词数量没有限制。,【例8.3】,表Emp

5、Info中查询所有工资大于3000而且小于4000的记录,具体语句如下:USE HrSystem GO SELECT Emp_Name, Wage FROM EmpInfo WHERE Wage 3000 AND Wage 4000 GO,SQL Server的通配符及其含义,【例8.4】,要查询所有身份证号以110开头的员工记录,可以使用以下语句:USE HrSystem GO SELECT * FROM EmpInfo WHERE IDCard LIKE 110% GO,【例8.5】,要查询所有身份证号以110123开头、中间包含任意一个字符、其后为adx、最后包含任意一个字符的员工记录(

6、即身份证格式为110123?adx?,?表示任意一个字符),可以使用以下语句:USE HrSystem GO SELECT * FROM EmpInfo WHERE IDCard LIKE 110123_adx_ GO,5排序结果集,在SELECT语句中使用ORDER BY子句可以指定结果集的排序。它的语法结构如下: ORDER BY order_by_expression ASC | DESC ,.n 参数order_by_expression指定要排序的列。 ASC表示按照递增的顺序排列,DESC表示按照递减的顺序排列。 ASC为默认值。,【例8.6】,如果按照员工姓名排序,可以使用以下命

7、令:USE HrSystem GO SELECT * FROM EmpInfo ORDER BY Emp_Name GO,8.1.4 使用分组统计,在统计查询中,可以使用GROUP BY子句指定查询结果的分组条件。它的语法结构如下: GROUP BY ALL group_by_expression ,.n WITH CUBE | ROLLUP ,【例8.7】,要查询各职位的平均工资,可以使用以下语句:USE HrSystem GO SELECT Title AS 职位, AVG(Wage) AS 平均公资 FROM EmpInfo GROUP BY Title GO,【例8.8】,在下面的SE

8、LECT语句中,GROUP BY子句中不包含Sex列,而Sex列出现在SELECT子句中。因此,在执行SELECT语句时会出现错误。USE HrSystem GO SELECT Sex, Title, AVG(Wage) FROM EmpInfo GROUP BY Title GO,【例8.9】,查询平均工资大于4400.00元的部门,并显示部门编号和平均工资,具体语句如下:USE HrSystem GO SELECT Dep_Id, AVG(Wage) FROM EmpInfo GROUP BY Dep_Id HAVING AVG(Wage) 4400 GO,8.1.5 生成汇总行,COMP

9、UTE子句的语法结构如下: COMPUTE AVG | COUNT | MAX | MIN | STDEV | STDEVP| VAR | VARP | SUM ( expression ) ,.n BY expression ,.n ,【例8.10】,要查询所有员工的工资,并对工资总额进行汇总,可以使用以下命令:USE HrSystem GO SELECT Emp_Name, Wage FROM EmpInfo COMPUTE SUM(Wage) GO,8.1.6 连接查询,内连接 外连接 交叉连接,1内连接,内连接使用比较运算符(最常使用的是等号,即等值连接)根据每个表共有列的值匹配两个表

10、中的行。 只有每个表中都存在相匹配列值的记录才出现在结果集中。 在内连接中,所有表是平等的,没有主次之分。,【例8.11】,使用内连接从表EmpInfo和表DepInfo中同时获取数据,查询所有员工的姓名和所在部门名称,具体语句如下:USE HrSystem GO SELECT t1.Dep_name, t2.Emp_name FROM DepInfo t1, EmpInfo t2 WHERE t1.Dep_id=t2.Dep_id,例8.11的运行结果,使用INNER JOIN关键字,USE HrSystem GO SELECT t1.Dep_name, t2.Emp_name FROM D

11、epInfo t1 INNER JOIN EmpInfo t2 ON t1.Dep_id=t2.Dep_id,2外连接,左向外连接以连接(JOIN)子句左侧的表为主表,主表中所有记录都将出现在结果集中。如果主表中的记录在右表中没有匹配的数据,则结果集中右表的列值为NULL。可以使用*=符号定义左连接。 右向外连接以连接(JOIN)子句右侧的表为主表,主表中所有记录都将出现在结果集中。如果主表中的记录在左表中没有匹配的数据,则结果集中右表的列值为NULL。可以使用=*符号定义左连接。 完整外部连接包括连接表中的所有行,无论它们是否匹配。在SQL Server 2000中,还可以使用FULL OU

12、TER JOIN或FULL JOIN关键字定义完整外部连接。,【例8.12】,使用左向外连接从表DepInfo和表EmpInfo中同时获取数据,查询所有员工的姓名和所在部门名称,其中表DepInfo为主表,具体语句如下:USE HrSystem GO SELECT t1.Dep_name, t2.Emp_name FROM DepInfo t1, EmpInfo t2 WHERE t1.Dep_id *= t2.Dep_id GO,LEFT OUTER JOIN或LEFT JOIN关键字,USE HrSystem GO SELECT t1.Dep_name, t2.Emp_name FROM

13、DepInfo t1 LEFT JOIN EmpInfo t2 ON t1.Dep_id=t2.Dep_id GO,【例8.13】,使用右向外连接从表DepInfo和表EmpInfo中同时获取数据,查询所有员工的姓名和所在部门名称,其中表EmpInfo为主表,具体语句如下:USE HrSystem GO SELECT t1.Dep_name, t2.Emp_name FROM DepInfo t1, EmpInfo t2 WHERE t2.Dep_id =* t1.Dep_id GO,RIGHT OUTER JOIN或RIGHT JOIN关键字,USE HrSystem GO SELECT t

14、1.Dep_name, t2.Emp_name FROM EmpInfo t2 RIGHT JOIN DepInfo t1 ON t1.Dep_id=t2.Dep_id GO,【例8.14】,使用完整外部连接从表DepInfo和表EmpInfo中同时获取数据,查询所有员工的姓名和所在部门名称,具体语句如下: USE HrSystem GO SELECT t1.Dep_name, t2.Emp_name FROM EmpInfo t2 FULL JOIN DepInfo t1 ON t1.Dep_id=t2.Dep_id GO,3交叉连接,在交叉连接查询中,两个表中的每两行都可能互相组合成为结果

15、集中的一行。交叉连接并不常用,除非需要穷举两个表的所有可能的记录组合。,【例8.15】,使用交叉连接从表DepInfo和表EmpInfo中同时获取数据,查询所有员工的姓名和所在部门名称,具体语句如下: USE HrSystem GO SELECT t1.Dep_name, t2.Emp_name FROM EmpInfo t2 CROSS JOIN DepInfo t1 GO,8.1.7 子查询,【例8.16】查询办公室的所有员工,可以使用以下命令:USE HrSystem GO SELECT Emp_Name FROM EmpInfo WHERE Dep_Id = (SELECT Dep_I

16、d FROM DepInfo WHERE Dep_name = 办公室) GO,8.1.8 合并查询,使用UNION关键字可以组合两个查询的结果集,结合的基本规则是:(1)所有查询中的列数和列的顺序必须相同。 (2)数据类型必须兼容。,【例8.17】,从表DepInfo中查询各部门信息,然后在从表EmpInfo中查询各个部门的部门经理,具体语句如下: USE HrSystem GO SELECT Dep_Id, Dep_Name FROM DepInfo UNION SELECT Dep_Id, Emp_Name FROM EmpInfo WHERE Title = 部门经理 GO,8.1.9

17、 保存查询结果, INTO ,【例8.18】,将办公室的所有员工的姓名和职务信息保存到表Office中,可以使用以下命令:USE HrSystem GO SELECT e.Emp_Name, e.Title INTO Office FROM EmpInfo e, DepInfo d WHERE e.Dep_id = d.Dep_Id AND d.Dep_Name = 办公室 GO SELECT * FROM Office GO,例8.18的运行结果,8.2 数据更新语句,插入数据语句INSERT 修改数据语句UPDATE 删除数据语句DELETE,8.2.1 插入数据语句,INSERT语句的基

18、本语法结构如下:INSERT INTO (列名1, 列名2, , 列名n) VALUES (值1, 值2, , 值n);列名1, 列名2, , 列名n必须是指定表名中定义的列,而且必须和VALUES子句中的 值1, 值2, , 值n一一对应,数据类型相同。,【例8.19】,向表DepInfo中插入记录“公关部”,可以使用以下命令:USE HrSystem GO INSERT INTO DepInfo VALUES(公关部) GO SELECT * FROM DepInfo GO,【例8.20】,向表EmpInfo中插入新员工记录,初始值包括员工姓名、性别、职务和部门编号等,具体语句如下:USE

19、 HrSystem GO INSERT INTO EmpInfo (Emp_Name, Sex, Title, Dep_Id) VALUES (小明, 男, 职员, 2) GO,8.2.2 修改数据语句,可以使用UPDATE命令修改表中的现有数据。UPDATE语句的基本语法结构如下:UPDATE 表名 SET 列名1=值1 , 列名2=值2, ., 列名n=值n WHERE 更新条件,【例8.21】,使用UPDATE语句将表EmpInfo中所有记录的工资增加10%,具体语句如下:USE HrSystem GO UPDATE EmpInfo SET Wage=Wage*1.1 GO,【例8.22

20、】,使用UPDATE语句将表EmpInfo所有部门为“办公室”的员工工资增加10%。 具体语句如下:USE HrSystem GO UPDATE EmpInfo SET Wage=Wage*1.1 WHERE Dep_id = (SELECT Dep_id FROM DepInfo WHERE Dep_name = 办公室) GO,1不允许设置标识列的值,【例8.23】在表DepInfo中,列Dep_Id被设置为标识列,其编号由系统自动生成。在UPDATE语句中设置该列的值,具体语句如下:USE HrSystem GO UPDATE DepInfo SET Dep_id = 1 WHERE D

21、ep_id = 2 GO 执行结果如下:服务器: 消息 8102,级别 16,状态 1,行 1 无法更新标识列 Dep_id。,2不允许向惟一性约束列中 插入相同的数据,【例8.24】在表EmpInfo中,假定列Emp_name被设置为唯一性约束。表EmpInfo中存在姓名为“张三”和“李四”的两条记录。使用UPDATE语句将姓名为“李四”的记录“姓名”值修改为“张三”,具体语句如下:USE HrSystem GO UPDATE EmpInfo SET Emp_name=张三 WHERE Emp_name=李四 GO执行结果如下:服务器: 消息 2627,级别 14,状态 2,行 1 违反了

22、UNIQUE KEY 约束 IX_EmpInfo。不能在对象 EmpInfo 中插入重复键。 语句已终止。,3不能违反检查约束,【例8.25】在表EmpInfo中,假定列Wage被设置为检查约束,检查条件为“Wage=0”。试使用UPDATE语句将张三的工资修改为-1,具体语句如下:USE HrSystem GO UPDATE EmpInfo SET Wage=-1 WHERE Emp_Name=张三 GO执行结果如下:服务器: 消息 547,级别 16,状态 1,行 1 UPDATE 语句与 COLUMN CHECK 约束 CK_EmpInfo 冲突。该冲突发生于数据库 HrSystem,表

23、 EmpInfo, column Wage。 语句已终止。,4不能与绑定到列的规则冲突,【例8.26】规则“分数规则”将工资数据限定在050000之间。在表EmpInfo中,假定列“入学成绩”被绑定到“分数规则”。试使用UPDATE语句将张三的入学成绩修改为150。具体语句如下:USE HrSystem GO UPDATE EmpInfo SET Wage=60000 WHERE Emp_Name=张三 GO执行结果如下:服务器: 消息 513,级别 16,状态 1,行 1 列的插入或更新与先前的 CREATE RULE 语句所强制的规则冲突。该语句已终止。冲突发生于数据库 HrSystem,

24、表 EmpInfo,列 Wage。 语句已终止。,8.2.3 删除数据语句,可以使用DELETE语句删除表中的现有数据。DELETE语句的语法结构如下:DELETE FROM WHERE ,【例8.27】,删除表EmpInfo中姓名为小明的员工,具体语句如下:USE HrSystem GO DELETE FROM EmpInfo WHERE Emp_Name = 小明 GO,RUNCATE TABLE语句,TRUNCATE TABLE语句的语法结构如下:TRUNCATE TABLE ,【例8.28】,删除表EmpInfo中的所有记录,具体语句如下:USE HrSystem GO DELETE FROM EmpInfo WHERE Emp_Name = 小明 GO,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报