如何导入excel数据
首先得学会导入数据
使用excel格式不需要改成其它格式(如csv,txt),因为你改了到时候还是会报错(实践过使用Sum统计总数一直说我数据格式有问题)
首先右键TSGL数据库->任务->导入数据
点击next
记得先打开Book.Excel然后再到下面这个界面
数据源选择Microsoft Excel
Excel文件路径选择你自己所需要导入的文件数据
Excel版本选择Microsoft Excel 97-2003这个版本,然后点击next
到选择目标界面,首先把目标选择SQL Server Native Client
然后我的是使用SQL Server身份验证
然后选择你所要导入的数据库名称,然后点击Next
然后默认Next
到选择源表和源视图
勾选表和视图,然后可以点击编辑映射修改参数啥的,我这里选择默认,点击Next
点击Next
点击Finish
如果以下界面没有Error,那么恭喜你成功的导入了数据!
接着刷新你所导入的表,会发现有三个表那么问题来了到底哪个才是我们所需要的呢
这个时候你只需要把Sheet1$重命名为Book然后把其它两个表给删了就好啦(当然如果你之前里面已经有Book表的话要先删除它奥~)
所以到这里才是真正的恭喜你成功的导入了数据!!!
2第一次上机作业
接下来开始做题这是我的第一次上机作业
首先展示四个所需要导入的数据表
1.Book
2.Reader
3.Lend
4.History
1从 Reader 表中查询网络工程专业学生的借书证号、姓名和借阅数量。
USE TSGL
GO
SELECT Lno,Rname,BorNum
FROM Reader
WHERE Spec='网络工程'
2查询网络工程专业学生的借书证号、姓名和借书数,将列标题显示为中文。
USE TSGL
GO
SELECT Lno AS 借书证号,Rname AS 姓名,BorNum AS 借阅数量
FROM Reader
WHERE Spec='网络工程'
3从 Book 表中查询清华大学出版社出版的单价为30~40 元的图书信息,按单价进行降序排列。
USE TSGL
GO
SELECT *
FROM Book
WHERE Press = '清华大学出版社' AND Price >= 30 AND Price <= 40
ORDER BY Price DESC
4 从 Book 表中查询书名中包含“计算机”三个字的图书信息。
USE TSGL
GO
SELECT *
FROM Book
WHERE Bname LIKE '%计算机%'
5从Book表中查询是由姓“刘”或姓“王”作者撰写的图书信息
USE TSGL
GO
SELECT *
FROM Book
WHERE Author LIKE '%[刘 or 王]%'
6 从Book 表中查询非“清华大学出版社”和“电子工业出版社”出版的图书信息
USE TSGL
GO
SELECT *
FROM Book
WHERE Press NOT IN ('清华大学出版社','电子工业出版社')
7从Lend表中查询目前有借阅记录的借书证号。
USE TSGL
GO
SELECT DISTINCT Lno
FROM Lend
WHERE Lno IS NOT NULL
8 从Lend表中查询目前借阅记录的信息及已借阅天数。
USE TSGL
GO
SELECTL.Lno AS '读者编号',L.ISBN AS '图书ISBN',L.Barno AS '图书编号',L.Bordate AS '借书日期',H.Retdate AS '归还日期',DATEDIFF(DAY,L.Bordate,GETDATE()) AS '已借阅天数'
FROMLend AS L
LEFT JOINHistory AS H
ONL.Lno = H.LnoAND L.ISBN = H.ISBN
AND L.Barno = H.Barno
9 统计馆藏图书的总册数
USE TSGL
GO
SELECT SUM(Copynum)
FROM Book
10 统计馆藏图书中各出版社出版的图书数量,查询结果显示各出版社名称及图书数量,按出版社的图书数量进行降序排列。
USE TSGL
GO
SELECT Press,SUM(InvNum) AS '图书数量'
FROM Book
GROUP BY Press
ORDER BY '图书数量' DESC
11 查询馆藏图书中出版图书数不少于三种的出版社,结果显示出版社名称和图书数量。
USE TSGL
GO
SELECT Press,SUM(Copynum)
FROM Book
GROUP BY Press
HAVING COUNT(Press)>=3
12查询借书数量最多的两位读者的借书证号和借书数量。
USE TSGL
GO
SELECT TOP 2 Lno,BorNum
FROM Reader
ORDER BY BorNum DESC
13 每20元为一个价位段,从Book表中统计每个价位段中图书的数量,即在馆图书中单价在[0,20),[20,40),[40,60),…的图书数量
USE TSGL
GO
SELECTPriceRange AS '价位段',COUNT(*) AS '图书数量'
FROM (SELECTPrice,CASEWHEN Price >= 0 AND Price < 20 THEN '[0,20)'WHEN Price >= 20 AND Price < 40 THEN '[20,40)'WHEN Price >= 40 AND Price < 60 THEN '[40,60)'WHEN Price >= 60 AND Price < 80 THEN '[60,80)'END AS PriceRangeFROM Book
) AS PriceRanges
GROUP BY PriceRange;
14查询 Reader 表中每个系部的男女生人数,按系部和性别同时进行排序。
USE TSGL
GO
SELECT Dept,Sex,COUNT(*)AS'人数'
FROM Reader
GROUP BY Dept,Sex
ORDER BY Dept,Sex
15查询 Reader 表中计算机系各学生的借书证号、姓名和评价,评价是对“借阅数量”内容进行如下替换:若借书数量为0,替换为“不爱学习”;若借书数量小于2,替换为“不够勤奋”;若借书数量为3~4,替换为“勤奋”;若借书数量大于等于5,替换为“很勤奋”。
USE TSGL
GO
SELECT Lno 借书证号,Rname 姓名,评价=CASEWHEN BorNum = 0 THEN '不爱学习'WHEN BorNum<=2 THEN '不够勤奋'WHEN BorNum>=3 AND BorNum<=4 THEN'勤奋'WHEN BorNum>=5 THEN '很勤奋'END
FROM Reader
16查询Reader表中每个系部的男女生人数,系部总人数以及读者总数。
USE TSGL
GO
SELECTDept AS '系部',SUM(CASE WHEN Sex = '男' THEN 1 ELSE 0 END) AS '男生人数',SUM(CASE WHEN Sex = '女' THEN 1 ELSE 0 END) AS '女生人数',COUNT(*) AS '系部总人数'
FROMReader
GROUP BY
Dept
WITH ROLLUP;