《SQL基础培训资料课件.ppt》由会员分享,可在线阅读,更多相关《SQL基础培训资料课件.ppt(42页珍藏版)》请在三一办公上搜索。
1、SQL基础,数据库平台介绍,企业管理器(sql2000)事件探察器(sql2000)查询分析器(sql2000)导入和导出数据(sql2000)2005数据库相关操作SQL简单语句介绍,企业管理器_选项,企业管理器_系统库,企业管理器_系统表,企业管理器_用户口令增加修改,企业管理器_备份,企业管理器_还原,企业管理器_分离附加,企业管理器_设计表,企业管理器_打开表,查询分析器_跟踪属性(PID),查询分析器_跟踪属性(DATAID),查询分析器_跟踪界面,查询分析器_设置默认跟踪模板,查询分析器_界面,导入和导出数据,导入和导出数据_从源数据库复制表和视图,导入和导出数据_用一条查询指定传
2、输的数据,导入和导出数据_在SQL数据库之间复制对象和数据,2005数据库_总体,SQL2005把企业管理器、查询分析器、事件探察器、等工具统一到一个界面,使用时通过相关结点调用,并取消了“服务管理器”在任务栏的图标,只在“服务”中显示,其中事件探察器的使用及操作界面有很大的变化,其它功能结点如:备份、还原、附加、分离、导入导出数据、设计表等操作都与SQL2000操作、位置及方法基本相同,界面位置变化也不大,就不做详细介绍,下面介绍一下事件探察器的设置方法。,2005数据库_事件探察器,SQL简单语句介绍,数据操作语言1、Select语法2、检索前N行、生成表3、 Union4、多表连接5、搜
3、索条件6、select总结7、update8、insert9、delete,数据定义语言 1、创建表 2、删除表 3、增加列、删除列,常用函数 1、聚合函数 2、日期函数 3、元函数 4、字符串函数 5、系统函数,数据操作语言_Select语法,SELECT ID,AUTOID,CINVCODE,CWHCODE FROM IA_SUBSIDIARY从数据库中检索行,并允许从一个或多个表中选择一个或多个行或列。虽然 SELECT 语句的完整语法较复杂,但是其主要的子句可归纳如下:SELECT select_list INTO new_table FROM table_source WHERE s
4、earch_condition GROUP BY group_by_expression HAVING search_condition ORDER BY order_expression ASC | DESC 可以在查询之间使用 UNION 运算符,以将查询的结果组合成单个结果集。,数据操作语言_检索前N行、生成表,例:SELECT top 10 cinvcode as 存货编码 , iquantity as 数量 FROM rdrecords例:SELECT *into #aa FROM rdrecords where cinvcode=0101,数据操作语言_ Union,将两个或更多查
5、询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。这与使用联接组合两个表中的列不同,并去除重复值。使用 UNION 组合两个查询的结果集的两个基本规则是: 所有查询中的列数和列的顺序必须相同,数据类型必须兼容例: select cinvcode,iquantity from rdrecords where cinvcode=0101 union select cinvcode,iquantityfrom currentstock where iquantity=5040,数据操作语言_多表连接,内连接 Inner Join 或where中指定(不推荐使用)外连接FULL OU
6、TER指定在结果集中包含左表或右表中不满足联接条件的行,并将对应于另一个表的输出列设为 NULL。这是对通常由 INNER JOIN 返回的所有行的补充。LEFT OUTER指定在结果集中包含左表中所有不满足联接条件的行,且在由内联接返回所有的行之外,将另外一个表的输出列设为 NULL。RIGHT OUTER指定在结果集中包含右表中所有不满足联接条件的行,且在由内联接返回的所有行之外,将与另外一个表对应的输出列设为 NULL。例:select a.ccode as 单据编号,b.cinvcode as 存货编码,b.iquantity as 数量 from rdrecord a left jo
7、in rdrecords b on a.id=b.id where b.cinvcode=0101 order by a.ccode ,b.cinvcode ,b.iquantity,数据操作语言_多表查询,多表查询在指定条件后相当于内连接select b.ccode AS 单据号, a.cinvcode as 存货编码, a.iquantity as 数量 from rdrecords a ,(select * from rdrecord) b where a.id = b.id order by a.cinvcode asc, a.iquantity asc, b.ccode asc,数据
8、操作语言_搜索条件,是使用逻辑运算符 AND、OR 和 NOT 的一个或更多谓词的组合。用在where、on、having、if、case等能够逻辑计算的地方Like、In、EXISTS IN和EXISTS一般使用在内嵌表逻辑运算符的优先顺序是 NOT(最高),接着是 AND,最后是 OR。同一优先级上的取值顺序是从左到右。在搜索条件内,可使用圆括号替代此顺序。有关逻辑运算符如何在真实值上运算的更多信息。例: Like (% _ )Select * from rdrecords where cinvcode like%01% and iquantity=500 例:inSelect * fro
9、m rdrecords where cinvcode in(0101,0102,0103) and not iquantity=500例: EXISTS select * from ia_summary where exists(select * from ia_summary as a where ia_summary.cwhcode=a.cwhcode and ia_summary.cinvcode=a.cinvcode and ia_summary.imonth=a.imonth and ia_summary.imonth=2 and ia_summary.autoida.autoid
10、),数据操作语言_select总结,1、SELECT 后可以有常量,变量,字段,计算结果,函数,内嵌Select语句。2、From 后有一个或多个表,视图,函数(返回表),或内嵌Select语句,相互之间可以通过后面的Where条件约束,也可以通过连接(join )建立关联(此方面同样使用于更新脚本)3、where后有一个或多个逻辑条件的AND或OR的逻辑组合而成4、group by 列出需要分类的数据列,同时注意Select可以列出的除了Group by后分类数据列外,不能有其他数据列,主要是聚合函数5、having 列出分类后的数据的一个或多个逻辑条件的and或or的逻辑组合,同时逻辑条件
11、中的数据列除了Group by的分类列以外不能有其他数据列,主要是聚合函数,数据操作语言_UPDATE,例:单表更新update rdrecords iquantity=100, isquantity=100,issumquantity=100 where cinvcode=0101and autoid=3例:多表关联更新update a set a.ccode=111 from rdrecord as a left join rdrecords as b on a.id=b.id where b.cinvcode=0101,数据操作语言_INSERT,例:INSERT INTO Rd_Sty
12、le(cRdCode, cRdName, iRdGrade, bRdFlag, bRdEnd, cOppHead, pubufts) VALUES(5,其他入库,1,1,1,)例:INSERT INTO Rd_Style(cRdCode, cRdName, iRdGrade, bRdFlag, bRdEnd, cOppHead, pubufts) VALUES(select cRdCode, cRdName, iRdGrade, bRdFlag, bRdEnd, cOppHead, pubufts from Rd_Style where cRdName=其他入库 ),数据操作语言_delete
13、,例:单表删除Delete rdecords where rdrecord.id=550000337例:多表关联删除delete from rdrecords from rdrecords join rdrecord on rdrecord.id=rdrecords.id where rdrecord.id=550000337快速整表删除Truncat table 例: Truncat table ua_log,数据定义语言_创建表,例:CREATE TABLE #Rd_Style (cRdCode nvarchar (5), cRdName nvarchar (12), iRdGrade t
14、inyint NOT NULL , bRdFlag int NOT NULL , bRdEnd bit NOT NULL , cOppHead nvarchar (15) Not Null, pubufts timestamp NULL ),数据定义语言_删除表,例:判断dbo.sysobjects表中是否存在RdRecords表存在则删除。if exists (select * from dbo.sysobjects where id = object_id(NRdRecords) and OBJECTPROPERTY(id, NIsUserTable) = 1) drop table Rd
15、Records例:简单情况drop table RdRecords,数据定义语言_增加列、删除列,例:增加列ALTER table Rd_Style Add cRdCode char(5) Not Null例:删除列ALTER TABLE Rd_Style DROP COLUMN cRdCode,常用函数_聚合函数,COUNT:返回集合中项目的数量(具体数目取决于集合)。例:select count(*) from accinformationSUM:返回在某一集合上对数值表达式求得的和。例:select sum(iquantity) from rdrecords whereAVG:返回在某一
16、集合上对数值表达式求得的平均值 。例:select avg(iquantity) from rdrecordsMAX:返回表达式的最大值 例: select max(iquantity) from rdrecordsMin:返回在某一集合上对数值表达式求得的最小值 例:select min(iquantity) from rdrecords,常用函数_日期函数,DATEADD:在向指定日期加上一段时间的基础上,返回新的 datetime 值。例:select dateadd(day,0,dsdate) from rdrecorsGETDATE:按 datetime 值的 Microsoft S
17、QL Server 标准内部格式返回当前系统日期和时间 例:SELECT GETDATE()MONTH:返回代表指定日期月份的整数。 例:SELECT MONTH(dsdate) from rdrecordsYEAR:回代表指定日期的年的日期部分的整数 例:SELECT year(dsdate) from rdrecords:Day:回代表指定日期的天的日期部分的整数 例: SELECT day(dsdate) from rdrecords,常用函数_元函数,DB_name:返回数据库名。例: select db_name (ufdata_001_2008)db_id:返回数据库ID例:sel
18、ect db_id(ufdata_001_2008)object_id:返回数据库对象标识号 例:Select object_id(ufdata_001_2008.rdrecords),常用函数_字符串函数,CHARINDEX:返回字符串中指定表达式的起始位置。 例:select charindex(0, cinvcode) from rdrecords Left:返回从字符串左边开始指定个数的字符。例:select left(cinvcode,3)from rdrecordsRight:返回从字符串右边开始指定个数的字符。例: select Right(cinvcode,3)from rdr
19、ecordsRtrim:截断所有尾随空格后返回一个字符串。例:select (select left(csource,8)from rdrecord where id=3)+Rtrim(select left(csource,8)from rdrecord where id=5) )from rdrecord where id=3Ltrim:删除起始空格后返回字符表达式。例:select (select left(csource,8)from rdrecord where id=3)+ Ltrim(select left(csource,8)from rdrecord where id=5)
20、)from rdrecord where id=3Len:返回给定字符串表达式的字符(而不是字节)个数,其中不包含尾随空格 例:select Len(cinvcode) from rdrecords,常用函数_系统函数,系统函数:Case:计算条件列表并返回多个可能结果表达式之一,CASE 具有两种格式:简单 CASE 函数将某个表达式与一组简单表达式进行比较以确定结果,CASE 搜索函数计算一组布尔表达式以确定结果,两种格式都支持可选的 ELSE 参数。 例(1):select sum(CASE cvoutype when 01then isnull(iainquantity,0) when
21、 70then +isnull(iainquantity,0)WHEN 10 then +isnull(iainquantity,0)when 08then +isnull(iainquantity,0)when 09then -isnull(iaoutquantity,0) when 27then -isnull(iaoutquantity,0) when 11then -isnull(iaoutquantity,0) else 0 end ) from ia_subsidiary例(2):select (case when iainquantity is not null then iai
22、nquantity else 0 end) as 入库数量 from ia_subsidiaryConvert:将某种数据类型的表达式显式转换为另一种数据类型。例:select CONVERT (char(5),cvoucode) from ia_subsidiaryIsnull:使用指定的替换值替换 NULL 例:select isnull(iainquantity,0) from ia_subsidiary Isdate:确定输入表达式是否为有效的日期,如果输入表达式是有效的日期,那么 ISDATE 返回 1;否则,返回 0。下表显示一组示例所得到的返回值 例:select Isdate(dvoudate)from ia_subsidiary,