您好,欢迎访问三七文档
常用SQL语句技术部V1.0常用SQL语句数据库定义语言DDL数据操作语言DMLSQLServer中常见的函数SQLServer中常见的系统存储过程及系统表从其他数据库取数据的方法数据库定义语言建表CREATETABLETemp01(ObjectIDintNOTNULL,Namevarchar(30)NOTNULL,Titlevarchar(20),CONSTRAINTID_PKPRIMARYKEY(ObjectID))修改表添加字段ALTERTABLEtemp01ADDcolumn_aVARCHAR(500)NULL删除字段ALTERTABLEtemp01DROPCOLUMNcolumn_b删除表DROPTABLEtemp01数据查询SELECTListFROMWHERE部分语法:SELECT[ALL|DISTINCT]select_listFROM{table_source}[,…n]WHEREsearch_condition简单查询SELECT*FROMarchobjectsWHEREMark='12'Distinct为不重复记录Topn取前几行IS别名给字段取个别名MarkIS标识Orderby排序asc从小到大、desc从大到小,默认为ascGroupby分组BroupbyDepartIDhavingcount(*)9[]一些特殊字符用”[]”括起来union合并查询连接查询内连接:仅显示两个联接表中的匹配行的联接Selecttemp01.*fromtemp01,temp02wheretemp01.name=temp02.name左向外联接:包括第一个命名表(“左”表,出现在JOIN子句的最左边)中的所有行。不包括右表中的不匹配行Selecttemp01.Title,temp02.Markfromtemp01Leftouterjointemp02ontemp01.name=temp02.name右向外联接包括第二个命名表(“右”表,出现在JOIN子句的最右边)中的所有行。不包括左表中的不匹配行Selecttemp01.Title,temp02.Markfromtemp01Rightouterjointemp02ontemp01.name=temp02.name数据插入单行数据INSERTINTOtemp01(ID,Name,Duty)VALUES(1000,'航星','系统管理员')多行数据从其它表中读数据插入已存在的表内INSERTINTOtemp01(ObjectID,Name,Title)SELECTID,description1,description2FROMtemp02创建表并插入数据SELECT*INTOtemp02FROMtemp01WHEREsearch_condition更新数据语法UPDATE表名SET列名=常量值|表达式[WHERE更新条件]直接设置值UPDATEtemp01SETDuty='经理'whereDuty='系统管理员‘从其它表中取值UPDATEtemp01SETstyle=a.stylefromtemp01,temp02awheretemp01.ID=a.ID删除数据语法DELETEFROM表名[WHERE删除条件]DELETEFROMtemp01WHEREstyle='3'条件过滤常用的表达式、、=、=、in('1','2')Between…AndIsNullIsNotNullLike'ad%'常用函数绝对值:ABS(numeric_expression)SELECTabs(-9)值为9取整(大)CEILING(numeric_expression)返回大于或等于所给数字表达式的最小整数SELECTceiling(-1.001)值为-1SELECTceiling(3.4)值为4取整(小)floor(numeric_expression)返回小于或等于所给数字表达式的最大整数SELECTfloor(-1.001)值为-2SELECTfloor(1.001)值为1常用函数取整去掉小数部分SELECTCAST(5.702asint)value值为5四舍五入ROUND(numeric_expression,length[,function])返回数字表达式并四舍五入为指定的长度或精度SELECTROUND(123.9994,3),值为123.9990SELECTROUND(123.9995,3),值为124.0000SELECTROUND(123.9995,-1)值为120.0000统计函数求最大值max(),最小值min(),平均值avg(),求个数count(),求和sum()常用函数取子串:SUBSTRING(expression,start,length)SELECTcolumn1=SUBSTRING('abcdefg',3,3)值为cde左取几位字符Left(character_expression,integer_expression)右取几位字符Right(character_expression,integer_expression)字符串查找返回字符串中指定表达式的起始位置CHARINDEX(expression1,expression2[,start_location])SELECTCHARINDEX('c','abcabcd',2)column1值为3常用函数子串代替STUFF(character_expression,start,length,character_expression)删除指定长度的字符并在指定的起始点插入另一组字符SELECTSTUFF('abcdefg',2,3,'wxyz')column1值为awxyzefg去左空格LTRIM(character_expression)删除起始空格后返回字符表达式去右空格RTRIM(character_expression)删除结尾空格后返回字符表达式常用函数取系统时间getdate(),前加几天,或减几天SELECTgetdate()+3将日期格式转为8位字符SELECTconvert(varchar(10),getdate(),20)字符串转日期SELECTcast('2007-07-06'asdatetime)column1取日期的年、月、日year(getdate()),month(getdate()),day(getdate())ISNULL使用指定的替换值替换NULL,IDENTITY(函数)只用在带有INTOtable子句的SELECT语句中,以将标识列插入到新表中.IDENTITY(data_type[,seed,increment])AScolumn_1NEWID创建uniqueidentifier类型的唯一值。常用系统存储过程查看表的相关信息sp_helpArchobjects查看表的主键sp_pkeys修改表名sp_renametemp01,temp02修改字段名sp_rename'temp01.name','名称','COLUMN'修改数据库名sp_renamedb'库名','新名'系统中存在哪些对象sysobjects表中存在哪些字段syscolumnsSELECT*fromsyscolumnswhereid=object_id('Archobjects')取SQLServer数据其它机器sqlserver数据库SELECTa.*FROMOPENROWSET('SQLOLEDB','hxjsb';'sa';'','SELECT*FROMarch_support.dbo.inforelease')ASa取Access数据库Access数据库SELECTa.*FROMOPENROWSET('Microsoft.Jet.OLEDB.4.0','D:\航星档案软件导出数据包\Arch.Mdb';'admin';'',archobjects)ASaSELECT*FROMOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource=D:\航星档案软件导出数据包\Arch.Mdb;UserID=;Password=')...archobjects取Excel数据库SELECT*FROMOpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource=C:\a.xls;UserID=Admin;Password=;Extendedproperties=Excel5.0')...[Sheet1$]取Foxpro中的数据库SELECT*fromopenrowset('MSDASQL','Driver=MicrosoftVisualFoxProDriver;SourceDB=d:\books;SourceType=DBF','select*frombooks')•谢谢
本文标题:常用SQL语句
链接地址:https://www.777doc.com/doc-3356789 .html