1、
建立新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
例:
GO
CREATE TABLE [dbo].[t_Employee](
[FEmpID] [bigint] NOT NULL,
[FEmpNO] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
[FEmpName] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
[FEmpType] [smallint] NOT NULL,
[FCommissionRate] [numeric](28, 8) NULL DEFAULT ((0)),
[FDesc] [nvarchar](255) COLLATE Chinese_PRC_CI_AS NULL,
[FCOID] [varchar](40) COLLATE Chinese_PRC_CI_AS NOT NULL,
[FDeptID] [bigint] NULL DEFAULT ((-1)),
[FSex] [nchar](1) COLLATE Chinese_PRC_CI_AS NULL DEFAULT (''),
[FBirthday] [datetime] NULL,
[FMobile] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[FEmail] [nvarchar](100) COLLATE Chinese_PRC_CI_AS NULL,
[FAllowSMS] [bit] NOT NULL DEFAULT ('True'),
[FLeader] [varchar](200) COLLATE Chinese_PRC_CI_AS NOT NULL DEFAULT (''),
CONSTRAINT [pk_t_Employee] PRIMARY KEY CLUSTERED
(
[FCOID] ASC,
[FEmpID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
刪除新表
drop table tabname
例:
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[t_Employee]') AND type in (N'U'))
DROP TABLE [dbo].[t_Employee]
2、說明:增加一個列
Alter table tabname add column col type
3、說明:添加主鍵: Alter table tabname add primary key(col)
說明:刪除主鍵: Alter table tabname drop primary key(col)
4、說明:建立索引:create [unique] index idxname on tabname(col….)
刪除索引:drop index idxname
註:索引是不可更改的,想更改必須刪除重建立。
建立主鍵索引:
ALTER TABLE [dbo].[t_Employee] ADD CONSTRAINT [pk_t_Employee] PRIMARY KEY CLUSTERED
(
[FCOID] ASC,
[FEmpID] ASC
)
索引總結:
1.什麼是索引:資料庫中的索引是某個表中一列或多列值的集合和相應的指向表中物理標識這些值的資料頁的邏輯指標清單。
2.分類:
唯一索引(UNIQUE):不允許兩行具有相同的索引值(建立了唯一約束,系統將自動建立唯一索引)
主鍵索引:主鍵索引要求主鍵中的每個值是唯一的,(建立主鍵自動建立主鍵索引)
叢集索引(CLUSTERED):表中各行的物理順序與索引值的邏輯(索引)順序相同,表中只能包含一個叢集索引,主鍵列預設為叢集索引
非叢集索引(NONCLUSTERED):表中各行的物理順序與索引值的邏輯(索引)順序不匹配,表中可以有249個非叢集索引
3.建立索引的標準:用於頻繁搜尋的列;用於對資料進行排序的列
注意:如果表中僅有幾行,或列中只包含幾個不同的值,不推薦建立索引,因為SQL Server 在小型表中用索引搜尋資料所花的時間比逐行搜尋更長。
5、說明:建立視圖:create view viewname as select statement
刪除視圖:drop view viewname
6、說明:幾個簡單的基本的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
7、說明:幾個進階查詢運算詞
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),不消除重複行。
註:使用運算詞的幾個查詢結果行必須是一致的。
8、說明:使用外串連
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:
全外串連:不僅包括符號串連表的匹配行,還包括兩個串連表中的所有記錄。
9、分組:Group by:
一張表,一旦分組 完成後,查詢後只能得到組相關的資訊。
組相關的資訊:(統計資訊) count,sum,max,min,avg 分組的標準)
在SQLServer中分組時:不能以text,ntext,image類型的欄位作為分組依據
在selecte統計函數中的欄位,不能和普通的欄位放在一起;