--==========================================================--
-- 作者:彭建軍
-- 日期:2005-06-22
-- 頁面:Page2
-- 概要:數據庫表的創建、修改、刪除以及默認值、CHECK、IDENTITY
-- 說明:以下示例均在[查詢分析器]下進行,可配合圖形界面進行測試
--==========================================================--
USE Master
GO
--檢查是否存在測試表,若存在,則刪除之
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE XTYPE = 'U' AND NAME = 'MyTestTable1')
DROP TABLE MyTestTable1
GO
CREATE TABLE MyTestTable1
(
編號 INT PRIMARY KEY NOT NULL IDENTITY(1,1),
姓名 CHAR(8),
別名 VARCHAR(8),
性別 CHAR(2) DEFAULT ('男'),
年齡 INT CHECK(年齡>0 AND 年齡<100),
)ON [PRIMARY]
GO
--插入數據:
/*
下面的語句將不能執行,因為 [編號] 列為系統自動自增列。
INSERT INTO MyTestTable1(編號,姓名,別名,性別,年齡)
VALUES (1,'彭建軍','彭建軍','男',25)
GO
在當 IDENTITY_INSERT 設置為 OFF 時,不能向表 'MyTestTable1' 中的標識列插入顯式值。
*/
--正確的語句,方法一
INSERT INTO MyTestTable1(姓名,別名,性別,年齡)
VALUES ('彭建軍','彭建軍','男',25)
GO
--方法二:
INSERT INTO MyTestTable1(姓名,別名,性別,年齡)
SELECT '老轉','老轉','男',30 UNION ALL
SELECT '錢妮','妮子','女',28
GO
--查詢數據(注意編號的自增性)
SELECT * FROM MyTestTable1
GO
/*
結果集
編號 姓名 別名 性別 年齡
----------- -------- -------- ---- -----------
1 彭建軍 彭建軍 男 25
2 老轉 老轉 男 30
3 錢妮 妮子 女 28
*/
--驗證 默認值,不插入[性別]的值,則系統取默認值
INSERT INTO MyTestTable1(姓名,別名,年齡)
SELECT '潘穎','梨窩淺笑',25
GO
--查詢
SELECT * FROM MyTestTable1 WHERE 姓名 = '潘穎'
GO
/*
結果集
編號 姓名 別名 性別 年齡
----------- -------- -------- ---- -----------
4 潘穎 梨窩淺笑 男 25
*/
--驗證 CHECK,插入[年齡]的值超過100,則系統報錯
INSERT INTO MyTestTable1(姓名,別名,性別,年齡)
SELECT '蛋蛋','蛋蛋','女',120
GO
/*
結果集
INSERT 語句與 COLUMN CHECK 約束 'CK__MyTestTable1__年齡__30B91D22' 沖突。該沖突發生于數據庫 'master',表 'MyTestTable1', column '年齡'。
語句已終止。
*/
--修改表
--增加列
ALTER Table MyTestTable1
ADD 備注 VARCHAR(50)
GO
--修改列定義
ALTER Table MyTestTable1
ALTER COLUMN 備注 VARCHAR(100)
GO
--清空表的數據
--方法一(刪除的數據將記入日志)
DELETE FROM MyTestTable1
GO
--如果是刪除特定的行,則類似于 DELETE FROM MyTestTable1 WHERE 編號 = 1
--方法二(刪除的數據不記入日志,執行效率高)
TRUNCATE TABLE MyTestTable1
GO
--刪除表(謹慎使用!)
DROP TABLE MyTestTable1
GO