sql
[%repeat_0 match="/data/option"%] [%=@title%][img]about:blank[/img][%=@count%]票 [[%=@percent%]%][%_repeat_0%]
--------------創建一個數據庫 -----------
create database 庫名
on primary ---主要數據文件
(
name=庫名_data,---主要數據文件邏輯文件名,可任意命名,與日誌文件邏輯文件名不能相同
filename="盤符:/路徑/庫名.mdf",---主要數據文件物理文件名
size=1mb,----最小空間
maxsize=5mb,----最大空間
filegrowth=10%----增漲率
)
log on --日誌文件
(
name=庫名_log,--日誌文件邏輯文件名,可任意命名,與主要數據文件邏輯文件名不能相同
filename="盤符:/路徑/庫名.ldf",--日誌文件物理文件名
size=1mb,----最小空間
maxsize=5mb,----最大空間
filegrowth=10%----增漲率
)
--------------維護數據庫的結構-------------
----修改大小
ALTER DATABASE 庫名 MODIFY FILE ( NAME = "主要數據文件名或日誌文件名", SIZE = 新空間大小MB)
----添加次要數據文件
ALTER DATABASE Sample
ADD FILE
(NAME = 次要數據文件名,
FILENAME="盤符:/路徑/庫名.ndf",
SIZE=空間大小MB,
MAXSIZE=最大空間大小MB)
--------------刪除數據庫-------------
drop database 庫名1,庫名2,……庫名n
--------------創建一個數據表-------------------
CREATE TABLE 表名
(
列名1 類型1 約束,
列名2 類型2 約束,
………………
列名n 類型n 約束
)
----創建表時直接創建各種約束
CREATE TABLE 表名
(
列名1 類型1 primary key(列名1,列名2,……列名n),---主鍵約束
列名2 類型2 unique,---唯一約束
列名3 類型3 identity(初始值,增量),---標識列約束
列名4 類型4 default 默認值[注意:字符和日期要用單引號]---默認值約束
列名5 類型5 check(列名及常量及運算符組成的表達式)---檢查約束
………………
列名n 類型n,foreign key(列名1,列名2,……列名n) references 主鍵所在表名(列名a1,列名a2,……列名n)
)
-------------刪除數據表--------------
drop table 表名1,表名2,……表名n
-------------維護數據表的結構(表創建以後,對錶添加或者修改約束)-----------------
-----修改列
alter table 表名 alter column 列名 新類型(長度)
-----添加列
alter table 表名 add 列名 類型(長度)
-----刪除列
alter table 表名 drop column 列名
-----添加主鍵約束
alter table 表名 add constraint 主鍵約束名 primary key(列名1,列名2,……列名n)
-----刪除主鍵約束
alter table 表名 drop constraint 主鍵約束名
-----添加唯一約束
alter table 表名 add constraint 唯一約束名 unique(列名)
-----刪除唯一約束
alter table 表名 drop constraint 唯一約束名
-----添加外鍵約束
alter table 表名 add constraint 外鍵約束名 foreign key(列名1,列名2,……列名n) references 主鍵所在的表名(列名A1,列名A2,……列名An)
-----刪除主鍵約束
alter table 表名 drop constraint 外鍵約束名
-----添加默認約束
alter table 表名 add constraint 默認約束名 default 默認值 for 列名
-----刪除默認約束
alter table 表名 drop constraint 默認約束名
-----添加檢查約束
alter table 表名 add constraint 檢查約束名 check(列名及常量及運算符組成的表達式)
-----刪除檢查約束
alter table 表名 drop constraint 檢查約束名
-------------------維護表的數據-------------------
-----插入數據
insert [into] 表名 values(列值1,列值2,……列值n)
insert [into] 表名1(列名1,列名2,……列名n) select (列名a1,列名a2,……列名an) from 表名
-----查詢數據
select * from 表名---顯示所有記錄的所有列
select 列名1,列名2,……列名n from 表名-----顯示所有記錄的某些列
select * from 表名 where 條件表達式 ---顯示滿足條件的所有記錄的所有列
select 列名1,列名2,……列名n from 表名 where 條件表達式 -----顯示滿足條件的所有記錄的某些列
select 別名1.列名1,……別名1.列名n,別名2.列名1,……別名2.列名n from 表名1 as 別名1 inner join 表名2 as 別名2 on 別名1.列名=別名2.列名 where 條件表達式 ---內聯接的等值聯接
select 別名1.列名1,……別名1.列名n,別名2.列名1,……別名2.列名n from 表名1 as 別名1 inner join 表名2 as 別名2 on 別名1.列名>別名2.列名 where 條件表達式 ---內聯接的不等值聯接
select 別名1.列名1,……別名1.列名n,別名2.列名1,……別名2.列名n from 表名1 as 別名1 left outer join 表名2 as 別名2 on 別名1.列名=別名2.列名 where 條件表達式---內聯接的左外聯接
select 別名1.列名1,……別名1.列名n,別名2.列名1,……別名2.列名n from 表名1 as 別名1 right outer join 表名2 as 別名2 on 別名1.列名=別名2.列名 where 條件表達式---內聯接的右外聯接
select 別名1.列名1,……別名1.列名n,別名2.列名1,……別名2.列名n from 表名1 as 別名1 full outer join 表名2 as 別名2 on 別名1.列名=別名2.列名 where 條件表達式---內聯接的完全外聯接
select 列名1,列名2,……列名n from 表名 where 條件表達式 order by 列名---按某列排序[ASC爲升序,DESC爲降序。對於聯接查詢的排序只需將上述語法後加上order by子句即可]
select 列名1+"符號常量"+列名2+"符號常量"+……列名n from 表名 where 條件表達式 -----使用特殊符號顯示滿足條件的所有記錄的某些列
select 列名1 as 新列名1,列名2 as 新列名2,……列名n as 新列名n from 表名 where 條件表達式 -----使用as子句顯示滿足條件的所有記錄的某些列
select identity(類型,初值,增量) as 新列名 into 新創建的表名 from 已有的表名----使用identity從一箇舊表創建一個新表,且只有一個標識列
select identity(類型,初值,增量) into 新創建的表名 from 已有的表名----使用identity從一箇舊表創建一個新表,且只有一個標識列[當新表中只有一個標識列時可不用as]
select 新列名=identity(類型,初值,增量) into 新創建的表名 from 已有的表名----使用identity從一箇舊表創建一個新表,且只有一個標識列
select identity(類型,初值,增量) as 新列名1,舊錶的列名1 as 新表的列名2,…… 舊錶的列名n as 新表的列名n into 新創建的表名 from 已有的表名----使用identity從一箇舊表創建一個
新表,且有一個標識列和其它列[當新表中有很多列時必用as]
select top n * from 表名 where 條件表達式---顯示前n行記錄
select top n percent * from 表名 where 條件表達式---顯示前n%行記錄
select 列名1,列名2,……列名n from 表名 group by 列名1,列名2,……列名n
select 列名,聚合函數[sum(列名)或avg(列名)或count(列名)或max(列名)或min(列名)] from 表名 group by 列名 ----使用聚合函數分組查詢[注意sum和avg只用於數字型的列,count用於數字型和字符型的列,max和min用於數字、字符和日期型的列,sum、avg和count支持distinct]
select 列名1,列名2,……列名n from 表名 group by 列名1,列名2,……列名n having 條件表達式----使用having子句查詢[注意where、group和having的順序不能顛倒]
select * from 表名 where 通配符條件表達式
--- 列名 like "_A%"
--- 列名 not like "_A%"
--- 列名 in(值1,值2,……值n)
--- 列名 not in(值1,值2,……值n)
--- 列名 between 值1 and 值2
--- 列名 not between 值1 and 值2
--- 列名 is null
--- 列名 is not null
-----更新數據
update 表名 set 列名1=值1,列名2=值2,……列名n=值n where 條件表達式----更新滿足條件的記錄的某些列值
update 表名 set 列名1=值1,列名2=值2,……列名n=值n from 表名1 as 別名1 inner join 表名2 as 別名2 on 別名1.列名=別名2.列名 where 條件表達式 ---內聯接的等值聯接更新
update 表名 set 列名1=值1,列名2=值2,……列名n=值n from 表名1 as 別名1 inner join 表名2 as 別名2 on 別名1.列名>別名2.列名 where 條件表達式 ---內聯接的不等值聯接更新
update 表名 set 列名1=值1,列名2=值2,……列名n=值n from 表名1 as 別名1 left outer join 表名2 as 別名2 on 別名1.列名=別名2.列名 where 條件表達式---內聯接的左外聯接更新
update 表名 set 列名1=值1,列名2=值2,……列名n=值n from 表名1 as 別名1 right outer join 表名2 as 別名2 on 別名1.列名=別名2.列名 where 條件表達式---內聯接的右外聯接更新
update 表名 set 列名1=值1,列名2=值2,……列名n=值n from 表名1 as 別名1 full outer join 表名2 as 別名2 on 別名1.列名=別名2.列名 where 條件表達式---內聯接的完全外聯接更新
-----刪除數據
delete from 表名 where 條件表達式-----刪除滿足條件的記錄
truncate table 表名-----刪除所有的記錄,只保留表的結構