面试内容数据库sql
题目1
        学校图书馆借书信息管理系统建立三个表:
        学生信息表:student
| 字段名称 | 数据类型 | 说明 | 
| stuID | char(10) | 学生编号,主键 | 
| stuName | Varchar(10) | 学生名称 | 
| major | Varchar(50) | 专业 | 
| 字段名称 | 数据类型 | 说明 | 
| BID | char(10) | 学生编号,主键 | 
| title | Varchar(10) | 学生名称 | 
| author | 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) 查询目前借书但未归还图书的学生名称及未还图书数量;参考查询结果如下图所示:
标准答案:
-- 1)查询“计算机”专业学生在“2007-12-15”至“2008-1-8”时间段内借书的学生编号、学生名称、图书编号、图书名称、借出日期—
-- 2)查询所有借过图书的学生编号、学生名称、专业--
-- 3)查询借过作者为“安意如”的图书的学生姓名、图书名称、借出日期--
-- 4)查询目前借书但未归还图书的学生名称及未还图书数量--
- 
select 学生编号=stuID,学生名称=(select stuName from student where stuID=borrow.stuID),图书编号=BID,图书名称=(select title from book where BID=borrow.BID),借出日期=T_time from borrow where stuID in (select stuID from student where major='计算机') and T_time>'2007-12-15' and T_time<'2008-1-8' 
- 
select 学生编号=stuID,学生名称=stuName,专业=major from student where stuID in (select stuID from borrow) 
- 
select 学生名称=(select stuName from student where stuID=borrow.stuID),图书名称=(select title from book where BID=borrow.BID),借出日期=T_time,归还日期=B_time from borrow where BID in (select BID from book where author='安意如') 
- 
select 学生名称=(select stuName from student where stuID=borrow.stuID),借书数量=count(*) from borrow where B_time is null group by stuID 
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号