sql语句大全_sql语句入门
sql即结构化查询语言(structuredquerylanguage),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。sql语句无论是种类还是数量都是繁多的,很多语句也是经常要用到的,sql查询语句就是一个典型的例子,无论是高级查询还是低级查询,sql查询语句的需求是最频繁的。那么sql语句大全有哪些呢?下面提供sql语句大全,希望对需要sql语句入门的网友有所帮助,学习一下!
基础
创建数据库
创建之前判断该数据库是否存在
ifexists(select*fromsysdatabaseswherename=databasename_data,--主数据文件的逻辑名称
filename=,--主数据文件的物理名称
size=数值mb,--主数据文件的初始大小
maxsize=数值mb,--主数据文件增长的最大值
filegrowth=数值%--主数据文件的增长率)
logon
(/*--日志文件的具体描述,各参数含义同上--*/
name=具体数据库where条件
例子:。.frombin值1,值2,值4,值6)
删除主表没有的信息
两张关联表deletefromtable1wherenotexists(select*fromtable2wheretable1.field1=table2.field1
四表联查问题
select*fromaleftinnerjoinbona.a=b.brightinnerjoincona.a=c.cinnerjoindona.a=d.dwhere.....
日程安排提前五分钟
sql:select*from日程安排wheredatediff(where1=1是表示选择全部where1=2全部不选,
如:
if@strwhere!=and+strwhere}
收缩数据库
--重建索引
dbccreindex
dbccindexdefrag
--收缩数据和日志
dbccshrinkdb
dbccshrinkfile
压缩数据库
dbccshrinkdatabase(dbname)
转移数据库给新用户以已存在用户权限
execsp_change_users_login'update_one','newname','oldname'
go
检查备份集
restoreverifyonlyfromdisk='e:\dvbbs.bak'
修复数据库
alterdatabase[dvbbs]setsingle_user
go
dbcccheckdb('dvbbs',repair_allow_data_loss)withtablock
go
alterdatabase[dvbbs]setmulti_user
go
日志清除
setnocounton
declare@logicalfilenamesysname,
@maxminutesint,
@newsizeint
usetablename--要操作的数据库名
select@logicalfilename='tablename_log',--日志文件名
@maxminutes=10,--limitontimeallowedtowraplog.
@newsize=1--你想设定的日志文件的大小(m)
--setup/initialize
declare@originalsizeint
select@originalsize=size
fromsysfiles
wherename=@logicalfilename
select'originalsizeof'+db_name()+'logis'+
convert(varchar(30),@originalsize)+'8kpagesor'+
convert(varchar(30),(@originalsize*8/1024))+'mb'
fromsysfiles
wherename=@logicalfilename
createtabledummytrans
(dummycolumnchar(8000)notnull)
declare@counterint,
@starttimedatetime,
@trunclogvarchar(255)
select@starttime=getdate(),
@trunclog='backuplog'+db_name()+'withtruncate_only'
dbccshrinkfile(@logicalfilename,@newsize)
exec(@trunclog)
--wrapthelogifnecessary.
while@maxminutes>datediff(mi,@starttime,getdate())--timehasnotexpired
and@originalsize=(selectsizefromsysfileswherename=@logicalfilename)
and(@originalsize*8/1024)>@newsize
begin--outerloop.
select@counter=0
while((@counter<@originalsize/16)and(@counter<50000))
begin--update
insertdummytransvalues('filllog')
deletedummytrans
select@counter=@counter+1
end
exec(@trunclog)
end
select'finalsizeof'+db_name()+'logis'+
convert(varchar(30),size)+'8kpagesor'+
convert(varchar(30),(size*8/1024))+'mb'
fromsysfiles
wherename=@logicalfilename
droptabledummytrans
setnocountoff
更改某个表
execsp_changeobjectowner'tablename','dbo'
存储更改全部表
createproceduredbo.user_changeobjectownerbatch
@oldownerasnvarchar(128),
@newownerasnvarchar(128)
as
declare@nameasnvarchar(128)
declare@ownerasnvarchar(128)
declare@ownernameasnvarchar(128)
declarecurobjectcursorfor
select'name'=name,
'owner'=user_name(uid)
fromsysobjects
whereuser_name(uid)=@oldowner
orderbyname
opencurobject
fetchnextfromcurobjectinto@name,@owner
while(@@fetch_status=0)
begin
if@owner=@oldowner
begin
set@ownername=@oldowner+'.'+rtrim(@name)
execsp_changeobjectowner@ownername,@newowner
end
--select@name,@newowner,@oldowner
fetchnextfromcurobjectinto@name,@owner
end
closecurobject
deallocatecurobject
go
循环写入数据
declare@iint
set@i=1
while@i<30
begin
insertintotest(userid)values(@i)
set@i=@i+1
有关sql语句大全的介绍就到这里,希望对大家都有所帮助!想要详细了解sql语句大全,可以继续关注sql语句入门的最新动态。