因為工作需要,所以對資料庫的操作都要用sql語句,所以我會陸續把一些常用的sql語句總結下來,方便以後使用,正好也複習一下基礎知識
1. 增,刪,改欄位
增加字段
alter table 表名 add 欄位名 字段型別 是否可為空
示例: alter table student add sid int not null
更新字段
alter table 表名 alter column 欄位名 字段型別 是否為空
示例: alter table student alter column sid varchar(20) null
刪除字段
alter table 表名 drop column 欄位名
示例: alter table student drop column sid
2. 判斷是否有某個表或儲存過程或字段,然後刪除之
表:if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[表名]') and objectproperty(id, n'isusertable') = 1)
drop table [dbo].[表名]
儲存過程:
if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[儲存過程名]') and objectproperty(id, n'isprocedure') = 1)
drop procedure [dbo].[儲存過程名]
字段:if exists(select * from syscolumns where id=object_id('表名') and name='欄位名')
alter table 表名 drop column 欄位名
3. 多條件語句,類似swich語句
示例:declare @sumdays [int]
declare @grade [int]
select @grade =
case
when @sumdays=40 then 1
when @sumdays>40 then 2
end4. 備份還原語句
下面倆個例子,分別說明了備份和還原
備份:backup database [qpshopdb] to disk = n'd:\資料庫備份\100209\qpshopdb.bak' with noformat, noinit, name = n'qpshopdb-完整 資料庫 備份', skip, norewind, nounload, stats = 10
還原:restore database [news] from disk = n'd:\資料庫備份\100209\qpshopdb.bak' with file = 1, nounload, stats = 10
,replace,move 'test' to 'd:\database\test.mdf',move 'test_log' to 'd:\database\test.ldf'
5. 給表建立索引
如下:給errreport表的version列建立version_indexf索引:
create nonclustered index [version_index] on [dbo].[errreport] ([version] asc )
如果是聚集索引將nonclustered改成clustered即可
6. sql建立資料夾--通過呼叫doc來建立,這個命令涉及到安全問題,用完一定要關閉
exec sp_configure 'show advanced options', 1
goreconfigure
goexec sp_configure 'xp_cmdshell', 1 --開啟cmdshell
reconfigure
goset @path = 'mkdir d:\資料庫備份\'+@datetime
exec xp_cmdshell @path,no_output
exec sp_configure 'xp_cmdshell',0 --關閉cmdshell
7. 遇到 關於sql server **(已禁用**xp)
打上下面幾段sql搞定
sp_configure 'show advanced options', 1;
go
reconfigure with override; --加上with override
go
sp_configure 'agent xps', 1;
go
reconfigure with override --加上with override
go8. 掛起操作
在安裝sql或sp補丁的時候系統提示之前有掛起的安裝操作,要求重啟,這裡往往重啟無用,解決辦法:
到hkey_local_machine\system\currentcontrolset\control\session manager
刪除pendingfilerenameoperations
9. 收縮資料庫
--重建索引
dbcc reindex
dbcc indexdefrag
--收縮資料和日誌
dbcc shrinkdb
dbcc shrinkfile
10. 壓縮資料庫
dbcc shrinkdatabase(dbname)
11. 轉移資料庫給新使用者以已存在使用者許可權
exec sp_change_users_login 'update_one','newname','oldname'
go12. 檢查備份集
restore verifyonly from disk='e:\dvbbs.bak'
13. 修復資料庫
alter database [dvbbs] set single_user
go dbcc checkdb('dvbbs',repair_allow_data_loss) with tablock
go alter database [dvbbs] set multi_user
go14. 查詢最大連線數
1、獲取sql server允許同時使用者連線的最大數
select @@max_connections
2、獲取當前指定資料庫的連線資訊
select * from master.dbo.sysprocesses where dbid in ( select dbid from master.dbo.sysdatabases where name='yourdatabasename')--根據需要更改yourdatabasename
select * from master.dbo.sysprocesses where db_name(dbid) = 'yourdatabasename'
3、獲取當前sql伺服器所有的連線詳細資訊
select * from sysprocesses
以上查詢結果包含了:系統程序和使用者程序。
如果只是想查使用者程序的話則需採用下面的方法
4、獲取自上次啟動sql server服務 以來連線或試圖連線的次數
select @@connections
這個剛開始會有點誤解,認為是當前sql server伺服器當前所有的sql server連線數。需要重點注意。
15.設定資料庫為多使用者模式或單使用者模式
alterdatabase [dbname] set single_user
alterdatabase [dbname] set multi_user
16.獲取當前時間的小時或分鐘或秒鐘部分
datepart(datepart,date)datepart縮寫年
yy, yyyy
季度qq, q
月mm, m
年中的日
dy, y
日dd, d
周wk, ww
星期dw, w
小時hh
分鐘mi, n
秒ss, s
毫秒ms
微妙mcs
納秒ns
Sql常用語句總結
sql對大小寫不敏感,分為資料操作語言 dml 和資料定義語言 ddl sql 使用單引號來環繞 文字值 大部分資料庫系統也接受雙引號 如果是 數值,請不要使用引號 select 從資料庫表中獲取資料 update 更新資料庫表中的資料 delete 從資料庫表中刪除資料 insert into 向...
SQL常用語句總結
要點 1.語法 4.索引 2.表 建立表,針對表的增刪改查。5.儲存過程 3.資料 增刪改查。6.觸發器及鎖.一 sql語言 1.主要操作語句 1.對資料庫操作 show use alert 2.對錶的操作 show desc drop alter 3.對資料的操作 insert delete up...
sql常用語句
use myoa select from delete from department where departmentid 1 insert department departmentid,departmentname values 1,技術部 update department set depa...