您的位置:首页 > 数据库

SQL 贷款毕业生信息管理系统数据库设计

2010-05-05 20:22 435 查看
USE MASTER
GO

--创建数据库文件存放目录
EXEC XP_CMDSHELL 'MKDIR D:/LOANSTUMIS'
IF EXISTS(SELECT *
			FROM SYSDATABASES
			WHERE NAME = 'LOANSTU')
DROP DATABASE LOANSTU
GO

--创建数据库
CREATE DATABASE LOANSTU
ON
	(
		NAME = 'LOANSTU_DATA',
		FILENAME = 'D:/LOANSTUMIS/LOANSTU_DATA.MDF',
		SIZE = 10MB,
		FILEGROWTH = 1MB,
		MAXSIZE = 100MB
	)
LOG ON
	(
		NAME = 'LOANSTU_LOG',
		FILENAME = 'D:/LOANSTUMIS/LOANSTU_LOG.LDF',
		SIZE = 10MB,
		FILEGROWTH = 1MB,
		MAXSIZE = 100MB
	)
GO

USE LOANSTU
GO

--返回影响的行数提示
SET NOCOUNT ON

--建表
IF EXISTS(SELECT *
			FROM SYSOBJECTS
			WHERE NAME = 'TB_ADMIN')
DROP DATABASE TB_ADMIN
IF EXISTS(SELECT *
			FROM SYSOBJECTS
			WHERE NAME = 'TB_DLRZ')
DROP DATABASE TB_DLRZ
IF EXISTS(SELECT *
			FROM SYSOBJECTS
			WHERE NAME = 'TB_ZZJG')
DROP DATABASE TB_ZZJG
IF EXISTS(SELECT *
			FROM SYSOBJECTS
			WHERE NAME = 'TB_ZXXX')
DROP DATABASE TB_ZXXX
IF EXISTS(SELECT *
			FROM SYSOBJECTS
			WHERE NAME = 'TB_JTXX')
DROP DATABASE TB_JTXX
IF EXISTS(SELECT *
			FROM SYSOBJECTS
			WHERE NAME = 'TB_BYQX')
DROP DATABASE TB_BYQX
IF EXISTS(SELECT *
			FROM SYSOBJECTS
			WHERE NAME = 'TB_HTXX')
DROP DATABASE TB_HTXX
GO

--创建管理员信息表
CREATE TABLE TB_ADMIN
(
	ADMINID VARCHAR(15) PRIMARY KEY NOT NULL,
	ADMINNAME VARCHAR(10) NOT NULL,
	ADMINPASSWORD VARCHAR(20) DEFAULT('abc123') NOT NULL
)

--创建登陆日志表
CREATE TABLE TB_DLRZ
(
	LOGID INT IDENTITY(1000000,1) PRIMARY KEY NOT NULL,
	USERID VARCHAR(15) NOT NULL,
	LOGTIME SMALLDATETIME DEFAULT(GETDATE()) NOT NULL,
	IP VARCHAR(16)
)

--创建组织结构表(院系、专业、班级)
CREATE TABLE TB_ZZJG
(
	ORGID INT IDENTITY(1,1) PRIMARY KEY NOT NULL,
	ORGNAME VARCHAR(30),
	ORGPID INT	
)

--创建学生信息表
CREATE TABLE TB_ZXXX
(
	STUID VARCHAR(15) PRIMARY KEY NOT NULL,
	STUNAME VARCHAR(10),
	CLASSID INT NOT NULL,
	STUPASSWORD VARCHAR(20) DEFAULT('123456') NOT NULL,
	STUKH VARCHAR(20),
	STUSEX CHAR(2) CHECK(STUSEX IN('男','女')),
	STUPICTURE IMAGE,
	STUCARD VARCHAR(18) CHECK(LEN(STUCARD)=15 OR LEN(STUCARD)=18),
	STUNATION VARCHAR(10),
	STUGRADE VARCHAR(5),
	STUMOBILE VARCHAR(20) CHECK(STUMOBILE LIKE '%-%' OR LEN(STUMOBILE)=11)	
)

--创建家庭信息表
CREATE TABLE TB_JTXX
(
	STUID VARCHAR(15) NOT NULL,
	HOMEADDR VARCHAR(50),
	HOMEPOST CHAR(6),
	FATHERNAME VARCHAR(10),
	FATHERADDR VARCHAR(30),
	FATHERMOBILE VARCHAR(20) CHECK(FATHERMOBILE LIKE '%-%' OR LEN(FATHERMOBILE)=11),
	MOTHERNAME VARCHAR(10),
	MOTHERADDR VARCHAR(30),
	MOTHERMOBILE VARCHAR(20) CHECK(MOTHERMOBILE LIKE '%-%' OR LEN(MOTHERMOBILE)=11)
)

--创建毕业去向表
CREATE TABLE TB_BYQX
(
	STUID VARCHAR(15) NOT NULL,
	JOBNAME VARCHAR(30),
	JOBADDR VARCHAR(30),
	JOBPOST CHAR(6),
	JOBMOBILE VARCHAR(20) CHECK(JOBMOBILE LIKE '%-%' OR LEN(JOBMOBILE)=11)
)

--创建合同信息表
CREATE TABLE TB_HTXX
(
	STUID VARCHAR(15) NOT NULL,
	CONTID VARCHAR(30),
	BANKNAME VARCHAR(20),
	BRANCHNAME VARCHAR(30),
	APPROVETIME SMALLDATETIME,
	HANDPERSON VARCHAR(10),
	BEGINTIME SMALLDATETIME,
	DEADLINE SMALLDATETIME,
	SESSION SMALLINT,
	TEACHFEE MONEY,
	LIFEFEE MONEY,
	DORMFEE MONEY
)
GO

--添加外键约束
IF EXISTS(SELECT *
			FROM SYSOBJECTS
			WHERE NAME = 'FK_LOGER1')
ALTER TABLE TB_DLRZ
DROP CONSTRAINT FK_LOGER1
IF EXISTS(SELECT *
			FROM SYSOBJECTS
			WHERE NAME = 'FK_LOGER2')
ALTER TABLE TB_DLRZ
DROP CONSTRAINT FK_LOGER2
IF EXISTS(SELECT *
			FROM SYSOBJECTS
			WHERE NAME = 'FK_HOME')
ALTER TABLE TB_JTXX
DROP CONSTRAINT FK_HOME
IF EXISTS(SELECT *
			FROM SYSOBJECTS
			WHERE NAME = 'FK_JOB')
ALTER TABLE TB_BYQX
DROP CONSTRAINT FK_JOB
IF EXISTS(SELECT *
			FROM SYSOBJECTS
			WHERE NAME = 'FK_CONT')
ALTER TABLE TB_HTXX
DROP CONSTRAINT FK_CONT

IF EXISTS(SELECT *
			FROM SYSOBJECTS
			WHERE NAME = 'FK_CLASSID')
ALTER TABLE TB_ZXXX
DROP CONSTRAINT FK_CLASS
GO

--设置表TB_DLRZ中USERID为表TB_ADMIN中ADMINID的外键
ALTER TABLE TB_DLRZ ADD
	CONSTRAINT FK_LOGER1 FOREIGN KEY(USERID)
		REFERENCES TB_ADMIN(ADMINID)
--设置表TB_DLRZ中USERID为表TB_ZXXX中STUID的外键
ALTER TABLE TB_DLRZ ADD
	CONSTRAINT FK_LOGER2 FOREIGN KEY(USERID)
		REFERENCES TB_ZXXX(STUID)
--设置表TB_ZXXX中CLASSID为表TB_ZZJG中ORGID的外键
ALTER TABLE TB_ZXXX ADD
	CONSTRAINT FK_CLASS FOREIGN KEY(CLASSID)
		REFERENCES TB_ZZJG(ORGID)
--设置表TB_JTXX中STUID为表TB_ZXXX中STUID的外键
ALTER TABLE TB_JTXX ADD
	CONSTRAINT FK_HOME FOREIGN KEY(STUID)
		REFERENCES TB_ZXXX(STUID)
--设置表TB_BYQX中STUID为表TB_ZXXX中STUID的外键
ALTER TABLE TB_BYQX ADD
	CONSTRAINT FK_JOB FOREIGN KEY(STUID)
		REFERENCES TB_ZXXX(STUID)
--设置表TB_HTXX中STUID为表TB_ZXXX中STUID的外键
ALTER TABLE TB_HTXX ADD
	CONSTRAINT FK_CONT FOREIGN KEY(STUID)
		REFERENCES TB_ZXXX(STUID)
GO

------------------------------插入数据测试----------------------------
SELECT *
--DELETE
FROM TB_ADMIN
--WHERE ADMINID LIKE '%1'
GO

INSERT INTO TB_ADMIN(ADMINID,ADMINNAME,ADMINPASSWORD)
VALUES('20100501','ERIC','abc123')
INSERT INTO TB_ADMIN(ADMINID,ADMINNAME,ADMINPASSWORD)
VALUES('20100502','ZZQ','123456')
INSERT INTO TB_ADMIN(ADMINID,ADMINNAME,ADMINPASSWORD)
VALUES('20100503','AMBER','abcdef')
GO

--插入学校当前所有院系,对应专业,对应班级
SELECT *
--DELETE
FROM TB_ZZJG
--WHERE ORGID=1
GO

--插入学校所有院系
INSERT INTO TB_ZZJG(ORGNAME,ORGPID)
VALUES('计算机学院',NULL)
INSERT INTO TB_ZZJG(ORGNAME,ORGPID)
VALUES('电子工程学院',NULL)
INSERT INTO TB_ZZJG(ORGNAME,ORGPID)
VALUES('化学与环境工程学院',NULL)
INSERT INTO TB_ZZJG(ORGNAME,ORGPID)
VALUES('机械工程学院',NULL)
INSERT INTO TB_ZZJG(ORGNAME,ORGPID)
VALUES('工商管理学院',NULL)
INSERT INTO TB_ZZJG(ORGNAME,ORGPID)
VALUES('文学院',NULL)
INSERT INTO TB_ZZJG(ORGNAME,ORGPID)
VALUES('政法学院',NULL)
INSERT INTO TB_ZZJG(ORGNAME,ORGPID)
VALUES('师范学院',NULL)
INSERT INTO TB_ZZJG(ORGNAME,ORGPID)
VALUES('经济贸易系',NULL)
INSERT INTO TB_ZZJG(ORGNAME,ORGPID)
VALUES('外语系',NULL)
INSERT INTO TB_ZZJG(ORGNAME,ORGPID)
VALUES('体育系',NULL)
INSERT INTO TB_ZZJG(ORGNAME,ORGPID)
VALUES('建筑工程系',NULL)
GO
--插入计算机学院的所有专业
INSERT INTO TB_ZZJG(ORGNAME,ORGPID)
SELECT '计算机科学与技术',(SELECT ORGID FROM TB_ZZJG WHERE ORGNAME='计算机学院' )
UNION
SELECT '软件工程',(SELECT ORGID FROM TB_ZZJG WHERE ORGNAME='计算机学院' )
UNION
SELECT '计算机应用',(SELECT ORGID FROM TB_ZZJG WHERE ORGNAME='计算机学院' )
UNION
SELECT '信息与计算机科学',(SELECT ORGID FROM TB_ZZJG WHERE ORGNAME='计算机学院' )
GO
--插入计算机科学与技术专业部分班级
INSERT INTO TB_ZZJG(ORGNAME,ORGPID)
SELECT '计算机科学与技术一班',(SELECT ORGID FROM TB_ZZJG WHERE ORGNAME='计算机科学与技术' )
UNION
SELECT '计算机科学与技术二班',(SELECT ORGID FROM TB_ZZJG WHERE ORGNAME='计算机科学与技术' )
UNION
SELECT '计算机科学与技术三班',(SELECT ORGID FROM TB_ZZJG WHERE ORGNAME='计算机科学与技术' )
GO

/*DELETE
FROM TB_ZZJG
WHERE ORGID=14
GO*/
-----------------------------------------------完成部分------------------------------------------------------

--插入计算机学院计算机科学与技术专业班级成员
SELECT *
FROM TB_ZXXX

INSERT INTO TB_ZXXX(STUID,STUNAME,CLASSID,STUPASSWORD,STUKH,STUSEX,STUPICTURE,STUCARD,STUNATION,STUGRADE,STUMOBILE)
SELECT '',(SELECT ORGID FROM TB_ZZJG WHERE ORGNAME='计算机科学与技术' )

--VALUES('200741402138','东莞证券','东莞市莞城','523800','0769-6218200')
GO

--登陆日志表初始化为空
SELECT *
FROM TB_DLRZ
GO

--插入计算机学院计算机科学与技术专业班级某个成员家庭信息
SELECT *
FROM TB_JTXX

--插入计算机学院计算机科学与技术专业班级某个成员毕业去向
SELECT *
FROM TB_BYQX

--插入计算机学院计算机科学与技术专业班级某个成员合同信息
SELECT *
FROM TB_HTXX

GO
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: