sqlserver的常用語法


  
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 表名-----刪除所有的記錄,只保留表的結構







發佈了43 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章