在对数据库进行了一段时间的学习后,我们可以尝试做一个数据库雏形,利用SQL语言来编码,将所学知识挪到应用板块。
毕业生照片核对系统
-
建立数据库
-
建立表(3)
-
创建存储过程(5)
-
基本操作(3*3)
-
建立数据库:
CREATE DATABASE dbs20170407211
- 建立表:
(1)建立学生信息表:
CREATE TABLE 学生信息表
(
Sno varchar(20) PRIMARY KEY,
Sname varchar(20),
Education varchar(20),
Sdept varchar(20),
Special varchar(20),
Sid varchar(20),
Photo varchar(100),
Remark varchar(100),
Addition bit
)
(2)建立学生表:
CREATE TABLE 学生表
(
Sno varchar(20) PRIMARY KEY,
Sid varchar(20),
FOREIGN KEY(Sno) REFERENCES 学生信息表(Sno)
)
(3)建立管理员表:
CREATE TABLE 管理员表
(
Adno varchar(20) PRIMARY KEY,
LoginID varchar(20),
Password varchar(20),
Rank bit,
FOREIGN KEY(Adno) REFERENCES 学生表(Sno)
)
- 创建存储过程:
(1)建立存储过程p1,管理员登录时,根据登录名和密码在管理员表中查找该用户,若用户存在,则进入系统。
CREATE PROCEDURE p1
@Adno varchar(20),
@LoginID varchar(20),
@Password varchar(20),
@Rank bit
AS SELECT @Adno=Adno FROM 管理员表
WHERE LoginID=@LoginID AND Password=@Password
(2)建立存储过程p2,学生登录时,根据学号和身份证号在学生信息表中查找该用户,若用户存在,则进入系统。
CREATE PROCEDURE p2
@Sno varchar(20),
@Sname varchar(20),
@Education varchar(20),
@Sdept varchar(20),
@Special varchar(20),
@Sid varchar(20),
@Photo varchar(100),
@Remark varchar(100),
@Addition bit
AS
SELECT @Sno=Sno FROM 学生信息表
WHERE Sname=@Sname AND Sid=@Sid
(3)建立存储过程p3用于添加毕业生信息。
CREATE PROCEDURE p3
@Sno varchar(20),
@Sname varchar(20),
@Education varchar(20),
@Sdept varchar(20),
@Special varchar(20),
@Sid varchar(20),
@Photo varchar(100),
@Remark varchar(100),
@Addition bit
AS INSERT INTO学生信息表(Sno,Sname,Education,Sdept,Special,Sid,Photo,Remark,Addition) VALUES(@Sno,@Sname,@Education,@Sdept,@Special,@Sid,@Photo,@Remark,@Addition)
(4)建立存储过程p4用于学生核对信息添加备注。
CREATE PROCEDURE p4
@Remark varchar(100)
AS
UPDATE 学生信息表
SET Remark=@Remark
(5)建立存储过程p5用于记录核对情况。
CREATE PROCEDURE p5
@Addition bit
AS
UPDATE 学生信息表
SET Addition=@Addition
- 基本操作:
1.按学院进行统计:
(1)按学院统计毕业生人数
SELECT COUNT(Sno)
FROM 学生信息表,管理员表
WHERE Rank=1
(2)统计本学院已核对人数
SELECT COUNT(Sno)
FROM 学生信息表,管理员表
WHERE Addition=1 AND Rank=1
(3)统计本学院未核对人数
SELECT COUNT(Sno)
FROM 学生信息表,管理员表
WHERE Addition=0 AND Rank=1
2.按教务处进行统计:
(1)按教务处统计毕业生人数
SELECT COUNT(Sno)
FROM 学生信息表
(2)按教务处统计已核对人数
SELECT COUNT(Sno)
FROM 学生信息表
WHERE Addition=1
GROUP BY Sno
(3)按教务处统计未核对人数
SELECT COUNT(Sno)
FROM 学生信息表
WHERE Addition=0
GROUP BY Sno
3.按专业进行统计:
(1)按专业统计毕业生人数:
SELECT Special,COUNT(Sno)
FROM 学生信息表
(2)按专业统计核对人数:
SELECT Special,COUNT(Sno)
FROM 学生信息表
WHERE Addition=1
GROUP BY Special
(3)按专业统计未核对人数:
SELECT Special,COUNT(Sno)
FROM 学生信息表
WHERE Addition=0
GROUP BY Special
说明:本系统是基于sql server 2012开发的一个系统框架,在本系统中需要添加数据才完整,虽然实用功能尚不完善,但对于数据库的初学者来说,可以算是一个非常好的练手项目。