?? 學生信息管理系統數據庫設計.sql
字號:
-----------------------------如果存在庫 XSXI_ZSH,刪除后再創建-----------
IF EXISTS (SELECT *
FROM master..sysdatabases
WHERE name = 'XSXI_ZSH')
DROP DATABASE XSXI_ZSH
GO
------------------------------創建 學生信息數據庫 XSXI_ZSH----------------------
CREATE DATABASE XSXI_ZSH
ON
(NAME='XSXI_ZSH_Data',
FILENAME='C:\Program files\Microsoft SQL Server\MSSQL\data\XSXI_ZSH.mdf',
SIZE=5MB,
MAXSIZE=30MB,
FILEGROWTH=10%)
LOG ON
(NAME='XSXI_ZSH_Log',
FILENAME='C:\Program files\Microsoft SQL Server\MSSQL\data\XSXI_ZSH.ldf',
SIZE=2MB,
MAXSIZE=5MB,
FILEGROWTH=1MB)
GO
-----------------------------創建 用戶表 USER_ZSH ----------------
USE XSXI_ZSH
CREATE TABLE USER_ZSH
(用戶名 CHAR(12) NOT NULL CONSTRAINT USER_PK PRIMARY KEY(用戶名),/*定義主鍵約束*/
密碼 CHAR(12) NOT NULL,
用戶類型 CHAR(10) NOT NULL
)
GO
--------------------------向表 USER_ZSH 中添加用戶信息---------------
USE XSXI_ZSH
INSERT INTO USER_ZSH
VALUES('12345','12345','系統管理員')
INSERT INTO USER_ZSH
VALUES('200507023201','200507023201','學生')
INSERT INTO USER_ZSH
VALUES('200507023202','200507023202','學生')
INSERT INTO USER_ZSH
VALUES('200507023203','200507023203','學生')
INSERT INTO USER_ZSH
VALUES('200507023204','200507023204','學生')
INSERT INTO USER_ZSH
VALUES('200507023205','200507023205','學生')
INSERT INTO USER_ZSH
VALUES('200507023206','200507023206','學生')
INSERT INTO USER_ZSH
VALUES('200507023207','200507023207','學生')
INSERT INTO USER_ZSH
VALUES('200507023208','200507023208','學生')
INSERT INTO USER_ZSH
VALUES('200507023209','200507023209','學生')
---------定義存儲過程 CHANGE_PASS 實現用戶密碼修改-----------
USE XSXI_ZSH
GO
IF EXISTS(SELECT name FROM sysobjects
WHERE name='CHANGE_PASS'AND TYPE='P')
DROP PROCEDURE CHANGE_PASS
GO
CREATE PROCEDURE CHANGE_PASS
@用戶名 CHAR(12),@舊密碼 CHAR(12),@新密碼 CHAR(12)
AS
UPDATE USER_ZSH
SET USER_ZSH.密碼=@新密碼
WHERE USER_ZSH.用戶名=@用戶名 AND USER_ZSH.密碼=@舊密碼
GO
---分別創建存儲過程 USER_INSERT USER_DELETE ,用于向 USER_ZSH 表中插入、刪除記錄,
---對于增加的普通用戶通過觸發器 INSERT_TRIGGER 保證學號作為用戶名
---------------USER_INSERT 存儲過程的定義-----------
USE XSXI_ZSH
GO
IF EXISTS(SELECT name FROM sysobjects
WHERE name='USER_INSERT'AND TYPE='P')
DROP PROCEDURE USER_INSERT
GO
CREATE PROCEDURE USER_INSERT
@用戶名1 CHAR(12),@用戶名2 CHAR(12),@密碼 CHAR(12),@用戶類型 CHAR(10)
AS
IF EXISTS(SELECT * FROM USER_ZSH
WHERE 用戶名=@用戶名1 AND 用戶類型=2)
INSERT INTO USER_ZSH(用戶名,密碼,用戶類型)
VALUES(@用戶名2,@密碼,@用戶類型)
--------------USER_DELETE 存儲過程的定義----------
USE XSXI_ZSH
GO
IF EXISTS(SELECT name FROM sysobjects
WHERE name='USER_DELETE'AND TYPE='P')
DROP PROCEDURE USER_DELETE
GO
CREATE PROCEDURE USER_DELETE
@用戶名1 CHAR(12),@用戶名2 CHAR(12)
AS
IF EXISTS(SELECT * FROM USER_ZSH
WHERE 用戶名=@用戶名1 AND 用戶類型=2)
DELETE
FROM USER_ZSH
WHERE 用戶名=@用戶名2
--------------- INSERT_TRIGGER 觸發器的定義------------
USE XSXI_ZSH
GO
IF EXISTS(SELECT name FROM sysobjects
WHERE name='INSERT_TRIGGER'AND TYPE='TR')
DROP TRIGGER INSERT_TRIGGER
GO
CREATE TRIGGER INSERT_TRIGGER ON USER_ZSH
FOR INSERT AS
IF EXISTS(SELECT *
FROM INERTED
WHERE 用戶名 NOT IN (SELECT 學號 FROM XSXJ_ZSH) AND 用戶類型=2)
BEGIN
RAISERROR('違背數據一致性.',16,1)
ROLLBACK TRANSACTION
END
--------******************創建 學生學籍表 XSXJ_ZSH****************---------------
---以下定義了一個用戶數據類型telphonenum,及規則tel_rule,然后將規則tel_rule綁定到用戶數
---據類型telphonenum上,最后又定義了表XSXJ_ZSH,其電話號碼字段的數據類型為telphonenum。
USE XSXI_ZSH
EXEC SP_ADDTYPE TELPHONEUNM, 'CHAR(11)','NOT NULL'
GO
/*以下語句為解除規則對象tel_rule與用戶定義類型telphonenum的綁定關系,并刪除規則對象tel_rule*/
IF EXISTS (SELECT NAME FROM SYSOBJECTS
WHERE NAME='TEI_RULE' AND TYPE='R')
BEGIN
EXEC SP_UNBINDRULE 'telphonenum'
DROP RULE TEL_RULE
END
GO
CREATE RULE TEL_RULE
AS @聯系電話 LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
GO
EXEC SP_BINDRULE 'TEL_RULE','TELPHONE'
GO
CREATE TABLE XSXJ_ZSH
(學號 char(12) NOT NULL CONSTRAINT XSXJ_PK PRIMARY KEY,
姓名 CHAR(8) NULL,
性別 BIT NULL DEFAULT(0),
出生日期 CHAR(12) NULL,
班級 CHAR(10) NOT NULL,
入校時間 CHAR(10) NOT NULL,
家庭住址 CHAR(20) NOT NULL,
聯系電話 TELPHONEUNM NOT NULL CONSTRAINT DEF_VAL DEFAULT 0
/*定義聯系電話的默認值約束為0,在定義默認值的同時指定約束名*/
)
GO
----------------刪除表 XSXJ_ZSH 的語句----------------
DROP TABLE XSXJ_ZSH
------------------創建 課程表 KC_ZSH---------------------------
CREATE TABLE KC_ZSH
(課程編號 CHAR(10) NOT NULL CONSTRAINT KC_PK PRIMARY KEY,
課程名稱 CHAR(20) NULL CONSTRAINT KC_UK UNIQUE,
課程描述 CHAR(500) NULL,
課程類型 CHAR(4) NOT NULL,
學分 INT NOT NULL
)
GO
------------------刪除表 KC_ZSH 的語句----------------
DROP TABLE KC_ZSH
-----------------創建 成績表 CJ_ZSH---------------------------
CREATE TABLE CJ_ZSH
(考試編號 CHAR(12) NOT NULL,
學號 CHAR(12) NOT NULL,
姓名 CHAR(8) NULL,
課程名稱 CHAR(30) NULL,
分數 INT CHECK(分數>=0 AND 分數<=100) NULL,
已得學分 INT NOT NULL
)
GO
----------------刪除表 CJ_ZSH 的語句----------------
DROP TABLE CJ_ZSH
------------------------向表 XSXJ_ZSH 中添加學籍信息--------------------------
USE XSXI_ZSH
INSERT INTO XSXJ_ZSH
VALUES('200507023201','范思哲','1','1986-12-30','05-WLZ-2','2005-09','北京市通州區','13011941234')
INSERT INTO XSXJ_ZSH
VALUES('200507023202','孟大波','1','1986-10-17','05-WLZ-2','2005-09','內蒙古海拉爾','13463161234')
INSERT INTO XSXJ_ZSH
VALUES('200507023203','張新','0','1986-12-23','05-WLZ-2','2005-09','山東省濰坊市','13785611234')
INSERT INTO XSXJ_ZSH
VALUES('200507023204','周方圓','1','1985-02-02','05-WLZ-2','2005-09','山東省臨沂市','13784111234')
INSERT INTO XSXJ_ZSH
VALUES('200507023205','禇楚楚','0','1984-06-02','05-WLZ-2','2005-09','山西省原平市','13903161234')
INSERT INTO XSXJ_ZSH
VALUES('200507023206','劉曉冰','0','1987-04-08','05-WLZ-2','2005-09','黑龍江綏化市','13463161234')
INSERT INTO XSXJ_ZSH
VALUES('200507023207','劉大東','1','1985-10-10','05-WLZ-2','2005-09','山東省德州市','13463161234')
INSERT INTO XSXJ_ZSH
VALUES('200507023208','岳小蘭','0','1985-01-15','05-WLZ-2','2005-09','河北省石家莊','13473681234')
INSERT INTO XSXJ_ZSH
VALUES('200507023209','馬小璞','0','1986-06-26','05-WLZ-2','2005-09','河北省保定市','13363611234')
------------------------向表 KC_ZSH 中添加課程信息-------------------------
USE XSXI_ZSH
INSERT INTO KC_ZSH
VALUES('0001','計算機網絡技術','講了數據通信的基礎知識、網絡體系結構與協議、局域網技術和網絡互連技術等','必修','2')
INSERT INTO KC_ZSH
VALUES('0002','實用業務英語','主要包括三部分:實用閱讀、應用寫作、實際會話','必修','3')
INSERT INTO KC_ZSH
VALUES('1111','網頁制作','本課程主要介紹了用三劍客來制作網頁','選修','2')
INSERT INTO KC_ZSH
VALUES('1112','Photoshop ','本課程將教我們處理圖片、制作海報等','選修','2')
INSERT INTO KC_ZSH
VALUES('1113','法律程序與法理','本課程讓同學們了解最基本的法律知識','選修','1')
INSERT INTO KC_ZSH
VALUES('1114','大學生禮儀','做大學生要懂的的基本禮儀','選修','1')
---------------------------向表 CJ_ZSH 中添加成績信息------------------------------
USE XSXI_ZSH
INSERT INTO CJ_ZSH
VALUES('050201','200507023201','范思哲','計算機網絡技術','70','2')
INSERT INTO CJ_ZSH
VALUES('050201','200507023201','范思哲','實用業務英語','56','0')
INSERT INTO CJ_ZSH
VALUES('050201','200507023201','范思哲','Photoshop','76','2')
INSERT INTO CJ_ZSH
VALUES('050201','200507023201','范思哲','法律程序與法理','65','1')
INSERT INTO CJ_ZSH
VALUES('050202','200507023202','孟大波','計算機網絡技術','79','2')
INSERT INTO CJ_ZSH
VALUES('050202','200507023202','孟大波','實用業務英語','60','3')
INSERT INTO CJ_ZSH
VALUES('050202','200507023202','孟大波','網頁制作','90','2')
INSERT INTO CJ_ZSH
VALUES('050202','200507023202','孟大波','法律程序與法理','78','1')
INSERT INTO CJ_ZSH
VALUES('050203','200507023203','張新','計算機網絡技術','75','2')
INSERT INTO CJ_ZSH
VALUES('050203','200507023203','張新','實用業務英語','78','3')
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -