Version2.0T-SQL使用第2章Page2/31什么是T-SQLSQL是什么StructuredQueryLanguage,结构化查询语言是应用程序与数据库交流的一种语言T-SQL是什么Transact--SQL事务结构化查询语言是SQL的升级产品Page3/31T-SQL语言分类数据查询语言如:select数据定义语言DDL如:createalterdrop数据操作语言DML如:deleteinsertupdate数据控制语言DCL如:grantrevokedenyPage4/31第一篇:select使用技巧Page5/31数据查询语句—select语法Select查询列表[into新的表名]From需要查询数据的表[where查询条件][groupby分组列表][having分组查询条件][orderby排序列表[asc|desc]]Page6/31T-SQL对象引用的规范对数据库对象名的引用可以由4部分组成的名称格式为:服务器名.数据库名.架构名.对象名例如:select*fromdc.aptech.dbo.table1如果能确保找得到该对象,则不必总是指定服务器、数据库、架构例如:select*fromdc.aptech.dbo.table1select*fromaptech.dbo.table1select*fromdbo.table1select*fromtable1或者select*fromaptech..table1Page7/31Select使用技巧----指定别名例1:以下代码将别名C分配给表customerSelectc.id,c.nameFromcustomerasc例2:以下代码将别名name分配给表customer中的firstname列Selectfirstnameasname,addressFromcustomerPage8/31Select使用技巧----结果中产生新的列例1:select‘shagua’,auth_id,namefromauthorPage9/31Select使用技巧----结果中产生新的列例2:selectaptech=‘’,auth_id,namefromauthorPage10/31Select使用技巧----函数的使用例1:selectcount(*)from工资信息Page11/31Select使用技巧----函数的使用例3:selectsum(列名)from表名Page12/31Select使用技巧----函数的使用例4:selectavg(列名)from表名Page13/31Select使用技巧----函数的使用例5:selectmax(列名)from表名selectmin(列名)from表名Page14/31Select使用技巧----子查询在查询的条件里嵌套另一个查询子句例:select列名from表名where列名=(子查询语句)Page15/31Select使用技巧----列表IN关键字可以选择与列表中的任意值匹配的行。NOTIN关键字可以选择与列表中的任意值不匹配的行。Page16/31Select使用技巧----分组列表Groupby子句可以将结果分组(分类)处理Page17/31Select使用技巧----用having分组查询条件Having子句是应用于结果集的附加筛选Page18/31正确理解where、groupby、having子句的顺序WHERE子句是来筛选FROM子句中指定的操作所产生的行;GROUPBY子句用来分组(分类)WHERE子句的输出结果;HAVING子句用来从分组的结果中进行筛选;Page19/31Select使用技巧—TOP来限制结果集TOP子句限制结果集中返回的行数。例如:查询收入排在前3位的员工信息Page20/31方法1:Selecttop(3)*formtablenameorderbynewid()Select使用技巧—查询随机结果Page21/31方法2:Selecttop(3)*,newid()asrandomformtablenameorderbyrandomSelect使用技巧—查询随机结果Page22/31第二篇:create、alter、drop使用方法Page23/31创建数据库CreatedatabasesalesOnprimary(name=sales_dat,Filename=‘c:\dbdata\sales.mdf’,Size=5mb,Maxsize=100mb,Filegrowth=5mb[filegrowth=10%])Logon(name=sales_log,Filename=‘c:\dbdata\sales.ldf’,Size=5,Maxsize=50,Filegrowth=5%)Page24/31给数据库添加文件组AlterdatabaseaptechAddfilegroupsecondPage25/31修改数据库例1:向数据库添加一个数据文件(日志文件)AlterdatabasesalesAddfile[addlogfile](name=sales_dat,Filename=‘c:\dbdata\sales.ndf’,Size=5mb,Maxsize=10mb,Filegrowth=5%)Tofilegroupsecond/*second是指文件组*/)(说明:日志文件不支持文件组)Page26/31删除数据库DropdatabaseaptechPage27/31创建数据表Createtablemytable(idintprimarykey,Namechar(10),Addressvarchar(50))Onsecond/*#second是文件组名*/Page28/31修改数据表例1:新建列altertablemytableaddinformation/*information是指列名*/varchar(100)null例2:删除列altertablemytabledropcolumninformation/*information是指列名*/例3:修改列的数据类型altertablemytablealtercolumninformationchar(50)/*information是指列名*/Page29/31修改数据表例4:修改列的名称如:将table中的name列更名为username.Execsp_rename‘table.name’,’username’,’column’Page30/31结束