SQL存储过程实例详解
本文用3个题目,从建立 数据库到创建存储过程,详细讲解数据库的功能。题目1
学校 图书馆借书信息管理 系统建立三个表:学生信息表:student
| 字段名称 |
数据类型 |
说明 |
| stuID |
char(10) |
学生编号,主键 |
| stuName |
Varchar(10) |
学生名称 |
| major |
Varchar(50) |
专业 |
| 字段名称 |
数据类型 |
说明 |
| stuID |
char(10) |
学生编号,主键 |
| stuName |
Varchar(10) |
学生名称 |
| major |
Varchar(50) |
专业 |
| 字段名称 |
数据类型 |
说明 |
| borrowID |
char(10) |
借书编号,主键 |
| stuID |
char(10) |
学生编号,外键 |
| BID |
char(10) |
图书编号,外键 |
| T_time |
datetime |
借书日期 |
| B_time |
datetime |
还书日期 |
1) 查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的学生编号、学生名称、图书编号、图书名称、借出日期;参考查询结果如下图所示:
2) 查询所有借过图书的学生编号、学生名称、专业;参考查询结果如下图所示:
3) 查询借过作者为“安意如”的图书的学生姓名、图书名称、借出日期、归还日期;参考查询结果如下图所示:
4) 查询目前借书但未归还图书的学生名称及未还图书数量;参考查询结果如下图所示:
附加:建表语句:
USE master
GO
/*$$$$$$$$$$$$$建库$$$$$$$$$$$$$$$$$$$$$$$$*/
--检验数据库是否存在,如果为真,删除此数据库--
IF exists(SELECT * FROM sysdatabases WHERE name='BOOK')
DROP DATABASE BOOK
GO
CREATE DATABASE BOOK
GO
--建数据表--
USE BOOK
GO
CREATE TABLE student --学生信息表
(
stuID CHAR(10) primary key, --学生编号
stuName CHAR(10) NOT NULL , --学生名称
major CHAR(50) NOT NULL --专业
)
GO
CREATE TABLE book --图书表
(
BID CHAR(10) primary key, --图书编号
title CHAR(50) NOT NULL, --书名
author CHAR(20) NOT NULL, --作者
)
GO
CREATE TABLE borrow --借书表
(
borrowID CHAR(10) primary key, --借书编号
stuID CHAR(10) foreign key(stuID) references student(stuID), --学生编号
BID CHAR(10) foreign key(BID) references book(BID),--图书编号
T_time datetime NOT NULL, --借出日期
B_time datetime --归还日期
)
GO
--学生信息表中插入数据--
INSERT INTO student(stuID,stuName,major)VALUES('1001','林林','计算机')
INSERT INTO student(stuID,stuName,major)VALUES('1002','白杨','计算机')
INSERT INTO student(stuID,stuName,major)VALUES('1003','虎子','英语')
INSERT INTO student(stuID,stuName,major)VALUES('1004','北漂的雪','工商管理')
INSERT INTO student(stuID,stuName,major)VALUES('1005','五月','数学')
--图书信息表中插入数据--
INSERT INTO book(BID,title,author)VALUES('B001','人生若只如初见','安意如')
INSERT INTO book(BID,title,author)VALUES('B002','入学那天遇见你','晴空')
INSERT INTO book(BID,title,author)VALUES('B003','感谢折磨你的人','如娜')
INSERT INTO book(BID,title,author)VALUES('B004','我不是教你诈','刘庸')
INSERT INTO book(BID,title,author)VALUES('B005','英语四级','白雪')
--借书信息表中插入数据--
INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T001','1001','B001','2007-12-26',null)
INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T002','1004','B003','2008-1-5',null)
INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T003','1005','B001','2007-10-8','2007-12-25')
INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T004','1005','B002','2007-12-16','2008-1-7')
INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T005','1002','B004','2007-12-22',null)
INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T006','1005','B005','2008-1-6',null)
INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T007','1002','B001','2007-9-11',null)
INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T008','1005','B004','2007-12-10',null)
INSERT INTO borrow(borrowID,stuID,BID,T_time,B_time)VALUES('T009','1004','B005','2007-10-16','2007-12-18')
INSERT INTO borrow(borrowID,stuID,BID,T_time,B