亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

一些有用的sql語句整理 推薦收藏

2024-08-31 00:58:22
字體:
來源:轉載
供稿:網友
1、說明:創建數據庫
CREATE DATABASE database-name
2、說明:刪除數據庫
drop database dbname
3、說明:備份sql server
--- 創建 備份數據的 device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat'
--- 開始 備份
BACKUP DATABASE pubs TO testBack
4、說明:創建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根據已有的表創建新表:
A:create table tab_new like tab_old (使用舊表創建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、說明:刪除新表drop table tabname
6、說明:增加一個列
Alter table tabname add column col type
注:列增加后將不能刪除。DB2中列加上后數據類型也不能改變,唯一能改變的是增加varchar類型的長度。
7、說明:添加主鍵: Alter table tabname add primary key(col)
說明:刪除主鍵: Alter table tabname drop primary key(col)
8、說明:創建索引:create [unique] index idxname on tabname(col….)
刪除索引:drop index idxname
注:索引是不可更改的,想更改必須刪除重新建。
9、說明:創建視圖:create view viewname as select statement
刪除視圖:drop view viewname
10、說明:幾個簡單的基本的sql語句
選擇:select * from table1 where 范圍
插入:insert into table1(field1,field2) values(value1,value2)
刪除:delete from table1 where 范圍
更新:update table1 set field1=value1 where 范圍
查找:select * from table1 where field1 like '%value1%' ---like的語法很精妙,查資料!
排序:select * from table1 order by field1,field2 [desc]
總數:select count * as totalcount from table1
求和:select sum(field1) as sumvalue from table1
平均:select avg(field1) as avgvalue from table1
最大:select max(field1) as maxvalue from table1
最?。簊elect min(field1) as minvalue from table1
11、說明:幾個高級查詢運算詞
A: UNION 運算符
UNION 運算符通過組合其他兩個結果表(例如 TABLE1 和 TABLE2)并消去表中任何重復行而派生出一個結果表。當 ALL 隨 UNION 一起使用時(即 UNION ALL),不消除重復行。兩種情況下,派生表的每一行不是來自 TABLE1 就是來自 TABLE2。
B: EXCEPT 運算符
EXCEPT 運算符通過包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重復行而派生出一個結果表。當 ALL 隨 EXCEPT 一起使用時 (EXCEPT ALL),不消除重復行。
C: INTERSECT 運算符
INTERSECT 運算符通過只包括 TABLE1 和 TABLE2 中都有的行并消除所有重復行而派生出一個結果表。當 ALL 隨 INTERSECT 一起使用時 (INTERSECT ALL),不消除重復行。
注:使用運算詞的幾個查詢結果行必須是一致的。
12、說明:使用外連接
A、left outer join:
左外連接(左連接):結果集幾包括連接表的匹配行,也包括左連接表的所有行。
SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
B:right outer join:
右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。
C:full outer join:
全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。
其次,大家來看一些不錯的sql語句
1、說明:復制表(只復制結構,源表名:a 新表名:b) (Access可用)
法一:select * into b from a where 1<>1
法二:select top 0 * into b from a
2、說明:拷貝表(拷貝數據,源表名:a 目標表名:b) (Access可用)
insert into b(a, b, c) select d,e,f from b;
3、說明:跨數據庫之間表的拷貝(具體數據使用絕對路徑) (Access可用)
insert into b(a, b, c) select d,e,f from b in ‘具體數據庫' where 條件
例子:..from b in '"&Server.MapPath(".")&"/data.mdb" &"' where..
4、說明:子查詢(表名1:a 表名2:b)
select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)
5、說明:顯示文章、提交人和最后回復時間
select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
6、說明:外連接查詢(表名1:a 表名2:b)
select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
7、說明:在線視圖查詢(表名1:a )
select * from (SELECT a,b,c FROM a) T where t.a > 1;
8、說明:between的用法,between限制查詢數據范圍時包括了邊界值,not between不包括
select * from table1 where time between time1 and time2
select a,b,c, from table1 where a not between 數值1 and 數值2
9、說明:in 的使用方法
select * from table1 where a [not] in (‘值1','值2','值4','值6')
10、說明:兩張關聯表,刪除主表中已經在副表中沒有的信息
delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )
11、說明:四表聯查問題:
select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....
12、說明:日程安排提前五分鐘提醒
SQL: select * from 日程安排 where datediff('minute',f開始時間,getdate())>5
13、說明:一條sql 語句搞定數據庫分頁
select top 10 b.* from (select top 20 主鍵字段,排序字段 from 表名 order by 排序字段 desc) a,表名 b where b.主鍵字段 = a.主鍵字段 order by a.排序字段
14、說明:前10條記錄
select top 10 * form table1 where 范圍
15、說明:選擇在每一組b值相同的數據中對應的a最大的記錄的所有信息(類似這樣的用法可以用于論壇每月排行榜,每月熱銷產品分析,按科目成績排名,等等.)
select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
16、說明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重復行而派生出一個結果表
(select a from tableA ) except (select a from tableB) except (select a from tableC)
17、說明:隨機取出10條數據
select top 10 * from tablename order by newid()
18、說明:隨機選擇記錄
select newid()
19、說明:刪除重復記錄
Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
20、說明:列出數據庫里所有的表名
select name from sysobjects where type='U'
21、說明:列出表里的所有的
select name from syscolumns where id=object_id('TableName')
22、說明:列示type、vender、pcs字段,以type字段排列,case可以方便地實現多重選擇,類似select 中的case。
select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type
顯示結果:
type vender pcs
電腦 A 1
電腦 A 1
光盤 B 2
光盤 A 2
手機 B 3
手機 C 3
23、說明:初始化表table1
TRUNCATE TABLE table1
24、說明:選擇從10到15的記錄
select top 5 * from (select top 15 * from table order by id asc) table_別名 order by id desc

ext:
1. 查看數據庫的版本
select @@version
常見的幾種SQL SERVER打補丁后的版本號:
8.00.194 Microsoft SQL Server 2000
8.00.384 Microsoft SQL Server 2000 SP1
8.00.532 Microsoft SQL Server 2000 SP2
8.00.760 Microsoft SQL Server 2000 SP3
8.00.818 Microsoft SQL Server 2000 SP3 w/ Cumulative Patch MS03-031
8.00.2039 Microsoft SQL Server 2000 SP4
2. 查看數據庫所在機器操作系統參數
exec master..xp_msver
3. 查看數據庫啟動的參數
sp_configure
4. 查看數據庫啟動時間
select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1
查看數據庫服務器名和實例名
print 'Server Name...............: ' + convert(varchar(30),@@SERVERNAME)
print 'Instance..................: ' + convert(varchar(30),@@SERVICENAME)
5. 查看所有數據庫名稱及大小
sp_helpdb
重命名數據庫用的SQL
sp_renamedb 'old_dbname', 'new_dbname'
6. 查看所有數據庫用戶登錄信息
sp_helplogins
查看所有數據庫用戶所屬的角色信息
sp_helpsrvrolemember
修復遷移服務器時孤立用戶時,可以用的fix_orphan_user腳本或者LoneUser過程
更改某個數據對象的用戶屬主
sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner'
注意: 更改對象名的任一部分都可能破壞腳本和存儲過程。
把一臺服務器上的數據庫用戶登錄信息備份出來可以用add_login_to_aserver腳本
查看某數據庫下,對象級用戶權限
sp_helprotect
7. 查看鏈接服務器
sp_helplinkedsrvlogin
查看遠端數據庫用戶登錄信息
sp_helpremotelogin
8.查看某數據庫下某個數據對象的大小
sp_spaceused @objname
還可以用sp_toptables過程看最大的N(默認為50)個表
查看某數據庫下某個數據對象的索引信息
sp_helpindex @objname
還可以用SP_NChelpindex過程查看更詳細的索引情況
SP_NChelpindex @objname
clustered索引是把記錄按物理順序排列的,索引占的空間比較少。
對鍵值DML操作十分頻繁的表我建議用非clustered索引和約束,fillfactor參數都用默認值。
查看某數據庫下某個數據對象的的約束信息
sp_helpconstraint @objname
9.查看數據庫里所有的存儲過程和函數
use @database_name
sp_stored_procedures
查看存儲過程和函數的源代碼
sp_helptext '@procedure_name'
查看包含某個字符串@str的數據對象名稱
select distinct object_name(id) from syscomments where text like '%@str%'
創建加密的存儲過程或函數在AS前面加WITH ENCRYPTION參數
解密加密過的存儲過程和函數可以用sp_decrypt過程
10.查看數據庫里用戶和進程的信息
sp_who
查看SQL Server數據庫里的活動用戶和進程的信息
sp_who 'active'
查看SQL Server數據庫里的鎖的情況
sp_lock
進程號1--50是SQL Server系統內部用的,進程號大于50的才是用戶的連接進程.
spid是進程編號,dbid是數據庫編號,objid是數據對象編號
查看進程正在執行的SQL語句
dbcc inputbuffer ()
推薦大家用經過改進后的sp_who3過程可以直接看到進程運行的SQL語句
sp_who3
檢查死鎖用sp_who_lock過程
sp_who_lock
11.查看和收縮數據庫日志文件的方法
查看所有數據庫日志文件大小
dbcc sqlperf(logspace)
如果某些日志文件較大,收縮簡單恢復模式數據庫日志,收縮后@database_name_log的大小單位為M
backup log @database_name with no_log
dbcc shrinkfile (@database_name_log, 5)
12.分析SQL Server SQL 語句的方法:
set statistics time {on | off}
set statistics io {on | off}
圖形方式顯示查詢執行計劃
在查詢分析器->查詢->顯示估計的評估計劃(D)-Ctrl-L 或者點擊工具欄里的圖形
文本方式顯示查詢執行計劃
set showplan_all {on | off}
set showplan_text { on | off }
set statistics profile { on | off }

13.出現不一致錯誤時,NT事件查看器里出3624號錯誤,修復數據庫的方法
先注釋掉應用程序里引用的出現不一致性錯誤的表,然后在備份或其它機器上先恢復然后做修復操作
alter database [@error_database_name] set single_user
修復出現不一致錯誤的表
dbcc checktable('@error_table_name',repair_allow_data_loss)
或者可惜選擇修復出現不一致錯誤的小型數據庫名
dbcc checkdb('@error_database_name',repair_allow_data_loss)
alter database [@error_database_name] set multi_user
CHECKDB 有3個參數:
repair_allow_data_loss 包括對行和頁進行分配和取消分配以改正分配錯誤、結構行或頁的錯誤,
以及刪除已損壞的文本對象,這些修復可能會導致一些數據丟失。
修復操作可以在用戶事務下完成以允許用戶回滾所做的更改。
如果回滾修復,則數據庫仍會含有錯誤,應該從備份進行恢復。
如果由于所提供修復等級的緣故遺漏某個錯誤的修復,則將遺漏任何取決于該修復的修復。
修復完成后,請備份數據庫。
repair_fast 進行小的、不耗時的修復操作,如修復非聚集索引中的附加鍵。
這些修復可以很快完成,并且不會有丟失數據的危險。
repair_rebuild 執行由 repair_fast 完成的所有修復,包括需要較長時間的修復(如重建索引)。
執行這些修復時不會有丟失數據的危險。

sql語句實例
1 Examples
=======================================
select id,age,Fullname from tableOne a
where a.id!=(select max(id) from tableOne b where a.age=b.age and a.FullName=b.FullName)
=========================================
delete from dbo.Schedule where
RoomID=29 and StartTime>'2005-08-08' and EndTime<'2006-09-01' and Remark like 'preset' and UserID=107
and (
(ScheduleID>=3177 and ScheduleID<=3202 )
or (ScheduleID>=3229 and ScheduleID<=3254)
or (ScheduleID>=3307 and ScheduleID<=3332)
=========================================
delete tableOne
where tableOne.id!=(select max(id) from tableOne b where tableOne.age=b.age and tableOne.FullName=b.FullName);
==========================================
DataClient 12/23/2005 5:03:38 PM
select top 5
DOC_MAIN.CURRENT_VERSION_NO as Version, DOC_MAIN.MODIFY_DATE as ModifyDT, DOC_MAIN.SUMMARY as Summary, DOC_MAIN.AUTHOR_EMPLOYEE_NAME as AuthorName, DOC_MAIN.TITLE as Title, DOC_MAIN.DOCUMENT_ID as DocumentID, Attribute.ATTRIBUTE_ID as AttributeId, Attribute.CATALOG_ID as CatalogId, DOC_STATISTIC.VISITE_TIMES as VisiteTimes, DOC_STATISTIC.DOCUMENT_ID as DocumentID2
from DOC_MAIN DOC_MAIN
Inner join CATALOG_SELF_ATTRIBUTE Attribute on DOC_MAIN.CATALOG_ID=Attribute.CATALOG_ID
Left join DOC_STATISTIC DOC_STATISTIC on DOC_MAIN.DOCUMENT_ID=DOC_STATISTIC.DOCUMENT_ID
where (DOC_MAIN.AUTHOR_EMPLOYEE_ID = 1) and (Attribute.ATTRIBUTE_ID = 11)
order by VisiteTimes DESC
====================================
select top 1 DOCUMENT_ID,EMPLOYEE_NAME,COMMENT_DATE,COMMENT_VALUE
from dbo.DOC_COMMENT
where DOCUMENT_ID=19 and COMMENT_DATE = (select max(COMMENT_DATE) from DOC_COMMENT where DOCUMENT_ID=19)
====================================

select TITLE, (select top 1 EMPLOYEE_NAME
from dbo.DOC_COMMENT where DOCUMENT_ID=19) Commentman,
(select top 1 COMMENT_DATE
from dbo.DOC_COMMENT where DOCUMENT_ID=19) COMMENT_DATE
from DOC_MAIN where DOCUMENT_ID=19
======================================
alter view ExpertDocTopComment
as

select DOCUMENT_ID, max(ORDER_NUMBER ) as lastednum
from dbo.DOC_COMMENT
group by DOCUMENT_ID

go
alter view ExpertDocView
as
select TITLE , a.AUTHOR_EMPLOYEE_ID , c.EMPLOYEE_NAME , c.COMMENT_DATE
from dbo.DOC_MAIN a
left join
ExpertDocTopComment b

on
a.DOCUMENT_ID = b.DOCUMENT_ID

inner join
DOC_COMMENT c
on
b.DOCUMENT_ID = c.DOCUMENT_ID and
b.lastednum = c. ORDER_NUMBER
======================================
select a.Id ,a.WindowsUsername ,
0 , 1 ,
a.Email ,

case b.EnFirstName when null then a.Username else b.EnFirstName end,
case b.EnLastName when null then a.Username else b.EnLastName end
from UUMS_KM.dbo.UUMS_User a
left join
UUMS_KM.dbo.HR_Employee b
on
a. HR_EmployeeId = b.id
=====================================
列出上傳文檔最多的五個人的ID
select AUTHOR_EMPLOYEE_ID,count(AUTHOR_EMPLOYEE_ID)
from dbo.DOC_MAIN
group by AUTHOR_EMPLOYEE_ID
order by count(AUTHOR_EMPLOYEE_ID)
2719 2
6 9
12 30
1 116
列出上傳文檔最多的五個人的信息
select distinct AUTHOR_EMPLOYEE_ID ,AUTHOR_EMPLOYEE_NAME
from dbo.DOC_MAIN
where AUTHOR_EMPLOYEE_ID
in (
select top 5 AUTHOR_EMPLOYEE_ID
from dbo.DOC_MAIN
group by AUTHOR_EMPLOYEE_ID
order by count(AUTHOR_EMPLOYEE_ID)
)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品久久久久久久久久久久久久| 国产日韩欧美视频在线| 久久精品99无色码中文字幕| 国产91色在线|免| 精品成人国产在线观看男人呻吟| 亚洲国产日韩欧美在线动漫| 日本不卡高字幕在线2019| 日韩高清免费观看| 亚洲aa中文字幕| 91精品久久久久久久久久久久久| 成人精品在线视频| 日本高清视频一区| 亚洲va电影大全| 成人激情视频免费在线| 91av在线免费观看视频| 日韩电影免费观看在线观看| 日韩av免费网站| 欧美丝袜美女中出在线| 91产国在线观看动作片喷水| 精品一区电影国产| 国产亚洲欧美一区| 欧美午夜无遮挡| 亚洲欧美成人一区二区在线电影| 国产精品啪视频| 7m精品福利视频导航| 岛国视频午夜一区免费在线观看| 亚洲国产精久久久久久久| 国产精品一区二区久久久久| 国产精品免费视频久久久| 亚洲bt欧美bt日本bt| 欧美另类极品videosbest最新版本| 91社影院在线观看| 欧美成人免费在线观看| 中文字幕亚洲欧美在线| 精品久久久久久久久中文字幕| 精品国产一区二区三区久久久| 伊人久久大香线蕉av一区二区| 78m国产成人精品视频| 欧美激情亚洲一区| 国产97在线亚洲| 欧美疯狂性受xxxxx另类| 38少妇精品导航| 久久久在线观看| 亚洲无线码在线一区观看| 亚洲影院高清在线| 亚洲а∨天堂久久精品喷水| 久久99精品视频一区97| 亚洲国产精品网站| 国产欧美婷婷中文| 国产精品久久久久久久久久久久久久| 国产亚洲欧美日韩美女| 日韩暖暖在线视频| 精品国产乱码久久久久久天美| 92裸体在线视频网站| 亚洲欧美制服第一页| 亚洲精品白浆高清久久久久久| 2019中文字幕全在线观看| 日韩视频在线一区| 国产精品久久久久久搜索| 久久国产精品久久久久| 青青草国产精品一区二区| 精品视频在线播放色网色视频| 成人黄色免费看| 国产成人精品一区二区| 国产精品影片在线观看| 久久免费成人精品视频| 国产一区视频在线| 亚洲人精选亚洲人成在线| 欧美黑人极品猛少妇色xxxxx| 欧美精品成人91久久久久久久| 一区二区三区视频免费在线观看| 麻豆一区二区在线观看| 久久久综合免费视频| 国产欧美精品一区二区三区-老狼| 欧美激情亚洲精品| 国产91精品久久久久久久| 日韩精品在线视频美女| 欧美日韩在线看| 中文字幕日韩av| 久久久久久久国产精品视频| 中文字幕免费精品一区高清| 5566成人精品视频免费| 国产91成人在在线播放| 国产精品人成电影| 亚洲国产私拍精品国模在线观看| 黑人与娇小精品av专区| 久久精品国产91精品亚洲| 精品久久久久久久久久久久久久| 日韩在线小视频| 色一情一乱一区二区| 国内精品久久久久影院优| 日韩大片免费观看视频播放| 91精品在线一区| 日韩亚洲成人av在线| 91精品国产精品| 91爱爱小视频k| 国产成人鲁鲁免费视频a| 国产精自产拍久久久久久蜜| 国产亚洲精品激情久久| 亚洲一区中文字幕| 久久在线免费观看视频| 欧美日韩午夜激情| 精品国产依人香蕉在线精品| 性欧美xxxx视频在线观看| 成人观看高清在线观看免费| 久热精品视频在线免费观看| 成人网在线观看| 亚洲欧美精品中文字幕在线| 亚洲国产一区二区三区四区| 国内精品在线一区| 国产精品第二页| 日韩精品视频中文在线观看| 亚洲欧美制服综合另类| 久久成人国产精品| 91亚洲永久免费精品| 欧美性xxxx在线播放| 992tv成人免费视频| 亚洲精品久久久久| 欧美极品少妇与黑人| 国产精品网站视频| 国产精品久久久久福利| 黄色一区二区在线| 久久久久久久久91| 国产精品激情av在线播放| 日韩在线视频二区| 国内精久久久久久久久久人| 欧美性极品少妇精品网站| 日本亚洲欧美成人| 国产乱肥老妇国产一区二| 亚洲色图美腿丝袜| 欧美多人乱p欧美4p久久| 精品中文字幕乱| 国产精品久久久久av| 亚洲欧美日韩另类| 热99久久精品| 色黄久久久久久| 欧美在线一区二区三区四| 成人免费观看49www在线观看| 亚洲18私人小影院| 国产精品极品美女在线观看免费| 午夜精品美女自拍福到在线| 91啪国产在线| 在线看国产精品| 中文字幕亚洲一区在线观看| 国产剧情日韩欧美| 日韩亚洲一区二区| 亚洲欧美日韩国产中文专区| 欧美国产日韩一区二区在线观看| 欧美激情视频一区二区| 亚洲天堂网站在线观看视频| 青青草国产精品一区二区| 欧美激情国产高清| 亚洲精品中文字幕av| 日韩精品日韩在线观看| 日韩中文字幕亚洲| 久久国产一区二区三区| 欧美资源在线观看| 一个色综合导航| 欧美午夜精品久久久久久浪潮| 国产ts一区二区| 欧美激情免费视频| 日韩在线观看电影| 欧美怡春院一区二区三区| 欧美激情xxxx性bbbb|