數據庫基本SQL語句大全_第1頁
數據庫基本SQL語句大全_第2頁
數據庫基本SQL語句大全_第3頁
數據庫基本SQL語句大全_第4頁
數據庫基本SQL語句大全_第5頁
免費預覽已結束,剩余7頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數據庫基本SQL語句大全學會數據庫是很實用D記錄一些常用的sql語句有入門有提高有見都沒見過的好全收藏下其實一般用的就是查詢,插入,刪除等語句而已.但學學存儲過程是好事以后數據方面的東西就不用在程序里搞嘍.而且程序與數據庫只要一個來回通訊就可以搞定所有數據的操作一、基礎1、說明:創建數據庫Create DATABASE database-name2、說明:刪除數據庫 drop database dbn ame3、說明:備份sql server -創建 備份數據的device testBackUSE masterEXEC sp_addumpdevice disk c:MyNwind_1.dat-

2、開始備份BACKU P DATABASE pubs TO testBack4、說明:創建新表 create table tab name(col1 type1 not n ull p rimary key,col2 type2 not null,.)根據已有的表創建新表:A: create table tab_new like tab_old 使用舊表創建新表)- from tab_old defi niti on onlyB: create table tab_new as select col1,col25、說明:刪除新表 drop table tab name6、說明:增加一個列Alte

3、r table tab name add colu mn col type注:列增加后將不能刪除。DB2中列加上后數據類型也不能改變,唯一能改變的是增加varchar類型的長度。7、說明:添加主鍵:Alter table tab name add p rimary key(col)說明:刪除主鍵: Alter table tab name drop p rimary key(col)8、說明:倉 J建索弓丨:create uniq ue in dex idx name on tab name(col.)刪除索引: drop in dex idx name注:索引是不可更改的,想更改必須刪除重新

4、建。9、說明:創建視圖:create view view name as select stateme nt刪除視圖: drop view view name10、說明:幾個簡單的基本的sql語句選擇:select * from tablel where 范圍插入:in sert into table1(field1,field2) values(value1,value2)刪除:delete from table1 where 范圍更新:up date table1 set field1=value1 where 范圍查找:select * from tablel where fieldi

5、like'%vkee的語法很精妙,查資料!排序:select * from tablei order by field1,field2 desc總數:select count as totalco unt from tablei求和:select sum(fieldi) as sumvalue from tablei平均:select avg(fieldi) as avgvalue from tablei最大:select max(fieldi) as maxvalue from tablei最小:select min(field1) as minvalue from table111

6、、說明:幾個高級查詢運算詞A: UNION運算符UNION運算符通過組合其他兩個結果表 (例如TABLE1和TABLE2 )并消去表中任何重復行而派生出一個結果表。當ALL隨UNION 一起使用時(即UNION ALL ),不消除重復行。兩種情況下,派生表的每一行不是來自 TABLE1就是來自TABLE2。B: EXCEPT運算符EXCEPT運算符通過包括所有在 TABLE1中但不在TABLE2中的行并消除所有重復行而派生出一個結果表。當ALL 隨 EXCEPT 起使消除所有重復行而派生出一個結果表。當ALL 隨 INTERSECT 一起用時(EXCEPT ALL),不消除重復行。C: INT

7、ERSECT 運算符和TABLE2中都有的行并INTERSECT 運算符通過只包括 TABLE1使用時(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.B: right outer jo in:右外連接(右連接):結果集既包括連接表的匹配連接行,也包括右連接表的所有行。C: f

8、ull outer jo in :全外連接:不僅包括符號連接表的匹配行,還包括兩個連接表中的所有記錄。二、提升1、說明:復制表(只復制結構,源表名:a新表名:b) (Access可用)法一:select * into b from a where 1<>1法二:select top 0 * into b from a2、 說明:拷貝表(拷貝數據 源表名:a目標表名:b) (Access可用)in sert into b(a, b, c) select d,e,f from b;3、說明:跨數據庫之間表的拷貝(具體數據使用絕對路徑)(Access可用)insert into b(a,

9、 b, c) select d,e,f from b in 具體數據庫 ' whre 條件例子:.from b in "&Server.Ma pP ath(".d&"a.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.user name,b

10、.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b6、說明:外連接查詢(表名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.c7、說明:在線視圖查詢(表名1: aselect * from (Select a,b,c FROM a) T where t.a > 1;&說明:between的用法between限制查詢數據范圍時包括了邊界值,n

11、otbetwee n不包括 select * from tablel where time betwee n timel and time2 select a,b,c, from tablel where a not between數值 1 and 數值 29、說明:in的使用方法 select * from tablel where a not in (值 1'值 2'值'4'值 6')10、說明:兩張關聯表,刪除主表中已經在副表中沒有的信息delete from table1 where not exists ( select * from tabl

12、e2 where table1.field1=table2.field111、說明:四表聯查問題: 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( minu開始時間,getdate()>513、說明:一條sql語句搞定數據庫分頁 select top 10 b.* from (select top 20 主鍵字段,

13、排序字段 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 table name ta where a=(select max(a) from table name tb where tb.b=ta.b)16、說明:包括所有在 Ta

14、bleA中但不在TableB和TableC中的行并消除所有重復行而派生出一個結果表(select a from tableA exce pt (select a from tableB) exce pt (select a from tableC)仃、說明:隨機取出10條數據select top 10 * from table name order by n ewid()18、說明:隨機選擇記錄 select n ewid()19、說明:刪除重復記錄Delete from table name where id not in (select max(id) from table name gr

15、oup by col1,col2,.)20、說明:列出數據庫里所有的表名 select n ame fromsysobjects where type二21、說明:列出表里的所有的select name from syscolumns where id=object_id( TableName ')22、說明:列示type、vender、pcs字段,以type字段排列,case可以方便地實現多重選擇,類似 select中的caseselect type,sum(case vender when A then pcs else 0 end),sum(case venderwhen C &

16、lt; then pcs else 0 end),sum(case vender when B ' then pcs else 0FROM table name group by typ顯示結果:type ven der pcs電腦電腦光盤光盤手機手機C 3 23、說明:初始化表tablelTRUNCATE TABLE tablel24、說明:選擇從10到15的記錄 select top 5 * from (select top 15 * from table order by id asc) table名 order by id desc三、技巧1、1=1, 1=2的使用,在SQL語

17、句組合時用的較多“where 1=1是表示選擇全部“ where 1=2全部不選,如:if strWhere != |beginset strSQL 二 select count(*) as Total from strWhereendelse_beginset strSQL = select coun t(*) as Total from end我們可以直接寫成+ tblName+ whe+ tblName +'+ tblName+ wheset strSQL = select count(*) as Total from 安定 + strWhere2、收縮數據庫"重建索引

18、DBCC REINDEXDBCC INDEXDEFRAG-收縮數據和日志DBCC SHRINKDB _ DBCC SHRINKFILE3、壓縮數據庫dbcc shri nkdatabase(db name)4、轉移數據庫給新用戶以已存在用戶權限 up date_o ne , newname,, old name exec sp_cha nge_users_log in go|5、檢查備份集RESTORE VERIFYONLY from disk= Edvbbs.bak6、修復數據庫Alter DATABASE dvbbs SET SINGLE_USERGODBCC CHECKDBC dvbbs

19、 ,repair allow.dataloss) WITFTABLOCKGOAlter DATABASE dvbbs SET MULTI USERGO7、日志清除SET NOCOUNT ONDECLARE LogicalFileName sys name, MaxMi nu tes INT,NewSize INTUSE table name -要操作的數據庫名Select LogicalFileName = table name_l日gfe 文件名MaxMi nu tes = 10, - Limit on time allowed to wrap log. NewSize = 1 -你想設定的

20、日志文件的大小(M) -Setup / i nitializeDECLARE Origi nalSize in£Select Origi nalSize = sizeFROM sysfilesWhere n ame = LogicalFileNameSelect Original Size of + db_name() + LOG is +CONVERT(VARCHAR(30),Origi nalSize)" + 8K pages o匚 +CONVERT(VARCHAR(30),(OriginalSize*8/1024) +MB FROM sysfilesWhere n a

21、me = LogicalFileNameCreate TABLE DummyTrans(DummyColu mn char (8000) n ot null)DECLARE Co un ter INT,StartTime DATETIME,Tru ncLog VARCHAR(255)Select StartTime = GETDATE(),WITHTruncLog = BACKUP LOG + db_name() +TRUNCATE_ONLY DBCC SHRINKFILE (LogicalFileName, NewSize)EXEC (Tru ncLog)-Wrap the log if n

22、ecessary.WHILE MaxMi nutes > DATEDIFF (mi, StartTime, GETDATEQ)- time has not expireAND Origi nalSize = (Select size FROM sysfiles Where name = LogicalFileName)AND (Origi nalSize * 8 /1024) > NewSizeBEGIN - Outer loo p.Select Cou nter = 0WHILE (Co unter < Origi nalSize / 16) AND (Cou nter &

23、lt; 50000) BEGIN - up dateInsert DummyTrans VALU ES ( Fill Log )Delete DummyTransSelect Cou nter = Cou nter + 1ENDEXEC (Tru ncLog)ENDLOG is + +MB Select Final Size of + db_name() + CONVERT(VARCHAR(30),size) + 8K p ages orC0NVERT(VARCHAR(30),(size*8/1024) +FROM sysfilesi_Where n ame = LogicalFileNameDrop TABLE DummyTranSET NOCOUNT OFF&說明:更改某個表exec sp_cha ngeobjectow ner9、存儲更

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論