SQL查询语句
CREATETABLEstudent(stuIDchar(10)PRIMARYKEYNOTNULL,stuNameVarchar(10)NOTNULL,majorVarc...
CREATE TABLE student
(
stuID char(10) PRIMARY KEY NOT NULL,
stuName Varchar(10) NOT NULL,
major Varchar(50) NOT NULL,
)
GO
CREATE TABLE book
(
BID char(10) PRIMARY KEY NOT NULL,
title char(50) NOT NULL,
author char(20) NOT NULL,
)
GO
CREATE TABLE borrow
(
borrowID char(10) PRIMARY KEY NOT NULL,
stuID char(10) NOT NULL,
BID char(10) NOT NULL,
T_time datetime NOT NULL,
B_time datetime NOT NULL,
)
GO
ALTER TABLE borrow
ADD CONSTRAINT stuID
FOREIGN KEY(stuID) REFERENCES student(stuID)
ALTER TABLE borrow
ADD CONSTRAINT BID
FOREIGN KEY(BID) REFERENCES book(BID)
insert into student values(1001,'林林','计算机')
insert into student values(1002,'白杨','计算机')
insert into student values(1003,'兰兰','计算机')
insert into student values(1004,'北漂的雪','工商管理')
insert into student values(1005,'五月','数学')
insert into book values(001,'变形金刚','请问')
insert into book values(002,'指环王','撒的理')
insert into book values(003,'哈利波特','请更富')
insert into borrow values(3001,1001,001,2007-12-26,2007-12-28)
insert into borrow values(3002,1001,002,2007-12-26,2007-12-28)
insert into borrow values(3003,1001,003,2007-12-26,2007-12-28)
insert into borrow values(3004,1002,001,2007-12-29,2007-12-30)
insert into borrow values(3005,1003,003,2007-12-10,2007-12-11)
insert into borrow values(3006,1003,002,2007-12-10,2007-12-11)
insert into borrow values(3007,1005,002,2007-12-16,2007-12-18)
1) 查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的学生编号、学生名称、图书编号、图书名称、借出日期;参考查询结果如下图所示:
2) 查询所有借过图书的学生编号、学生名称、专业;
3) 查询借过作者为“安意如”的图书的学生姓名、图书名称、借出日 期、归还日期;
4) 查询目前借书但未归还图书的学生名称及未还图书数量;参考查询 展开
(
stuID char(10) PRIMARY KEY NOT NULL,
stuName Varchar(10) NOT NULL,
major Varchar(50) NOT NULL,
)
GO
CREATE TABLE book
(
BID char(10) PRIMARY KEY NOT NULL,
title char(50) NOT NULL,
author char(20) NOT NULL,
)
GO
CREATE TABLE borrow
(
borrowID char(10) PRIMARY KEY NOT NULL,
stuID char(10) NOT NULL,
BID char(10) NOT NULL,
T_time datetime NOT NULL,
B_time datetime NOT NULL,
)
GO
ALTER TABLE borrow
ADD CONSTRAINT stuID
FOREIGN KEY(stuID) REFERENCES student(stuID)
ALTER TABLE borrow
ADD CONSTRAINT BID
FOREIGN KEY(BID) REFERENCES book(BID)
insert into student values(1001,'林林','计算机')
insert into student values(1002,'白杨','计算机')
insert into student values(1003,'兰兰','计算机')
insert into student values(1004,'北漂的雪','工商管理')
insert into student values(1005,'五月','数学')
insert into book values(001,'变形金刚','请问')
insert into book values(002,'指环王','撒的理')
insert into book values(003,'哈利波特','请更富')
insert into borrow values(3001,1001,001,2007-12-26,2007-12-28)
insert into borrow values(3002,1001,002,2007-12-26,2007-12-28)
insert into borrow values(3003,1001,003,2007-12-26,2007-12-28)
insert into borrow values(3004,1002,001,2007-12-29,2007-12-30)
insert into borrow values(3005,1003,003,2007-12-10,2007-12-11)
insert into borrow values(3006,1003,002,2007-12-10,2007-12-11)
insert into borrow values(3007,1005,002,2007-12-16,2007-12-18)
1) 查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的学生编号、学生名称、图书编号、图书名称、借出日期;参考查询结果如下图所示:
2) 查询所有借过图书的学生编号、学生名称、专业;
3) 查询借过作者为“安意如”的图书的学生姓名、图书名称、借出日 期、归还日期;
4) 查询目前借书但未归还图书的学生名称及未还图书数量;参考查询 展开
1个回答
展开全部
借书表有两个错误:
1.B_TIME如果不能为空,那么就不会有未还的书,那么第四个题就没法做了,再说不能为空也是不符合现实的,所以要把不能为空去掉,让这一列可以为空
2.在插入时间的时候,要用单引号引起来,我直接拷的你的代码,时间在数据库里成了1905年几月几日了。
下面的过程我都运行过了,直接拷过去就可以执行。第三题数据有点问题。
/*查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的学生编号、学生名称、图书编号、图书名称、借出日期*/
select student.stuID '学生编号',stuName '学生名称',book.bid '图书编号',title '图书名称',t_time '借出时间'
from student inner join borrow on(borrow.stuID=student.stuID) inner join book on (borrow.bid=book.bid)
where major='计算机' and T_time between '2007-12-15' and '2008-1-8'
--结果有四行数据
/* 查询所有借过图书的学生编号、学生名称、专业;*/
select student.stuid '学生编号',stuname '学生名称',major '专业'
from student inner join borrow on (student.stuid=borrow.stuid)
group by student.stuid,stuName,major
--结果有四条数据
/* 查询借过作者为“安意如”的图书的学生姓名、图书名称、借出日 期、归还日期;*/
select stuName '学生姓名',title '图书名称',t_time '借出日期',b_time '归还日期'
from student inner join borrow on(borrow.stuID=student.stuID) inner join book on (borrow.bid=book.bid)
where author='安意如'
--没有安意如的书,改成‘请更富’有两条结果
/* 查询目前借书但未归还图书的学生名称及未还图书数量*/
--你的borrow表的b_time应该是归还日期吧,可是你全部设置为不能为空,也就是说必须要有数据,
--这样就没有不还书的学生了,所以
--b_time应该可以为空,表示借书未还。
select stuName '学生姓名',count(student.stuID)'未还数量'
from student inner join borrow on (student.stuid=borrow.stuID)
where b_time is null
group by stuName
--这个我改数据后试过了
1.B_TIME如果不能为空,那么就不会有未还的书,那么第四个题就没法做了,再说不能为空也是不符合现实的,所以要把不能为空去掉,让这一列可以为空
2.在插入时间的时候,要用单引号引起来,我直接拷的你的代码,时间在数据库里成了1905年几月几日了。
下面的过程我都运行过了,直接拷过去就可以执行。第三题数据有点问题。
/*查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的学生编号、学生名称、图书编号、图书名称、借出日期*/
select student.stuID '学生编号',stuName '学生名称',book.bid '图书编号',title '图书名称',t_time '借出时间'
from student inner join borrow on(borrow.stuID=student.stuID) inner join book on (borrow.bid=book.bid)
where major='计算机' and T_time between '2007-12-15' and '2008-1-8'
--结果有四行数据
/* 查询所有借过图书的学生编号、学生名称、专业;*/
select student.stuid '学生编号',stuname '学生名称',major '专业'
from student inner join borrow on (student.stuid=borrow.stuid)
group by student.stuid,stuName,major
--结果有四条数据
/* 查询借过作者为“安意如”的图书的学生姓名、图书名称、借出日 期、归还日期;*/
select stuName '学生姓名',title '图书名称',t_time '借出日期',b_time '归还日期'
from student inner join borrow on(borrow.stuID=student.stuID) inner join book on (borrow.bid=book.bid)
where author='安意如'
--没有安意如的书,改成‘请更富’有两条结果
/* 查询目前借书但未归还图书的学生名称及未还图书数量*/
--你的borrow表的b_time应该是归还日期吧,可是你全部设置为不能为空,也就是说必须要有数据,
--这样就没有不还书的学生了,所以
--b_time应该可以为空,表示借书未还。
select stuName '学生姓名',count(student.stuID)'未还数量'
from student inner join borrow on (student.stuid=borrow.stuID)
where b_time is null
group by stuName
--这个我改数据后试过了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |