SQL Server Transact_SQL 小手册

2022-11-12 09:53:17
内容摘要
这篇文章主要为大家详细介绍了SQL Server Transact_SQL 小手册,具有一定的参考价值,可以用来参考一下。 对此感兴趣的朋友,看看idc笔记做的技术笔记!--语句功能--数据操作SELE
文章正文

这篇文章主要为大家详细介绍了SQL Server Transact_SQL 小手册,具有一定的参考价值,可以用来参考一下。

对此感兴趣的朋友,看看idc笔记做的技术笔记!

--语句功能--数据操作SELECT--从数据库表中检索数据行和列INSERT--向数据库表添加新数据行DELETE--从数据库表中删除数据行UPDATE--更新数据库表中的数据--数据定义CREATETABLE--创建一个数据库表DROPTABLE--从数据库中删除表ALTERTABLE--修改数据库表结构CREATEVIEW--创建一个视图DROPVIEW--从数据库中删除视图CREATEINDEX--为数据库表创建一个索引DROPINDEX--从数据库中删除索引CREATEPROCEDURE--创建一个存储过程DROPPROCEDURE--从数据库中删除存储过程CREATETRIGGER--创建一个触发器DROPTRIGGER--从数据库中删除触发器CREATESCHEMA--向数据库添加一个新模式DROPSCHEMA--从数据库中删除一个模式CREATEDOMAIN--创建一个数据值域ALTERDOMAIN--改变域定义DROPDOMAIN--从数据库中删除一个域--数据控制GRANT--授予用户访问权限DENY--拒绝用户访问REVOKE--解除用户访问权限--事务控制COMMIT--结束当前事务ROLLBACK--中止当前事务SETTRANSACTION--定义当前事务数据访问特征--程序化SQLDECLARE--为查询设定游标EXPLAN--为查询描述数据访问计划OPEN--检索查询结果打开一个游标FETCH--检索一行查询结果CLOSE--关闭游标PREPARE--为动态执行准备SQL语句EXECUTE--动态地执行SQL语句DESCRIBE--描述准备好的查询---局部变量declare@idchar(10)--set@id='10010001'select@id='10010001'---全局变量---必须以@@开头--IFELSEdeclare@xint@yint@zintselect@x=1@y=2@z=3if@x〉@yprint'x〉y'--打印字符串'x〉y'elseif@y〉@zprint'y〉z'elseprint'z〉y'--CASEusepanguupdateemployeesete_wage=casewhenjob_level='1'thene_wage*1.08whenjob_level='2'thene_wage*1.07whenjob_level='3'thene_wage*1.06elsee_wage*1.05end--WHILECONTINUEBREAKdeclare@xint@yint@cintselect@x=1@y=1while@x〈3beginprint@x--打印变量x的值while@y〈3beginselect@c=100*@x+@yprint@c--打印变量c的值select@y=@y+1endselect@x=@x+1select@y=1end--WAITFOR--例等待1小时2分零3秒后才执行SELECT语句waitfordelay'01:02:03'select*fromemployee--例等到晚上11点零8分后才执行SELECT语句waitfortime'23:08:00'select*fromemployee***SELECT***select*(列名)fromtable_name(表名)wherecolumn_nameoperatorvalueex:(宿主)select*fromstock_informationwherestockid=str(nid)stockname='str_name'stocknamelike'%findthis%'stocknamelike'[a-zA-Z]%'---------([]指定值的范围)stocknamelike'[^F-M]%'---------(^排除指定范围)---------只能在使用like关键字的where子句中使用通配符)orstockpath='stock_path'orstocknumber〈1000andstockindex=24notstocksex='man'stocknumberbetween20and100stocknumberin(10,20,30)orderbystockiddesc(asc)---------排序,desc-降序,asc-升序orderby1,2---------by列号stockname=(selectstocknamefromstock_informationwherestockid=4)---------子查询---------除非能确保内层select只返回一个行的值,---------否则应在外层where子句中用一个in限定符selectdistinctcolumn_nameformtable_name---------distinct指定检索独有的列值,不重复selectstocknumber,“stocknumber+10“=stocknumber+10fromtable_nameselectstockname,“stocknumber“=count(*)fromtable_namegroupbystockname---------groupby将表按行分组,指定列中有相同的值havingcount(*)=2---------having选定指定的组select*fromtable1,table2wheretable1.id*=table2.id--------左外部连接,table1中有的而table2中没有得以null表示table1.id=*table2.id--------右外部连接selectstocknamefromtable1union[all]-----union合并查询结果集,all-保留重复行selectstocknamefromtable2***insert***insertintotable_name(Stock_name,Stock_number)value(“xxx“,“xxxx“)value(selectStockname,StocknumberfromStock_table2)---value为select语句***update***updatetable_namesetStockname=“xxx“[whereStockid=3]Stockname=defaultStockname=nullStocknumber=Stockname+4***delete***deletefromtable_namewhereStockid=3truncatetable_name-----------删除表中所有行,仍保持表的完整性droptabletable_name---------------完全删除表***altertable***---修改数据库表结构altertabledatabase.owner.table_nameaddcolumn_namechar(2)null.....sp_helptable_name----显示表已有特征createtabletable_name(namechar(20),agesmallint,lnamevarchar(30))insertintotable_nameselect.........-----实现删除列的方法(创建新表)altertabletable_namedropconstraintStockname_default----删除Stockname的default约束***function(/*常用函数*/)***----统计函数----AVG--求平均值COUNT--统计数目MAX--求最大值MIN--求最小值SUM--求和--AVGusepanguselectavg(e_wage)asdept_avgWagefromemployeegroupbydept_id--MAX--求工资最高的员工姓名usepanguselecte_namefromemployeewheree_wage=(selectmax(e_wage)fromemployee)--STDEV()--STDEV()函数返回表达式中所有数据的标准差--STDEVP()--STDEVP()函数返回总体标准差--VAR()--VAR()函数返回表达式中所有值的统计变异数--VARP()--VARP()函数返回总体变异数----算术函数----/***三角函数***/SIN(float_expression)--返回以弧度表示的角的正弦COS(float_expression)--返回以弧度表示的角的余弦TAN(float_expression)--返回以弧度表示的角的正切COT(float_expression)--返回以弧度表示的角的余切/***反三角函数***/ASIN(float_expression)--返回正弦是FLOAT值的以弧度表示的角ACOS(float_expression)--返回余弦是FLOAT值的以弧度表示的角ATAN(float_expression)--返回正切是FLOAT值的以弧度表示的角ATAN2(float_expression1,float_expression2)--返回正切是float_expression1/float_expres-sion2的以弧度表示的角DEGREES(numeric_expression)--把弧度转换为角度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT类型RADIANS(numeric_expression)--把角度转换为弧度返回与表达式相同的数据类型可为--INTEGER/MONEY/REAL/FLOAT类型EXP(float_expression)--返回表达式的指数值LOG(float_expression)--返回表达式的自然对数值LOG10(float_expression)--返回表达式的以10为底的对数值SQRT(float_expression)--返回表达式的平方根/***取近似值函数***/CEILING(numeric_expression)--返回〉=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT类型FLOOR(numeric_expression)--返回〈=表达式的最小整数返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT类型ROUND(numeric_expression)--返回以integer_expression为精度的四舍五入值返回的数据--类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT类型ABS(numeric_expression)--返回表达式的绝对值返回的数据类型与表达式相同可为--INTEGER/MONEY/REAL/FLOAT类型SIGN(numeric_expression)--测试参数的正负号返回0零值1正数或-1负数返回的数据类型--与表达式相同可为INTEGER/MONEY/REAL/FLOAT类型PI()--返回值为π即3.1415926535897936RAND([integer_expression])--用任选的[integer_expression]做种子值得出0-1间的随机浮点数----字符串函数----ASCII()--函数返回字符表达式最左端字符的ASCII码值CHAR()--函数用于将ASCII码转换为字符--如果没有输入0~255之间的ASCII码值CHAR函数会返回一个NULL值LOWER()--函数把字符串全部转换为小写UPPER()--函数把字符串全部转换为大写STR()--函数把数值型数据转换为字符型数据LTRIM()--函数把字符串头部的空格去掉RTRIM()--函数把字符串尾部的空格去掉LEFT(),RIGHT(),SUBSTRING()--函数返回部分字符串CHARINDEX(),PATINDEX()--函数返回字符串中某个指定的子串出现的开始位置SOUNDEX()--函数返回一个四位字符码--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0值DIFFERENCE()--函数返回由SOUNDEX函数返回的两个字符表达式的值的差异--0两个SOUNDEX函数返回值的第一个字符不同--1两个SOUNDEX函数返回值的第一个字符相同--2两个SOUNDEX函数返回值的第一二个字符相同--3两个SOUNDEX函数返回值的第一二三个字符相同--4两个SOUNDEX函数返回值完全相同QUOTENAME()--函数返回被特定字符括起来的字符串/*selectquotename('abc','{')quotename('abc')运行结果如下----------------------------------{{abc}[abc]*/REPLICATE()--函数返回一个重复character_expression指定次数的字符串/*selectreplicate('abc',3)replicate('abc',-2)运行结果如下----------------------abcabcabcNULL*/REVERSE()--函数将指定的字符串的字符排列顺序颠倒REPLACE()--函数返回被替换了指定子串的字符串/*selectreplace('abc123g','123','def')运行结果如下----------------------abcdefg*/SPACE()--函数返回一个有指定长度的空白字符串STUFF()--函数用另一子串替换字符串指定位置长度的子串----数据类型转换函数----CAST()函数语法如下CAST()(〈expression〉AS〈data_type〉[length])CONVERT()函数语法如下CONVERT()(〈data_type〉[length],〈expression〉[,style])selectcast(100+99aschar)convert(varchar(12),getdate())运行结果如下------------------------------------------199Jan152000----日期函数----DAY()--函数返回date_expression中的日期值MONTH()--函数返回date_expression中的月份值YEAR()--函数返回date_expression中的年份值DATEADD(〈datepart〉,〈number〉,〈date〉)--函数返回指定日期date加上指定的额外日期间隔number产生的新日期DATEDIFF(〈datepart〉,〈number〉,〈date〉)--函数返回两个指定日期在datepart方面的不同之处DATENAME(〈datepart〉,〈date〉)--函数以字符串的形式返回日期的指定部分DATEPART(〈datepart〉,〈date〉)--函数以整数值的形式返回日期的指定部分GETDATE()--函数以DATETIME的缺省格式返回系统当前的日期和时间----系统函数----APP_NAME()--函数返回当前执行的应用程序的名称COALESCE()--函数返回众多表达式中第一个非NULL表达式的值COL_LENGTH(〈'table_name'〉,〈'column_name'〉)--函数返回表中指定字段的长度值COL_NAME(〈table_id〉,〈column_id〉)--函数返回表中指定字段的名称即列名DATALENGTH()--函数返回数据表达式的数据的实际长度DB_ID(['database_name'])--函数返回数据库的编号DB_NAME(database_id)--函数返回数据库的名称HOST_ID()--函数返回服务器端计算机的名称HOST_NAME()--函数返回服务器端计算机的名称IDENTITY(〈data_type〉[,seedincrement])[AScolumn_name])--IDENTITY()函数只在SELECTINTO语句中使用用于插入一个identitycolumn列到新表中/*selectidentity(int,1,1)ascolumn_nameintonewtablefromoldtable*/ISDATE()--函数判断所给定的表达式是否为合理日期ISNULL(〈check_expression〉,〈replacement_value〉)--函数将表达式中的NULL值用指定值替换ISNUMERIC()--函数判断所给定的表达式是否为合理的数值NEWID()--函数返回一个UNIQUEIDENTIFIER类型的数值NULLIF(〈expression1〉,〈expression2〉)--NULLIF函数在expression1与expression2相等时返回NULL值若不相等时则返回expression1的值

注:关于SQL Server Transact_SQL 小手册的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!