--建庫-----------------------------------------------------------------------------------------------
USE master
GO
IF EXISTS(SELECT * FROM sys.databases WHERE name='BankDB')
DROP DATABASE BankDB
GO
CREATE DATABASE BankDB
ON PRIMARY
(
NAME = 'BankDB',
FILENAME = 'E:\BankDB.mdf',
SIZE = 5MB,
FILEGROWTH = 15%
)
LOG ON
(
NAME = 'BankDB_log',
FILENAME = 'E:\BankDB_log.ldf',
SIZE = 1MB,
FILEGROWTH = 15%
)
GO
--建表-----------------------------------------------------------------------------------------------
USE BankDB
GO
IF EXISTS(SELECT * FROM sys.objects WHERE name='Deposit')
DROP TABLE Deposit
GO
CREATE TABLE Deposit
(
[DepositId] int NOT NULL IDENTITY(1,1),
[DepositName] nvarchar(20) NULL,
[Descrip] nvarchar(100) NULL
)
GO
IF EXISTS(SELECT * FROM sys.objects WHERE name='UserInfo')
DROP TABLE UserInfo
GO
CREATE TABLE UserInfo
(
[IdentityCard] nvarchar(30) NOT NULL,
[UserName] nvarchar(30) NULL,
[Telephone] nvarchar(30) NULL,
[Address] nvarchar(50) NULL
)
GO
IF EXISTS(SELECT * FROM sys.objects WHERE name='CardInfo')
DROP TABLE CardInfo
GO
CREATE TABLE CardInfo
(
[CardNo] nvarchar(20) NOT NULL,
[PassWord] nvarchar(20) NULL,
[UserName] nvarchar(30) NULL,
[IdentityCard] nvarchar(30) NOT NULL,
[Telephone] nvarchar(30) NULL,
[Address] nvarchar(50) NULL,
[MoneyType] nvarchar(10) NULL,
[DepositId] int NOT NULL,
[AccountDate] datetime NULL,
[AccountMoney] decimal(10,2) NULL,
[SaveMoney] decimal(10,2) NULL,
[AccountState] nvarchar(10) NULL
)
GO
IF EXISTS(SELECT * FROM sys.objects WHERE name='TradeInfo')
DROP TABLE TradeInfo
GO
CREATE TABLE TradeInfo
(
[TradeId] int NOT NULL IDENTITY(1,1),
[CardNo] nvarchar(20) NOT NULL,
[TradeDate] datetime NULL,
[TradeType] nvarchar(10) NULL,
[TradeMoney] decimal(10,2) NULL,
[SpareMoney] decimal(10,2) NULL,
[Remark] nvarchar(200) NULL
)
GO
--建約束------------------------------------------------------------------------------------
USE BankDB
GO
--Deposit--------------------------------
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'PK_DepositId')
ALTER TABLE [Deposit]
DROP CONSTRAINT PK_DepositId
ALTER TABLE [Deposit]
ADD CONSTRAINT PK_DepositId PRIMARY KEY([DepositId])
--UserInfo-------------------------------
--IdentityCard----
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'PK_IdentityCard')
ALTER TABLE [UserInfo]
DROP CONSTRAINT PK_IdentityCard
ALTER TABLE [UserInfo]
ADD CONSTRAINT PK_IdentityCard PRIMARY KEY([IdentityCard])
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'CK_IdentityCard')
ALTER TABLE [UserInfo]
DROP CONSTRAINT CK_IdentityCard
ALTER TABLE [UserInfo]
ADD CONSTRAINT CK_IdentityCard CHECK(LEN([IdentityCard])=15 OR LEN([IdentityCard])=18)
--UserName----
ALTER TABLE [UserInfo] ALTER COLUMN [UserName] nvarchar(30) NOT NULL
/**電話檢查約束
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'CK_Telephone')
ALTER TABLE [UserInfo]
DROP CONSTRAINT CK_Telephone
ALTER TABLE [UserInfo]
ADD CONSTRAINT CK_Telephone CHECK()
*/
--CardInfo--------------------------------
--CardNo-----
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'PK_CardNo')
ALTER TABLE [CardInfo]
DROP CONSTRAINT PK_CardNo
ALTER TABLE [CardInfo]
ADD CONSTRAINT PK_CardNo PRIMARY KEY([CardNo])
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'CK_CardNo')
ALTER TABLE [CardInfo]
DROP CONSTRAINT CK_CardNo
ALTER TABLE [CardInfo]
ADD CONSTRAINT CK_CardNo CHECK(LEN([CardNo])=16)
--PassWord-----
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'CK_PassWord')
ALTER TABLE [CardInfo]
DROP CONSTRAINT CK_PassWord
ALTER TABLE [CardInfo]
ADD CONSTRAINT CK_PassWord CHECK(LEN([PassWord])=6)
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'DF_PassWord')
ALTER TABLE [CardInfo]
DROP CONSTRAINT DF_PassWord
ALTER TABLE [CardInfo]
ADD CONSTRAINT DF_PassWord DEFAULT('888888') FOR [PassWord]
--UserName----
ALTER TABLE [CardInfo] ALTER COLUMN [UserName] nvarchar(30) NOT NULL
--IdentityCard------
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'FK_IdentityCard')
ALTER TABLE [CardInfo]
DROP CONSTRAINT FK_IdentityCard
ALTER TABLE [CardInfo]
ADD CONSTRAINT FK_IdentityCard FOREIGN KEY([IdentityCard]) REFERENCES [UserInfo]([IdentityCard])
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'CK_CardInfo_IdentityCard')
ALTER TABLE [CardInfo]
DROP CONSTRAINT CK_CardInfo_IdentityCard
ALTER TABLE [CardInfo]
ADD CONSTRAINT CK_CardInfo_IdentityCard CHECK(LEN([IdentityCard])=15 OR LEN([IdentityCard])=18)
/**電話檢查約束
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'CK_Telephone')
ALTER TABLE [UserInfo]
DROP CONSTRAINT CK_Telephone
ALTER TABLE [UserInfo]
ADD CONSTRAINT CK_Telephone CHECK()
*/
--MoneyType------
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'DF_MoneyType')
ALTER TABLE [CardInfo]
DROP CONSTRAINT DF_MoneyType
ALTER TABLE [CardInfo]
ADD CONSTRAINT DF_MoneyType DEFAULT('RMB') FOR [MoneyType]
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'CK_MoneyType')
ALTER TABLE [CardInfo]
DROP CONSTRAINT CK_MoneyType
ALTER TABLE [CardInfo]
ADD CONSTRAINT CK_MoneyType CHECK([MoneyType]='RMB')
--DepositId--------
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'FK_DepositId')
ALTER TABLE [CardInfo]
DROP CONSTRAINT FK_DepositId
ALTER TABLE [CardInfo]
ADD CONSTRAINT FK_DepositId FOREIGN KEY([DepositId]) REFERENCES [Deposit]([DepositId])
--AccountDate--------
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'DF_AccountDate')
ALTER TABLE [CardInfo]
DROP CONSTRAINT DF_AccountDate
ALTER TABLE [CardInfo]
ADD CONSTRAINT DF_AccountDate DEFAULT(GETDATE()) FOR [AccountDate]
--AccountMoney--------
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'CK_AccountMoney')
ALTER TABLE [CardInfo]
DROP CONSTRAINT CK_AccountMoney
ALTER TABLE [CardInfo]
ADD CONSTRAINT CK_AccountMoney CHECK([AccountMoney]>=1)
--AccountState--------
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'DF_AccountState')
ALTER TABLE [CardInfo]
DROP CONSTRAINT DF_AccountState
ALTER TABLE [CardInfo]
ADD CONSTRAINT DF_AccountState DEFAULT('未掛失') FOR [AccountState]
--TradeInfo-------------------------------------------
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'PK_TradeId')
ALTER TABLE [TradeInfo]
DROP CONSTRAINT PK_TradeId
ALTER TABLE [TradeInfo]
ADD CONSTRAINT PK_TradeId PRIMARY KEY([TradeId])
--CardNo--------------
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'FK_CardNo')
ALTER TABLE [TradeInfo]
DROP CONSTRAINT FK_CardNo
ALTER TABLE [TradeInfo]
ADD CONSTRAINT FK_CardNo FOREIGN KEY([CardNo]) REFERENCES [CardInfo]([CardNo])
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'CK_TradeInfo_CardNo')
ALTER TABLE [TradeInfo]
DROP CONSTRAINT CK_TradeInfo_CardNo
ALTER TABLE [TradeInfo]
ADD CONSTRAINT CK_TradeInfo_CardNo CHECK(LEN([CardNo])=16)
--TradeDate-----------
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'DF_TradeDate')
ALTER TABLE [TradeInfo]
DROP CONSTRAINT DF_TradeDate
ALTER TABLE [TradeInfo]
ADD CONSTRAINT DF_TradeDate DEFAULT(GETDATE()) FOR [TradeDate]
--TradeMoney---------
IF EXISTS(SELECT * FROM sys.objects WHERE name = 'CK_TradeMoney')
ALTER TABLE [TradeInfo]
DROP CONSTRAINT CK_TradeMoney
ALTER TABLE [TradeInfo]
ADD CONSTRAINT CK_TradeMoney CHECK([TradeMoney] > 0)
GO
--插入數(shù)據(jù)---------------------------------------------------------------------------------------
--Deposit-----------------------------
BEGIN TRANSACTION
DECLARE @n int
SET @n = 0
INSERT INTO [Deposit]([DepositName],[Descrip]) VALUES('活期','按存款日結算利息')
SET @n=@n+@@ERROR
INSERT INTO [Deposit]([DepositName],[Descrip]) VALUES('定期一年','存款期是1年')
SET @n=@n+@@ERROR
INSERT INTO [Deposit]([DepositName],[Descrip]) VALUES('定期二年','存款期是2年')
SET @n=@n+@@ERROR
INSERT INTO [Deposit]([DepositName],[Descrip]) VALUES('定期三年','存款期是3年')
SET @n=@n+@@ERROR
INSERT INTO [Deposit]([DepositName],[Descrip]) VALUES('定活兩便',NULL)
SET @n=@n+@@ERROR
INSERT INTO [Deposit]([DepositName],[Descrip]) VALUES('通知',NULL)
SET @n=@n+@@ERROR
INSERT INTO [Deposit]([DepositName],[Descrip]) VALUES('零存整取一年','存款期是1年')
SET @n=@n+@@ERROR
INSERT INTO [Deposit]([DepositName],[Descrip]) VALUES('零存整取二年','存款期是2年')
SET @n=@n+@@ERROR
INSERT INTO [Deposit]([DepositName],[Descrip]) VALUES('零存整取三年','存款期是3年')
SET @n=@n+@@ERROR
INSERT INTO [Deposit]([DepositName],[Descrip]) VALUES('存本取息五年','按月支取利息')
SET @n=@n+@@ERROR
IF(@n = 0)
BEGIN
COMMIT TRANSACTION
END
ELSE
BEGIN
ROLLBACK TRANSACTION
END
GO
--UserInfo-----------------------------
BEGIN TRANSACTION
DECLARE @n int
SET @n = 0
INSERT INTO [UserInfo]([IdentityCard],[UserName],[Telephone],[Address]) VALUES('123456789012345','張三','010-67898978','北京海淀區(qū)')
SET @n=@n+@@ERROR
INSERT INTO [UserInfo]([IdentityCard],[UserName],[Telephone],[Address]) VALUES('321245678912345678','李四','0478-44443333','山東濟南市')
SET @n=@n+@@ERROR
INSERT INTO [UserInfo]([IdentityCard],[UserName],[Telephone],[Address]) VALUES('567891234532124670','王五','010-44443333','河北石家莊市')
SET @n=@n+@@ERROR
INSERT INTO [UserInfo]([IdentityCard],[UserName],[Telephone],[Address]) VALUES('567891321242345618','丁六','0752-43345543','北京西城區(qū)')
SET @n=@n+@@ERROR
INSERT INTO [UserInfo]([IdentityCard],[UserName],[Telephone],[Address]) VALUES('334456889012678','丁一','2222-63598978','河南新鄉(xiāng)')
SET @n=@n+@@ERROR
INSERT INTO [UserInfo]([IdentityCard],[UserName],[Telephone],[Address]) VALUES('213445678912342222','趙二','0760-44446666',NULL)
SET @n=@n+@@ERROR
IF(@n = 0)
BEGIN
COMMIT TRANSACTION
END
ELSE
BEGIN
ROLLBACK TRANSACTION
END
GO
--CardInfo-----------------------------
BEGIN TRANSACTION
DECLARE @n int
SET @n = 0
INSERT INTO [CardInfo]([CardNo],[PassWord],[UserName],[IdentityCard],[Telephone],[Address],[MoneyType],[DepositId],[AccountDate],[AccountMoney],[SaveMoney],[AccountState])
VALUES('1010357612121004',DEFAULT,'丁六','567891321242345618','0752-43345543','北京西城區(qū)',DEFAULT,2,'2009/11/2 15:22:06',1,1001,DEFAULT)
SET @n=@n+@@ERROR
INSERT INTO [CardInfo]([CardNo],[PassWord],[UserName],[IdentityCard],[Telephone],[Address],[MoneyType],[DepositId],[AccountDate],[AccountMoney],[SaveMoney],[AccountState])
VALUES('1010357612121130',DEFAULT,'王五','567891234532124670','010-44443333','河北石家莊市',DEFAULT,2,'2009/11/2 15:22:06',1,1,DEFAULT)
SET @n=@n+@@ERROR
INSERT INTO [CardInfo]([CardNo],[PassWord],[UserName],[IdentityCard],[Telephone],[Address],[MoneyType],[DepositId],[AccountDate],[AccountMoney],[SaveMoney],[AccountState])
VALUES('1010357612121134','123123','李四','321245678912345678','0478-44443333','山東濟南市',DEFAULT,2,'2009/11/2 15:22:06',1,1501,'已掛失')
SET @n=@n+@@ERROR
INSERT INTO [CardInfo]([CardNo],[PassWord],[UserName],[IdentityCard],[Telephone],[Address],[MoneyType],[DepositId],[AccountDate],[AccountMoney],[SaveMoney],[AccountState])
VALUES('1010357612345678','123456','張三','123456789012345','010-67898978','北京海淀區(qū)',DEFAULT,1,'2009/11/2 15:22:06',1000,6100,DEFAULT)
SET @n=@n+@@ERROR
INSERT INTO [CardInfo]([CardNo],[PassWord],[UserName],[IdentityCard],[Telephone],[Address],[MoneyType],[DepositId],[AccountDate],[AccountMoney],[SaveMoney],[AccountState])
VALUES('1010357619148284',DEFAULT,'丁一','334456889012678','2222-63598978','河南新鄉(xiāng)',DEFAULT,1,'2009/11/2 15:32:53',1000,1000,DEFAULT)
SET @n=@n+@@ERROR
IF(@n = 0)
BEGIN
COMMIT TRANSACTION
END
ELSE
BEGIN
ROLLBACK TRANSACTION
END
GO
--TradeInfo-----------------------------
BEGIN TRANSACTION
DECLARE @n int
SET @n = 0
INSERT INTO [TradeInfo]([CardNo],[TradeDate],[TradeType],[TradeMoney],[SpareMoney])
VALUES('1010357612345678','2009/11/2 15:22:06','支取',900,100)
SET @n=@n+@@ERROR
INSERT INTO [TradeInfo]([CardNo],[TradeDate],[TradeType],[TradeMoney],[SpareMoney])
VALUES('1010357612121130','2009/11/2 15:22:06','存入',300,301)
SET @n=@n+@@ERROR
INSERT INTO [TradeInfo]([CardNo],[TradeDate],[TradeType],[TradeMoney],[SpareMoney])
VALUES('1010357612121004','2009/11/2 15:22:06','存入',1000,1001)
SET @n=@n+@@ERROR
INSERT INTO [TradeInfo]([CardNo],[TradeDate],[TradeType],[TradeMoney],[SpareMoney])
VALUES('1010357612121130','2009/11/2 15:22:06','存入',1900,2201)
SET @n=@n+@@ERROR
INSERT INTO [TradeInfo]([CardNo],[TradeDate],[TradeType],[TradeMoney],[SpareMoney])
VALUES('1010357612121134','2009/11/2 15:22:06','存入',5000,5001)
SET @n=@n+@@ERROR
INSERT INTO [TradeInfo]([CardNo],[TradeDate],[TradeType],[TradeMoney],[SpareMoney])
VALUES('1010357612121134','2009/11/2 15:28:47','存入',500,5501)
SET @n=@n+@@ERROR
INSERT INTO [TradeInfo]([CardNo],[TradeDate],[TradeType],[TradeMoney],[SpareMoney])
VALUES('1010357612121134','2009/11/3 13:37:24','支取',2000,3501)
SET @n=@n+@@ERROR
INSERT INTO [TradeInfo]([CardNo],[TradeDate],[TradeType],[TradeMoney],[SpareMoney])
VALUES('1010357612345678','2009/11/3 13:37:24','存入',2000,2100)
SET @n=@n+@@ERROR
INSERT INTO [TradeInfo]([CardNo],[TradeDate],[TradeType],[TradeMoney],[SpareMoney])
VALUES('1010357612121134','2009/11/3 14:23:10','支取',2000,1501)
SET @n=@n+@@ERROR
INSERT INTO [TradeInfo]([CardNo],[TradeDate],[TradeType],[TradeMoney],[SpareMoney])
VALUES('1010357612345678','2009/11/3 14:23:10','存入',2000,4100)
SET @n=@n+@@ERROR
INSERT INTO [TradeInfo]([CardNo],[TradeDate],[TradeType],[TradeMoney],[SpareMoney])
VALUES('1010357612345678','2009/11/3 14:23:24','存入',2000,6100)
SET @n=@n+@@ERROR
IF(@n = 0)
BEGIN
COMMIT TRANSACTION
END
ELSE
BEGIN
ROLLBACK TRANSACTION
END
GO
示例1 建庫建表建約束
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
- 文/潘曉璐 我一進店門稀余,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悦冀,“玉大人,你說我怎么就攤上這事睛琳『畜。” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵师骗,是天一觀的道長历等。 經(jīng)常有香客問我,道長辟癌,這世上最難降的妖魔是什么寒屯? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮黍少,結果婚禮上寡夹,老公的妹妹穿的比我還像新娘。我一直安慰自己仍侥,他們只是感情好要出,可當我...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著农渊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上砸紊,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼唆涝!你這毒婦竟也來了找都?” 一聲冷哼從身側響起,我...
- 正文 年R本政府宣布蚓曼,位于F島的核電站,受9級特大地震影響钦扭,放射性物質發(fā)生泄漏纫版。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一客情、第九天 我趴在偏房一處隱蔽的房頂上張望其弊。 院中可真熱鬧,春花似錦膀斋、人聲如沸梭伐。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽糊识。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赂苗,已是汗流浹背愉耙。 一陣腳步聲響...
推薦閱讀更多精彩內容
- 數(shù)據(jù)庫和表的概念 1,數(shù)據(jù)庫的概念:存儲數(shù)據(jù)的容器(對比倉庫去理解),祭隔、 2货岭,表的概念:真正的存儲單元 3,數(shù)據(jù)庫...
- 注釋 單行注釋:-- 多行注釋:/* XXXXX*/ 非標準注釋:# 注釋快捷鍵:Ctrl+/ default 默...
- 一.常用數(shù)據(jù)庫軟件 大型數(shù)據(jù)庫 Oracle Oracle是著名的Oracle(甲骨文)公司的數(shù)據(jù)庫產品 , 它...
- Oracle安裝完后桩撮,其中有一個缺省的數(shù)據(jù)庫敦第,除了這個缺省的數(shù)據(jù)庫外,我們還可以創(chuàng)建自己的數(shù)據(jù)庫店量。 對于初學者來說...