SQL基础数据库平台介绍企业管理器(sql2000)事件探察器(sql2000)查询分析器(sql2000)导入和导出数据(sql2000)2005数据库相关操作SQL简单语句介绍企业管理器_选项企业管理器_系统库企业管理器_系统表企业管理器_用户口令增加修改企业管理器_备份企业管理器_还原企业管理器_分离附加企业管理器_设计表企业管理器_打开表查询分析器_跟踪属性(PID)查询分析器_跟踪属性(DATAID)查询分析器_跟踪界面查询分析器_设置默认跟踪模板查询分析器_界面导入和导出数据导入和导出数据_从源数据库复制表和视图导入和导出数据_用一条查询指定传输的数据导入和导出数据_在SQL数据库之间复制对象和数据2005数据库_总体SQL2005把企业管理器、查询分析器、事件探察器、等工具统一到一个界面,使用时通过相关结点调用,并取消了“服务管理器”在任务栏的图标,只在“服务”中显示,其中事件探察器的使用及操作界面有很大的变化,其它功能结点如:备份、还原、附加、分离、导入导出数据、设计表等操作都与SQL2000操作、位置及方法基本相同,界面位置变化也不大,就不做详细介绍,下面介绍一下事件探察器的设置方法。2005数据库_事件探察器SQL简单语句介绍数据操作语言1、Select语法2、检索前N行、生成表3、Union4、多表连接5、搜索条件6、select总结7、update8、insert9、delete数据定义语言1、创建表2、删除表3、增加列、删除列常用函数1、聚合函数2、日期函数3、元函数4、字符串函数5、系统函数数据操作语言_Select语法SELECTID,AUTOID,CINVCODE,CWHCODEFROMIA_SUBSIDIARY从数据库中检索行,并允许从一个或多个表中选择一个或多个行或列。虽然SELECT语句的完整语法较复杂,但是其主要的子句可归纳如下:SELECTselect_list[INTOnew_table]FROMtable_source[WHEREsearch_condition][GROUPBYgroup_by_expression][HAVINGsearch_condition][ORDERBYorder_expression[ASC|DESC]]可以在查询之间使用UNION运算符,以将查询的结果组合成单个结果集。数据操作语言_检索前N行、生成表例:SELECTtop10cinvcodeas存货编码,iquantityas数量FROMrdrecords例:SELECT*into#aaFROMrdrecordswherecinvcode='0101'数据操作语言_Union将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。这与使用联接组合两个表中的列不同,并去除重复值。使用UNION组合两个查询的结果集的两个基本规则是:所有查询中的列数和列的顺序必须相同,数据类型必须兼容例:selectcinvcode,iquantityfromrdrecordswherecinvcode='0101‘unionselectcinvcode,iquantityfromcurrentstockwhereiquantity=5040数据操作语言_多表连接内连接InnerJoin或where中指定(不推荐使用)外连接FULL[OUTER]指定在结果集中包含左表或右表中不满足联接条件的行,并将对应于另一个表的输出列设为NULL。这是对通常由INNERJOIN返回的所有行的补充。LEFT[OUTER]指定在结果集中包含左表中所有不满足联接条件的行,且在由内联接返回所有的行之外,将另外一个表的输出列设为NULL。RIGHT[OUTER]指定在结果集中包含右表中所有不满足联接条件的行,且在由内联接返回的所有行之外,将与另外一个表对应的输出列设为NULL。例:selecta.ccodeas单据编号,b.cinvcodeas存货编码,b.iquantityas数量fromrdrecordaleftjoinrdrecordsbona.id=b.idwhereb.cinvcode='0101'orderbya.ccode,b.cinvcode,b.iquantity数据操作语言_多表查询多表查询在指定条件后相当于内连接selectb.ccodeAS单据号,a.cinvcodeas存货编码,a.iquantityas数量fromrdrecordsa,(select*fromrdrecord)bwherea.id=b.idorderbya.cinvcodeasc,a.iquantityasc,b.ccodeasc数据操作语言_搜索条件是使用逻辑运算符AND、OR和NOT的一个或更多谓词的组合。用在where、on、having、if、case等能够逻辑计算的地方Like、In、EXISTSIN和EXISTS一般使用在内嵌表逻辑运算符的优先顺序是NOT(最高),接着是AND,最后是OR。同一优先级上的取值顺序是从左到右。在搜索条件内,可使用圆括号替代此顺序。有关逻辑运算符如何在真实值上运算的更多信息。例:Like(%_[][^])Select*fromrdrecordswherecinvcodelike’%01%’andiquantity=500例:inSelect*fromrdrecordswherecinvcodein(‘0101’,’0102’,’0103’)andnotiquantity=500例:EXISTSselect*fromia_summarywhereexists(select*fromia_summaryasawhereia_summary.cwhcode=a.cwhcodeandia_summary.cinvcode=a.cinvcodeandia_summary.imonth=a.imonthandia_summary.imonth=2andia_summary.autoida.autoid)数据操作语言_select总结1、SELECT后可以有常量,变量,字段,计算结果,函数,内嵌Select语句。2、From后有一个或多个表,视图,函数(返回表),或内嵌Select语句,相互之间可以通过后面的Where条件约束,也可以通过连接(join)建立关联(此方面同样使用于更新脚本)3、where后有一个或多个逻辑条件的AND或OR的逻辑组合而成4、groupby列出需要分类的数据列,同时注意Select可以列出的除了Groupby后分类数据列外,不能有其他数据列,主要是聚合函数5、having列出分类后的数据的一个或多个逻辑条件的and或or的逻辑组合,同时逻辑条件中的数据列除了Groupby的分类列以外不能有其他数据列,主要是聚合函数数据操作语言_UPDATE例:单表更新updaterdrecordsiquantity=100,isquantity=100,issumquantity=100wherecinvcode='0101'andautoid=3例:多表关联更新updateaseta.ccode=111fromrdrecordasaleftjoinrdrecordsasbona.id=b.idwhereb.cinvcode='0101'数据操作语言_INSERT例:INSERTINTORd_Style(cRdCode,cRdName,iRdGrade,bRdFlag,bRdEnd,cOppHead,pubufts)VALUES(‘5’,‘其他入库’,‘1’,‘1’,‘1’,‘’,‘’)例:INSERTINTORd_Style(cRdCode,cRdName,iRdGrade,bRdFlag,bRdEnd,cOppHead,pubufts)VALUES(selectcRdCode,cRdName,iRdGrade,bRdFlag,bRdEnd,cOppHead,pubuftsfromRd_StylewherecRdName=‘其他入库’)数据操作语言_delete例:单表删除Deleterdecordswhererdrecord.id=550000337例:多表关联删除deletefromrdrecordsfromrdrecordsjoinrdrecordonrdrecord.id=rdrecords.idwhererdrecord.id=550000337快速整表删除Truncattable例:Truncattableua_log数据定义语言_创建表例:CREATETABLE[#Rd_Style]([cRdCode][nvarchar](5),[cRdName][nvarchar](12),[iRdGrade][tinyint]NOTNULL,[bRdFlag][int]NOTNULL,[bRdEnd][bit]NOTNULL,[cOppHead][nvarchar](15)NotNull,[pubufts][timestamp]NULL)数据定义语言_删除表例:判断dbo.sysobjects表中是否存在RdRecords表存在则删除。ifexists(select*fromdbo.sysobjectswhereid=object_id(N'[RdRecords]')andOBJECTPROPERTY(id,N'IsUserTable')=1)droptableRdRecords例:简单情况droptableRdRecords数据定义语言_增加列、删除列例:增加列ALTERtableRd_StyleAddcRdCodechar(5)NotNull例:删除列ALTERTABLERd_StyleDROPCOLUMNcRdCode常用函数_聚合函数COUNT:返回集合中项目的数量(具体数目取决于集合)。例:selectcount(*)fromaccinformationSUM:返回在某一集合上对数值表达式求得的和。例:selectsum(iquantity)fromrdrecordswhereAVG:返回在某一集合上对数值表达式求得的平均值。例:selectavg(iquantity)fromrdrecordsMAX:返回表达式的最大值例:selectmax(iquantity)fromrdrecordsMin:返回在某一集合上对数值表达式求得的最小值例:selectmin(iquantity)fromrdrecords常用函数_日期函数DATEADD:在向指定日期加上一段时间的基础上,返回新的datetime值。例:selectdateadd(day,0,dsdate)fromrdrecorsGETDATE:按datetime值的Microsoft®SQLServer™标准内部格式返回当前系统日期和时间例:SELECTGETDATE()MONTH:返回代表指定日期月份的整数。例:SELECTMONTH(dsdate)fromrdrecordsYEAR:回代表指定日期的年的日期部分的整数例:SELECTyear(dsdate)fromrdrecords:Day:回代表指定日期的天的日期部分的整数例:SELECTday(dsdate)fromrdrecords常用函数_元函数DB_name:返回数据库名。例:selectdb_name(‘ufdata_001_2008')db_id:返回数据库ID例:selectdb_id(‘ufdata_001_2008')object_id:返回数据库对象标识号例:Selectobject_id(‘ufdata_001_2008..rdrecords')常用函数_字符串函数CHARINDEX:返回字符串中指定表达式的起始位置。例:selectcharindex('0',cinvcode)fromrdrecordsLeft:返回从字符串左边开始指定个数的字符。例:selectleft(cinvcode,3)fromrdrecords