天天看點

資料庫---經典SQL語句大全

一、基礎

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

最小:select 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/cross (outer) join: 

全外連接配接:不僅包括符号連接配接表的比對行,還包括兩個連接配接表中的所有記錄。

12、分組:Group by:

  一張表,一旦分組 完成後,查詢後隻能得到組相關的資訊。

組相關的資訊:(統計資訊) count,sum,max,min,avg 分組的标準)

在SQLServer中分組時:不能以text,ntext,image類型的字段作為分組依據

在selecte統計函數中的字段,不能和普通的字段放在一起;

13、對資料庫進行操作:

分離資料庫: sp_detach_db; 附加資料庫:sp_attach_db 後接表明,附加需要完整的路徑名

14.如何修改資料庫的名稱:

sp_renamedb 'old_name', 'new_name'