1.創建一個數據庫名為“erp”
- 主數據文件:初始容量為5MB,最大容量為50MB,遞增量為1MB,其余參數自設。
- 事務日志文件:初始容量為3MB,最大容量為20MB,遞增量為10%,其余參數自設。
創建的數據庫如下:
二、在erp數據庫下創建兩個表:
- 創建“erp” 數據庫
首先建立一個“新建查詢”然后在“新建查詢”的頁面寫入以下代碼后點擊執行:
CREATE?DATABASE?[erp]
?CONTAINMENT =?NONE
?ON??PRIMARY?
(?NAME?=?N'erp',?FILENAME?=?N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\erp.mdf'?,?SIZE =?8192KB ,?MAXSIZE =?51200KB ,?FILEGROWTH =?1024KB )
?LOG?ON?
(?NAME?=?N'erp_log',?FILENAME?=?N'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\erp_log.ldf'?,?SIZE =?3072KB ,?MAXSIZE =?20480KB ,?FILEGROWTH =?10%)
?WITH?CATALOG_COLLATION =?DATABASE_DEFAULT,?LEDGER?=?OFF
GO
代碼執行完成后erp表建立完成,點擊刷新即可看到
二、在“erp”數據庫下創建表(請注意完整性的設計)
(1)創建“部門表”
首先建立一個“新建查詢”然后在“新建查詢”的頁面寫入以下代碼后點擊執行:
USE?[erp]
GO
SET?ANSI_NULLS?ON
GO
SET?QUOTED_IDENTIFIER?ON
GO
CREATE?TABLE?[dbo].[C](
[CNO] [nchar](10)?NOT?NULL,
[CNAME] [varchar](30)?NOT?NULL,
[CNumber] [int] NULL,
?CONSTRAINT?[PK_C] PRIMARY?KEY?CLUSTERED?
(
[CNO] ASC
)WITH (PAD_INDEX?=?OFF,?STATISTICS_NORECOMPUTE?=?OFF,?IGNORE_DUP_KEY?=?OFF,?ALLOW_ROW_LOCKS?=?ON,?ALLOW_PAGE_LOCKS?=?ON,?OPTIMIZE_FOR_SEQUENTIAL_KEY?=?OFF)?ON?[PRIMARY]
)?ON?[PRIMARY]
GO
- 創建“職工表”
首先建立一個“新建查詢”然后在“新建查詢”的頁面寫入以下代碼后點擊執行:
CREATE?TABLE?[dbo].[S](
[SNO] [char](6)?NOT?NULL,
[Sname] [varchar](30)?NOT?NULL,
[Sex] [char](2)?NULL,
[Sphone] [int] NOT?NULL,
[Sadress] [varchar](50)?NULL,
[CNO] [char](10)?NULL,
?CONSTRAINT?[PK_S] PRIMARY?KEY?CLUSTERED?
(
[SNO] ASC
)WITH (PAD_INDEX?=?OFF,?STATISTICS_NORECOMPUTE?=?OFF,?IGNORE_DUP_KEY?=?OFF,?ALLOW_ROW_LOCKS?=?ON,?ALLOW_PAGE_LOCKS?=?ON,?OPTIMIZE_FOR_SEQUENTIAL_KEY?=?OFF)?ON?[PRIMARY],
?CONSTRAINT?[IX_S] UNIQUE?NONCLUSTERED?
(
[Sphone] ASC
)WITH (PAD_INDEX?=?OFF,?STATISTICS_NORECOMPUTE?=?OFF,?IGNORE_DUP_KEY?=?OFF,?ALLOW_ROW_LOCKS?=?ON,?ALLOW_PAGE_LOCKS?=?ON,?OPTIMIZE_FOR_SEQUENTIAL_KEY?=?OFF)?ON?[PRIMARY]
)?ON?[PRIMARY]
GO
ALTER?TABLE?[dbo].[S] ADD??CONSTRAINT?[DF_S_Sex] ?DEFAULT ('男')?FOR?[Sex]
GO
ALTER?TABLE?[dbo].[S] ?WITH?CHECK?ADD??CONSTRAINT?[CK_S] CHECK ?(([Sex]='男'?OR?[Sex]='女'))
GO
ALTER?TABLE?[dbo].[S] CHECK?CONSTRAINT?[CK_S]
GO
執行后生成的頁面屬性:
三、請插入記錄驗證完整性。
1. 正確插入數據
(1)部門表(3條記錄)
點擊“新建查詢”建立一新的頁面輸入一下代碼對所需數據進行插入:
use?erp
INSERT?INTO?A(CNO,?Cname,?Cnumber )
VALUES('S4',?'文員',?'50')
INSERT?INTO?A(CNO,?Cname,?Cnumber )
VALUES('S5',?'董事',?'12')
INSERT?INTO?A(CNO,?Cname,?Cnumber )
VALUES('S6',?'金融操盤手','30')
代碼輸入后點擊執行將數據插入到表A中去,然后用代碼
use erp
select?*?from?A
對表里數據進行查詢結果如下:
- 職工表(3條記錄)
點擊“新建查詢”建立一新的頁面輸入一下代碼對所需數據進行插入:
use?erp
INSERT?INTO?S(SNO,?Sname,?Sex,Sphone,Sadress,CNO )
VALUES('I1',?'空心木偶',?'男','13071603','廣東茂名','S1')
INSERT?INTO?S(SNO,?Sname,?Sex,Sphone,Sadress,CNO )
VALUES('I2',?'小紅',?'女','13071604','廣東深圳','S2')
INSERT?INTO?S(SNO,?Sname,?Sex,Sphone,Sadress,CNO )
VALUES('I3',?'小梓',?'男','13071605','廣東廣州','S3')
代碼輸入后點擊執行將數據插入到表A中去,然后用代碼
use erp
select?*?from?S
2. 完整性驗證
(1)違反“部門表”的PRIMARY KEY約束
由前面可以知道“部門號”是表A的主鍵,可以使用INSERT語句插入在表A中添加與已有數據相同的部門號,最后使用SELECT查詢所插入的數據,觀察運行后的結果,如果插入顯示“部門號”重復從而插入失敗即可驗證部門表的PRIMARY KEY(主鍵)約束,代碼如下:
USE ERP
INSERT?INTO?A(CNO,?Cname,?Cnumber )
VALUES('S1',?'經理',?'8')
select?*?from?A
運行結果如下:
(2)違反“部門表”的NOT NULL約束
由前面表的設計可知“部門號”和“部門名稱”都是NOT NULL,所以可以使用INSERT語句在部門表A中添加數據,在“部門號”和“部門名稱”插入的數據為空,最后使用SELECT查詢所插入的數據,從而驗證部門表的NOT NULL約束,代碼如下:
USE?ERP
INSERT?INTO?A(CNO,?Cname,?Cnumber )
VALUES('NULL',?'NULL',?'8')
select?*?from?A
運行的結果如下:
(3)違反“職工表”的PRIMARY KEY約束
由前面可以知道“職工號”是表S的主鍵,可以使用INSERT語句插入在表S中添加與已有數據相同的職工號,最后使用SELECT查詢所插入的數據,觀察運行后的結果,如果插入顯示“職工號”重復從而插入失敗即可驗證職工表的PRIMARY KEY(主鍵)約束,代碼如下:
USE?ERP
INSERT?INTO?S(SNO,?Sname,?Sex,Sphone,Sadress,CNO )
VALUES('I1',?'劉德華',?'男','13071683','廣東湛江','S9')
運行的結果如下: