SQL如何导入数据以及第一次上机作业

如何导入excel数据

首先得学会导入数据
使用excel格式不需要改成其它格式(如csv,txt),因为你改了到时候还是会报错(实践过使用Sum统计总数一直说我数据格式有问题)
首先右键TSGL数据库->任务->导入数据
SQL如何导入数据以及第一次上机作业_第1张图片

点击next
SQL如何导入数据以及第一次上机作业_第2张图片

记得先打开Book.Excel然后再到下面这个界面
SQL如何导入数据以及第一次上机作业_第3张图片

数据源选择Microsoft Excel
Excel文件路径选择你自己所需要导入的文件数据
Excel版本选择Microsoft Excel 97-2003这个版本,然后点击next
SQL如何导入数据以及第一次上机作业_第4张图片

到选择目标界面,首先把目标选择SQL Server Native Client
然后我的是使用SQL Server身份验证
然后选择你所要导入的数据库名称,然后点击Next
SQL如何导入数据以及第一次上机作业_第5张图片

然后默认Next
SQL如何导入数据以及第一次上机作业_第6张图片

到选择源表和源视图
勾选表和视图,然后可以点击编辑映射修改参数啥的,我这里选择默认,点击Next
SQL如何导入数据以及第一次上机作业_第7张图片

点击Next
SQL如何导入数据以及第一次上机作业_第8张图片

点击Finish
SQL如何导入数据以及第一次上机作业_第9张图片

如果以下界面没有Error,那么恭喜你成功的导入了数据!
SQL如何导入数据以及第一次上机作业_第10张图片

接着刷新你所导入的表,会发现有三个表那么问题来了到底哪个才是我们所需要的呢

SQL如何导入数据以及第一次上机作业_第11张图片

这个时候你只需要把Sheet1$重命名为Book然后把其它两个表给删了就好啦(当然如果你之前里面已经有Book表的话要先删除它奥~)
所以到这里才是真正的恭喜你成功的导入了数据!!!

2第一次上机作业

接下来开始做题这是我的第一次上机作业
首先展示四个所需要导入的数据表
1.Book
SQL如何导入数据以及第一次上机作业_第12张图片
2.Reader
SQL如何导入数据以及第一次上机作业_第13张图片
3.Lend
SQL如何导入数据以及第一次上机作业_第14张图片
4.History
SQL如何导入数据以及第一次上机作业_第15张图片
1从 Reader 表中查询网络工程专业学生的借书证号、姓名和借阅数量。

USE TSGL 
GO
SELECT Lno,Rname,BorNum
FROM Reader 
WHERE Spec='网络工程'

SQL如何导入数据以及第一次上机作业_第16张图片
2查询网络工程专业学生的借书证号、姓名和借书数,将列标题显示为中文。

USE TSGL 
GO
SELECT Lno AS 借书证号,Rname AS 姓名,BorNum AS 借阅数量
FROM Reader 
WHERE Spec='网络工程'

SQL如何导入数据以及第一次上机作业_第17张图片

3从 Book 表中查询清华大学出版社出版的单价为30~40 元的图书信息,按单价进行降序排列。

USE TSGL 
GO
SELECT *
FROM Book 
WHERE Press = '清华大学出版社' AND Price >= 30 AND Price <= 40
ORDER BY Price DESC

SQL如何导入数据以及第一次上机作业_第18张图片
4 从 Book 表中查询书名中包含“计算机”三个字的图书信息。

USE TSGL 
GO
SELECT *
FROM Book 
WHERE Bname LIKE '%计算机%'

SQL如何导入数据以及第一次上机作业_第19张图片
5从Book表中查询是由姓“刘”或姓“王”作者撰写的图书信息

USE TSGL 
GO
SELECT *
FROM Book 
WHERE Author LIKE '%[刘 or 王]%'

SQL如何导入数据以及第一次上机作业_第20张图片

6 从Book 表中查询非“清华大学出版社”和“电子工业出版社”出版的图书信息

USE TSGL 
GO
SELECT *
FROM Book 
WHERE Press NOT IN ('清华大学出版社','电子工业出版社')

SQL如何导入数据以及第一次上机作业_第21张图片
7从Lend表中查询目前有借阅记录的借书证号。

USE TSGL 
GO
SELECT DISTINCT Lno
FROM Lend 
WHERE Lno IS NOT NULL

SQL如何导入数据以及第一次上机作业_第22张图片
8 从Lend表中查询目前借阅记录的信息及已借阅天数。

USE TSGL  
GO
SELECT
    L.Lno AS '读者编号',
    L.ISBN AS '图书ISBN',
    L.Barno AS '图书编号',
    L.Bordate AS '借书日期',
    H.Retdate AS '归还日期',
    DATEDIFF(DAY,L.Bordate,GETDATE()) AS '已借阅天数'
FROM
    Lend AS L
LEFT JOIN
    History AS H
ON
    L.Lno = H.Lno
    AND L.ISBN = H.ISBN
AND L.Barno = H.Barno

SQL如何导入数据以及第一次上机作业_第23张图片
9 统计馆藏图书的总册数

USE TSGL  
GO
SELECT SUM(Copynum)
FROM Book

SQL如何导入数据以及第一次上机作业_第24张图片
10 统计馆藏图书中各出版社出版的图书数量,查询结果显示各出版社名称及图书数量,按出版社的图书数量进行降序排列。

USE TSGL  
GO
SELECT Press,SUM(InvNum) AS '图书数量'
FROM Book 
GROUP BY Press 
ORDER BY '图书数量' DESC

SQL如何导入数据以及第一次上机作业_第25张图片
11 查询馆藏图书中出版图书数不少于三种的出版社,结果显示出版社名称和图书数量。

USE TSGL  
GO
SELECT Press,SUM(Copynum)
FROM Book  
GROUP BY Press
HAVING COUNT(Press)>=3

SQL如何导入数据以及第一次上机作业_第26张图片
12查询借书数量最多的两位读者的借书证号和借书数量。

USE TSGL  
GO
SELECT TOP 2 Lno,BorNum
FROM Reader
ORDER BY BorNum DESC

SQL如何导入数据以及第一次上机作业_第27张图片
13 每20元为一个价位段,从Book表中统计每个价位段中图书的数量,即在馆图书中单价在[0,20),[20,40),[40,60),…的图书数量

USE TSGL  
GO
SELECT
    PriceRange AS '价位段',
    COUNT(*) AS '图书数量'
FROM (
    SELECT
        Price,
        CASE
            WHEN 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 PriceRange
    FROM Book
) AS PriceRanges
GROUP BY PriceRange;

SQL如何导入数据以及第一次上机作业_第28张图片
14查询 Reader 表中每个系部的男女生人数,按系部和性别同时进行排序。

USE TSGL  
GO
SELECT Dept,Sex,COUNT(*)AS'人数'
FROM Reader
GROUP BY Dept,Sex
ORDER BY Dept,Sex

SQL如何导入数据以及第一次上机作业_第29张图片
15查询 Reader 表中计算机系各学生的借书证号、姓名和评价,评价是对“借阅数量”内容进行如下替换:若借书数量为0,替换为“不爱学习”;若借书数量小于2,替换为“不够勤奋”;若借书数量为3~4,替换为“勤奋”;若借书数量大于等于5,替换为“很勤奋”。

USE TSGL  
GO
SELECT Lno 借书证号,Rname 姓名,评价=
 CASE
 WHEN  BorNum = 0 THEN '不爱学习'
 WHEN  BorNum<=2 THEN '不够勤奋'
 WHEN  BorNum>=3 AND BorNum<=4 THEN'勤奋'
 WHEN  BorNum>=5 THEN '很勤奋'
 END 
FROM Reader

SQL如何导入数据以及第一次上机作业_第30张图片
16查询Reader表中每个系部的男女生人数,系部总人数以及读者总数。

USE TSGL  
GO
SELECT
    Dept AS '系部',
    SUM(CASE WHEN Sex = '男' THEN 1 ELSE 0 END) AS '男生人数',
    SUM(CASE WHEN Sex = '女' THEN 1 ELSE 0 END) AS '女生人数',
    COUNT(*) AS '系部总人数'
FROM
    Reader
GROUP BY
Dept
WITH ROLLUP;

SQL如何导入数据以及第一次上机作业_第31张图片

你可能感兴趣的:(数据库学习,sql,数据库)