好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

SQL 结构化查询语言1.ppt

23页
  • 卖家[上传人]:大米
  • 文档编号:588735945
  • 上传时间:2024-09-08
  • 文档格式:PPT
  • 文档大小:626.52KB
  • / 23 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第第￿1￿页Province Maintenance CenterPMCSQL SQL 结构化查询语言结构化查询语言§数据库基础4数据管理技术的发展4数据库(DB)和数据库管理系统(DBMS)4B/S、C/S架构,以及数据库的应用4SQL(结构化查询语言) 概念4数据库系统在省维护中心的应用 第第￿2￿页Province Maintenance CenterPMC数据管理技术的发展数据管理技术的发展 第第￿3￿页Province Maintenance CenterPMC数据库数据库(DB)(DB)和数据库管理系统和数据库管理系统(DBMS)(DBMS)§数据库 (Database)§数据库管理系统 DBMS4Database Management System4数据库管理系统是位于用户与操作系统之间的一层数据管理软件数据库在建立、运用和维护时由数据库管理系统统一管理、统一控制数据库管理系统使用户能方便地定义数据和操纵数据,并能够保证数据的安全性、完整性、多用户对数据的并发使用及发生故障后的系统恢复 §数据库管理员 DBA4数据库系统管理员(Database Administrator,简称DBA) 第第￿4￿页Province Maintenance CenterPMCUSER应用程序DBMSUSERDBMSUSER使用数据库的方法使用数据库的方法 第第￿5￿页Province Maintenance CenterPMCSQL(SQL(结构化查询语言结构化查询语言) ) 概念概念§SQL是结构化查询语言(Structure Query Language)的缩写,是关系型数据库管理系统的标准语言。

      包括数据定义、数据操纵、数据查询和数据控制四个方面,共9个命令§数据定义4CREATE,ALTER,DROP§数据查询4SELECT§数据操作4INSERT,UPDATE,DELETE§数据控制4GRANT,REVOKE 第第￿6￿页Province Maintenance CenterPMC数据库在省维护中心的应用§ORACLE4交换网管,工单系统4NMSS,资源管理系统等§SQL SERVER4MPS CMS WMS 等WEB系统4短信群发等系统注:notes使用的是文档数据库,不是关系数据库 第第￿7￿页Province Maintenance CenterPMCSQL SQL 常用语句常用语句§Select 查询语句4Group by 分组语句4Order by 排序语句4Join 连接语句4Into 语句4Union 合并语句4Like 语句4Sql的特殊语句§Insert 插入语句§Update 更新语句§Delete 删除语句 第第￿8￿页Province Maintenance CenterPMCSELECT的命令格式§SELECT语句的一般格式为:§【命令】 SELECT [ALL/DISTINCT]§[TOP <表达式> [PERCENT]][<别名>.]<列表达式>§[AS <栏名>][,[<别名.>]<列表达式>[AS <栏名>]…]§FROM [<数据库名!>]<表名>[,[<数据库名!>]<表名>…]§[INNER/LEFT/RIGHT/FULL JOIN [<数据库名!>]<表名> §[ON <连接条件>…]]§[[INTO <新表名>]/[TO FILE <文件名>/TO PRINTER/TO SCREEN]]§[WHERE <连接条件>[AND <连接条件>…]§[AND/OR<筛选条件>[AND/OR<筛选条件>…]]]§[GROUP BY <列名>[,<列名>…]][HAVING <筛选条件>]§[ORDER BY <列名>[ASC/DESC][,<列名>[ASC/DESC]…]]; 第第￿9￿页Province Maintenance CenterPMCSQL SQL 中的中的 like like 语句语句1、用 “%”匹配多个字符(1)"a%a":可筛选:"aa","aBa","aBBBa",不能筛选:’aBC’(2)"%ab%":可筛选:"abc","AABB","Xab",不能筛选:’aZb’,’bac’例:以“网”开头:Select * from company where name like ‘网%’以“通”结尾:Select * from company where name like ‘%通’“四”开头、“通”结尾:Select % from company where name like ‘四%通’包含有“网通”:Select * from company where name like ‘%网通%’ 第第￿10￿页Province Maintenance CenterPMCSELECT的运算1、算术运算符( ) 分组括号 *、/ 乘、除 +、- 加、减算术运算符的优先次序为括号、乘方、乘除和加减,同级运算从左到右依次进行 例:还有多少年退休:Select SNO,SNAME,60-SOLD as TX_OLD from student45年以后已退休的有哪些:Select * from student where SOLD+45>=602、关系运算符< 小于 > 大于 = 等于 <= 小于等于 >= 大于等于 <> 不等于 字符的比较是按ASCII码的大小进行的,汉字是按机内码比较大小的。

      对于表达式则是先算表达式的值,然后用值比较大小 Select * from student where SOLD+45>=60 第第￿11￿页Province Maintenance CenterPMCSELECT的运算3、逻辑运算符AND 逻辑与 OR 逻辑或 NOT 逻辑非 逻辑运算符的优先次序为:NOT→AND→OR表达式的运算顺序是先关系表达式后逻辑表达式 例1:Select * from student where (SOLD+45>=60 and SSEX=‘男 ’) or (SOLD+45>=55 and SSEX=‘女’)例2:Select * from student where age is null / is not null 第第￿12￿页Province Maintenance CenterPMCSELECT的函数1、AVG(字段名或表达式):算数平均数 Select avg(sold) as avg_old from student2、COUNT (字段名或表达式) :计算记录条数 Select COUNT(*) as NSRS from student where SSEX=‘女’3、SUM (字段名或表达式) :返回某特定字段或是运算的总和数值。

      Select sum(score) as t_score from Curse where sno=‘870101’4、MAX (字段名或表达式)、 MIN (字段名或表达式):求最大、最小值上述统计函数多与group by 联合使用另注意having的用法例:统计出每门课的最高分Select CNAME,MAX(SCORE) as MAX_SCORE,MIN(Score) as MIN_SCORE from Curse group by CNAME 第第￿13￿页Province Maintenance CenterPMCSELECT的between and决定某一数值是否介于特定的范围之内例:查询年龄在25-30岁之间的学生Select * from student where sold BETWEEN 25 AND 30等价于: Select * from student where sold>=25 AND sold<=30 第第￿14￿页Province Maintenance CenterPMCSELECT的 join union将两个以上的表格或是查询的结果组合起来,但组合的两部分内容必须具有相同的结构。

      例:将两个表中的男生数据提出来放在一起Select * from student1 where ssex=‘男’ union select * from student2 where ssex=‘男’ §INNER JOIN :显示符合条件的记录,此为默认值;§LEFT JOIN:显示符合条件的数据行以及左边表中不符合条件的数据行,此时右边数据行会以NULL来显示,此称为左连接;§RIGHT JOIN:显示符合条件的数据行以及右边表中不符合条件的数据行,此时左边数据行会以NULL来显示,此称为右连接;§FULL JOIN:显示符合条件的数据行以及左边表和右边表中不符合条件的数据行,此时缺乏数据的数据行会以NULL来显示;§当将JOIN 关键词放于FROM子句中时,应有关键词ON与之相对应,以表明连接的条件 第第￿15￿页Province Maintenance CenterPMCSELECT的EXISTS§EXISTS用于判断子查询结果是否存在带有EXISTS的子查询不返回任何实际数据,它只得到逻辑值“真”或“假”当子查询的查询结果集合为非空时,外层的WHERE子句返回真值,否则返回假值。

      NOT EXISTS与此相反含有IN的查询通常可用EXISTS表示,但反过来不一定§例1 查询讲授课程号为“C140”的教师姓名§SELECT 姓名;FROM 教师;§WHERE EXISTS; (SELECT * ;§ FROM 授课;§ WHERE 教师.教师号=授课.教师号 AND 课程号=‘c140’)§当子查询授课表存在一行记录满足其WHERE子句中的条件时,则父查询便得到一个教师姓名,重复执行以上过程,直到得出最后结果§例2 删除的时候检验是否有员工存在§Delete from 部门 where 部门编号=19 and not EXISTS(select * from 员工 where 员工.部门编号=部门.部门编号) 第第￿16￿页Province Maintenance CenterPMCSQL的INSTER§插入数据是把新的记录插入到一个存在的表中插入数据使用语句INSERT INTO,可插入一条记录,也可插入多条记录§1. 插入一行新记录§【命令】 INSERT INTO <表名>[(<字段名1>[,<字段名2>…])] §VALUES(<表达式1>[,<表达式2>…])§【功能】 将新记录插入到指定的表中,分别用表达式1、表达式2等为字段名1、字段名2等赋值。

      §【说明】 <表名>是指要插入新记录的表;<字段名>是可选项,指定待添加数据的列;VALUES子句指定待添加数据的具体值§列名的排列顺序不一定要和表定义时的顺序一致但当指定字段名时,VALUES子句表达式的排列顺序必须和字段名的排列顺序一致,个数相等,数据类型一一对应INTO语句中没有出现的列名,新记录在这些列上将取空值(如果在表定义时说明了NOT NULL的属性列不能取空值)如果INTO子句没有带任何列名,则插入的新记录必须在每个属性列上均有值 第第￿17￿页Province Maintenance CenterPMCSQL的INSERT INSERT select §1. 从第2表中将数据插入§【命令】 INSERT INTO <表名>[(<字段名1>[,<字段名2>…])] §(select >[(<字段名1>[,<字段名2>…] from 源表 where ……)例:例: Insert into bestuser (Insert into bestuser (姓名姓名, ,工号工号, ,绩效得分绩效得分, ,公司名公司名, ,金额金额, ,年度年度) )SelectSelect姓名姓名, ,工号工号, ,绩效得分绩效得分, ,’’四川网通四川网通’’ as as公司名公司名,100 as ,100 as 金额金额, ,年度年度 from from 绩效表绩效表 where where 绩效得分绩效得分>90>90将绩效得分大于将绩效得分大于9090的加入到优秀员工表里面的加入到优秀员工表里面 第第￿18￿页Province Maintenance CenterPMCSQL的UPDATE§SQL语言可以使用UPDATE语句对表中的一行或多行记录的某些列值进行修改。

      §【命令】 UPDATE <表名>§SET <字段名>=<表达式> [,<字段名>=<表达式>]… [WHERE <条件>]§【功能】 对表中的一行或多行记录的某些列值进行修改§【说明】 <表名>是指要修改的表;SET子句给出要修改的列及其修改后的值;WHERE子句指定待修改的记录应当满足的条件,WHERE子句省略时,则修改表中的所有记录§ 修改一行记录§把“陈静”教师的职称改成副教授§UPDATE 教师;§SET 职称=‘副教授’; §WHERE 姓名=‘陈 静’ 第第￿19￿页Province Maintenance CenterPMCSQL的UPDATE from§从第二表取数据来更新第一表从第二表取数据来更新第一表§更新用户数据的地区信息更新用户数据的地区信息§Update Update 用用户户数数据据 setset 地地区区=(=(selectselect 地地区区 fromfrom 地地区区表表 where where 用用户户数据数据. .区号区号= =地区表地区表. .区号区号 ) ) wherewhere 地区地区 is nullis null§多数据更新多数据更新§UpdateUpdate 用用户户数数据据 setset 地地区区= =地地区区表表. .地地区区, ,省省份份= =地地区区表表. .省省份份 fromfrom 地地区区表表 wherewhere 用用户户数数据据. .区区号号= =地地区区表表. .区区号号 andand ( (用用户户数数据据. .地地区区 is is null null or or 用户数据用户数据. .省份省份is null )is null ) 第第￿20￿页Province Maintenance CenterPMCSELECT的DELETE删除指定数据。

      delete from <表名> where <条件>例:从名单中删除‘王五’ Delete from student where sname= '王五'该语句将删除学生表中所有姓名为‘王五’的记录注意: Delete from student将删除学生表中所有记录 第第￿21￿页Province Maintenance CenterPMC实例演示例1要求 分别统计各号段用户数,并先按城市统计,再然后号码前5位统计例2要求统计某一段时间收到短信最多的用户 第第￿22￿页Province Maintenance CenterPMC实例演示declare @i intdeclare @sql varchar(2000)declare @userid intdeclare @username varchar(200)set @i=1while @i<51beginselect @userid=员工编号 from userinfo where id=@i select top 1 @username=replace(replace(pmc5.员工姓名,',',''),' ','') from pmc5 where 员工编号=@Userid set @username='cnc'+@usernameset @sql ='select * from pmc5 where 员工编号='+cast(@Userid as char(20))EXEC [cmppe].[dbo].[p_exporttb] @sql, 'd:\', 'pmc1',@usernameset @i=@i+1end 第第￿23￿页Province Maintenance CenterPMC谢 谢 ! 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.