您的位置:首页技术文章

SQL Server单表数据查询举例详解

【字号: 日期:2023-06-05 14:34:59浏览:4作者:馨心
目录
  • 一、向SQL Server中导入数据
  • 二、例题
    • 1.查询所有学生的全部信息
    • 2.查询学生的学号和姓名
    • 3.查询所有学生的姓名和出生年
    • 4. 查询所有学生的姓名和出生年,要求列名是汉字形式
    • 5.查询CS系的所有学生信息
    • 6.查询CS系的所有男同学信息
    • 7.查询年龄在18到20之间的学生信息
    • 8.查询年龄不在18到20之间的学生信息
    • 9.查询所在系为CS和JD的学生信息
    • 10.查询姓张的学生的信息
    • 11.查询姓名只有两个字且姓李的学生的学号和姓名
    • 12.查询没有成绩的学生的学号和课程号
    • 13.消除重复行:查看CS系的年龄情况
    • 14.查询前三个同学的信息
    • 15.统计男学生人数
    • 16.统计sc表中选修过课程的学生人数(注意要去掉重复选课的学生的学号)
    • 17.从表sc中查询所有成绩中的最高分和最低分
    • 18.统计学号为1204304102的学生的总成绩和平均成绩
  • 三、小结
    • (1) 有三种方法可以指定列名
    • (2)根据名字的信息查询题目类总结
    • (3)查询知识拓展
  • 总结

    一、向SQL Server中导入数据

    导入成功之后,可以点开表格查看内容:

    (如下图即导入成功)

    其他表同理可得,也可以同时导入

    二、例题

    1.查询所有学生的全部信息

    SELECT * FROM student

    2.查询学生的学号和姓名

    SELECT sno,sname FROM student

    3.查询所有学生的姓名和出生年

    SELECT sname,YEAR(GETDATE())-sageFROM student

    4. 查询所有学生的姓名和出生年,要求列名是汉字形式

    SELECT sname 姓名,YEAR(GETDATE())-sage 出生年FROM student

    5.查询CS系的所有学生信息

    select * FROM student WHERE sdept='CS'

    6.查询CS系的所有男同学信息

    select * FROM student WHERE sdept='CS' AND ssex='男'

    7.查询年龄在18到20之间的学生信息

    (1)方法一

    select * from student where sage>=18 and sage<=20

    (2)方法二

    select * from student where sage BETWEEN '18' AND '20'

    8.查询年龄不在18到20之间的学生信息

    (1)方法一

    select * from student where sage<18 or sage>20

    (2)方法二

    select * from student where sage not BETWEEN '18' AND '20'

    9.查询所在系为CS和JD的学生信息

    (1)方法一

    select * from student where sdept='CS' or sdept='JD'

    (2)方法二

    select * from student where sdept in('CS','JD')

    10.查询姓张的学生的信息

    select * from student where sname like'张%'

    11.查询姓名只有两个字且姓李的学生的学号和姓名

    select sno,sname from student WHERE sname LIKE '李_';

    12.查询没有成绩的学生的学号和课程号

    select * from sc WHERE grade IS NULL;

    13.消除重复行:查看CS系的年龄情况

    select DISTINCT sage FROM student WHERE sdept='cs'

    14.查询前三个同学的信息

    select TOP 3 * from student

    15.统计男学生人数

    (1)方法一

    select COUNT(sno) 男生人数 from student where ssex='男'

    (2)方法二

    select COUNT(*) AS 男生人数 from student where ssex='男'

    16.统计sc表中选修过课程的学生人数(注意要去掉重复选课的学生的学号)

    select COUNT(distinct sno) from sc

    17.从表sc中查询所有成绩中的最高分和最低分

    select max(grade) 最高分,MIN(grade) 最低分 from sc

    18.统计学号为1204304102的学生的总成绩和平均成绩

    select SUM(grade) 总分,AVG(grade) 平均分 from sc where sno='1204304102'

    三、小结

    (1) 有三种方法可以指定列名

    • I. 列名 列标题(例如:sname 姓名)
    • II. 列名 AS 列标题(例如:sname AS 姓名)
    • III.列标题=列名(例如:姓名=列标题)
    select sname 姓名,YEAR(GETDATE())-sage as 出生年,院系=sdept from student

    (2)根据名字的信息查询题目类总结

    查询姓张的学生的信息

    select * from student where sname like'张%'

    查询姓黄的学生的信息(当姓氏后面只有一个字时)

    select * from student where sname like'黄_'

    查询名字中有“文”这个字的学生的信息

    select * from student where sname like'_文_'

    (3)查询知识拓展

    查询前三个同学的信息

    select TOP 3 * from student
    

    查询课程编号是‘2102’的课程分数降序排列

    select grade from sc where cno='2102' order by grade desc
    

    查询课程编号是‘2102’的课程分数降序排列的前两名

    select TOP 2 grade from sc where cno='2102' order by grade desc

    总结

    到此这篇关于SQL Server单表数据查询的文章就介绍到这了,更多相关SQLServer单表数据查询内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

    标签: MsSQL