SQL Server SQL 经典语句

2022-11-12 09:52:18
内容摘要
这篇文章主要为大家详细介绍了SQL Server SQL 经典语句,具有一定的参考价值,可以用来参考一下。 对此感兴趣的朋友,看看idc笔记做的技术笔记! 代码如下: DROPTABLE数据表名称
文章正文

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

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

代码如下:


DROPTABLE数据表名称(永久性删除一个数据表) 

删除记录:deletefrom表名where条件(rqjs_id=***) 

更新所有记录:update表名set字段名=值 

按条件更新:update表名set字段名=值where条件(rqjs_id=***) 

(5)数据表的建立和删除: 
CREATETABLE数据表名称(字段1类型1(长度),字段2类型2(长度)……) 
例:CREATETABLEtab01(namevarchar(50),datetimedefaultnow()) 
DROPTABLE数据表名称(永久性删除一个数据表) 


--语句功能 
--数据操作 
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_nameoperator 
value 
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_informationwhere 
stockid=4) 
---------子查询 
---------除非能确保内层select只返回一个行的值, 
---------否则应在外层where子句中用一个in限定符 
selectdistinctcolumn_nameformtable_name--------- 
distinct指定检索独有的列值,不重复 
selectstocknumber,"stocknumber+10"=stocknumber+10from 
table_name 
selectstockname,"stocknumber"=count(*)fromtable_name 
groupbystockname 
---------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,Stocknumberfrom 
Stock_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,lname 
varchar(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()(<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_name 
intonewtable 
fromoldtable*/ 
ISDATE()--函数判断所给定的表达式是否为合理日期 
ISNULL(<check_expression>,<replacement_value>)--函数将表达式中的NULL 
值用指定值替换 
ISNUMERIC()--函数判断所给定的表达式是否为合理的数值 
NEWID()--函数返回一个UNIQUEIDENTIFIER类型的数值 
NULLIF(<expression1>,<expression2>) 
--NULLIF函数在expression1与expression2相等时返回NULL 
值若不相等时则返回expression1的值 

sql中的保留字 

actionaddaggregateall 
alterafterandas 
ascavgavg_row_lengthauto_increment 
betweenbigintbitbinary 
blobboolbothby 
cascadecasecharcharacter 
changecheckchecksumcolumn 
columnscommentconstraintcreate 
crosscurrent_datecurrent_timecurrent_timestamp 
datadatabasedatabasesdate 
datetimedayday_hourday_minute 
day_seconddayofmonthdayofweekdayofyear 
decdecimaldefaultdelayed 
delay_key_writedeletedescdescribe 
distinctdistinctrowdoubledrop 
endelseescapeescaped 
enclosedenumexplainexists 
fieldsfilefirstfloat 
float4float8flushforeign 
fromforfullfunction 
globalgrantgrantsgroup 
havingheaphigh_priorityhour 
hour_minutehour_secondhostsidentified 
ignoreinindexinfile 
innerinsertinsert_idint 
integerintervalint1int2 
int3int4int8into 
ifisisamjoin 
keykeyskilllast_insert_id 
leadingleftlengthlike 
lineslimitloadlocal 
locklogslonglongblob 
longtextlow_prioritymaxmax_rows 
matchmediumblobmediumtextmediumint 
middleintmin_rowsminuteminute_second 
modifymonthmonthnamemyisam 
naturalnumericnonot 
nullonoptimizeoption 
optionallyororderouter 
outfilepack_keyspartialpassword 
precisionprimaryprocedureprocess 
processlistprivilegesreadreal 
referencesreloadregexprename 
replacerestrictreturnsrevoke 
rlikerowrowssecond 
selectsetshowshutdown 
smallintsonamesql_big_tablessql_big_selects 
sql_low_priority_updatessql_log_offsql_log_update 
sql_select_limit 
sql_small_resultsql_big_resultsql_warningsstraight_join 
startingstatusstringtable 
tablestemporaryterminatedtext 
thentimetimestamptinyblob 
tinytexttinyinttrailingto 
typeuseusingunique 
unlockunsignedupdateusage 
valuesvarcharvariablesvarying 
varbinarywithwritewhen 
whereyearyear_monthzerofill 

注:关于SQL Server SQL 经典语句的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

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