sql命令和常用语句大全.docx
- 文档编号:7988623
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:35
- 大小:47.99KB
sql命令和常用语句大全.docx
《sql命令和常用语句大全.docx》由会员分享,可在线阅读,更多相关《sql命令和常用语句大全.docx(35页珍藏版)》请在冰豆网上搜索。
sql命令和常用语句大全
SQL命令和常用语句大全
学习SQL应知道的动态SQL语句基本语法
1、普通SQL语句可以用Exec执行9Kp=A
'CdaFr1
eg:
Select*fromtableNameWsc+A:
<"
Exec('select*fromtableName')#Btn(
Execsp_executesqlN'select*fromtableName'--请注意字符串前一定要加N%BfplhE1a
AN&)OIDc
2、字段名,表名,数据库名之类作为变量时,必须用动态SQLH2k3./Ip
:
=r|8#8a
eg:
}"|M#
MB
declare@fnamevarchar(20)WH$1[Gv7
set@fname='FiledName'@#D[C;VvrE
Select@fnamefromtableName--错误,不会提示错误,但结果为固定值FiledName,并非所要。
J!
_C^,7#
Exec('select'+@fname+'fromtableName')--请注意加号前后的单引号的边上加空格\Adve]kD$5
w/r;'\>
当然将字符串改成变量的形式也可:
?
Gf%y
declare@fnamevarchar(20)r~j>XK3
set@fname='FiledName'--设置字段名!
i9mD!
G
w(IfnsP
declare@svarchar(1000)7A_?
mu
set@s='select'+@fname+'fromtableName'ezCY_T9m
Exec(@s)--成功W=Q!
_X$
execsp_executesql@s--此句会报错vOwTKUb
By4-}_T+A
2#sv-v6oH
declare@sNvarchar(1000)--注意此处改为nvarchar(1000)"A^!
?
UOE
set@s='select'+@fname+'fromtableName'(/Hv6n3Z&
Exec(@s)--成功ix9Hh{
execsp_executesql@s--此句正确]7UXt*w
LBf0at0
3、输出参数"kz/7E\/A
%+>n declare@numint,-]n;kS1S @sqlsnvarchar(4000)EIA]sr set@sqls='selectcount(*)fromtableName'qhC5@Do exec(@sqls)A;vBkAD --如何将exec执行结果放入变量中? f$9`I=j"> ~p.M^M`7E declare@numint,3^={\CUh @sqlsnvarchar(4000)cI) set@sqls='select@a=count(*)fromtableName'2c],: zB;% execsp_executesql@sqls,N'@aintoutput',@numoutput*JAz^&/ select@numj3SSiM Ft*Ow%Djzm 此外,如果想要在SQL语句字符串中使用单引号''可以使用'''' --语句功能 --数据操作 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--定义当前事务数据访问特征 --程序化SQL DECLARE--为查询设定游标 EXPLAN--为查询描述数据访问计划 OPEN--检索查询结果打开一个游标 FETCH--检索一行查询结果 CLOSE--关闭游标 PREPARE--为动态执行准备SQL语句 EXECUTE--动态地执行SQL语句 DESCRIBE--描述准备好的查询 ---局部变量 declare@idchar(10) --set@id='10010001' select@id='10010001' ---全局变量 ---必须以@@开头 --IFELSE declare@xint@yint@zint select@x=1@y=2@z=3 if@x>@y print'x>y'--打印字符串'x>y' elseif@y>@z print'y>z' elseprint'z>y' --CASE usepangu updateemployee sete_wage= case whenjob_level=’1’thene_wage*1.08 whenjob_level=’2’thene_wage*1.07 whenjob_level=’3’thene_wage*1.06 elsee_wage*1.05 end --WHILECONTINUEBREAK declare@xint@yint@cint select@x=1@y=1 while@x<3 begin print@x--打印变量x的值 while@y<3 begin select@c=100*@x+@y print@c--打印变量c的值 select@y=@y+1 end select@x=@x+1 select@y=1 end --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_nameoperatorvalue ex: (宿主) select*fromstock_informationwherestockid=str(nid) stockname='str_name' stocknamelike'%findthis%' stocknamelike'[a-zA-Z]%'---------([]指定值的范围) stocknamelike'[^F-M]%'---------(^排除指定范围) ---------只能在使用like关键字的where子句中使用通配符) orstockpath='stock_path' orstocknumber<1000 andstockindex=24 notstock***='man' stocknumberbetween20and100 stocknumberin(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_name selectstockname,"stocknumber"=count(*)fromtable_namegroupbystockname ---------groupby将表按行分组,指定列中有相同的值 havingcount(*)=2---------having选定指定的组 select* fromtable1,table2 wheretable1.id*=table2.id--------左外部连接,table1中有的而table2中没有得以null表示 table1.id=*table2.id--------右外部连接 selectstocknamefromtable1 union[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=default Stockname=null Stocknumber=Stockname+4 ***delete*** deletefromtable_namewhereStockid=3 truncatetable_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--求和 --AVG usepangu selectavg(e_wage)asdept_avgWage fromemployee groupbydept_id --MAX --求工资最高的员工姓名 usepangu selecte_name fromemployee wheree_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.1415926535897936 RAND([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()( CONVERT()函数语法如下 CONVERT()( selectcast(100+99aschar)convert(varchar(12),getdate()) 运行结果如下 ------------------------------------------ 199Jan152000 ----日期函数---- DAY()--函数返回date_expression中的日期值 MONTH()--函数返回date_expression中的月份值 YEAR()--函数返回date_expression中的年份值 DATEADD( --函数返回指定日期date加上指定的额外日期间隔number产生的新日期 DATEDIFF( --函数返回两个指定日期在datepart方面的不同之处 DATENAME( DATEPART( GETDATE()--函数以DATETIME的缺省格式返回系统当前的日期和时间 ----系统函数---- APP_NAME()--函数返回当前执行的应用程序的名称 COALESCE()--函数返回众多表达式中第一个非NULL表达式的值 COL_LENGTH(<'table_name'>,<'column_name'>)--函数返回表中指定字段的长度值 COL_NAME( DATALENGTH()--函数返回数据表达式的数据的实际长度 DB_ID(['database_name'])--函数返回数据库的编号 DB_NAME(database_id)--函数返回数据库的名称 HOST_ID()--函数返回服务器端计算机的名称 HOST_NAME()--函数返回服务器端计算机的名称 IDENTITY( --IDENTITY()函数只在SELECTINTO语句中使用用于插入一个identitycolumn列到新表中 /*selectidentity(int,1,1)ascolumn_name intonewtable fromoldtable*/ ISDATE()--函数判断所给定的表达式是否为合理日期 ISNULL( ISNUMERIC()--函数判断所给定的表达式是否为合理的数值 NEWID()--函数返回一个UNIQUEIDENTIFIER类型的数值 NULLIF( --NULLIF函数在expression1与expression2相等时返回NULL值若不相等时则返回expression1的值 sql中的保留字 actionaddaggregateall
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sql 命令 常用 语句 大全