小工具知识网

当前位置: 首页 > 行业知识 > 【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询

行业知识

【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询

2026-11-06 02:10:43 来源:互联网转载

 前言

⏰诗赋���音:墨激雷霆势,心随碧波飘。山河承豪情滔天,梦御风云志浩荡。

​ 欢迎大家关注点赞收藏⭐️留言

 作者留言:

欢迎来到我的【SQL Server】魔法学堂!这里是探索数据库世界的秘境,我的学习笔记博客为你打开SQL Server的魔法之门。在这里,我不仅分享SQL Server的基础知识和高级技巧,还有着涉猎实用技术和项目经验的魔法药水。无论你是新手还是数据库巫师,这个魔法堂会为你施展出奇幻的学习魔法,帮助你在SQL Server的魔法森林中踏上一场奇妙之旅。准备好了吗?跟着我,让我们一起编织属于自己的SQL Server魔法代码!

目录

 前言

第三章 关系数据库标准语言SQL

1. 数据查询

1.1 单表查询:查询仅涉及一个表

1. 选择表中的若干列

2. 选择表中的若干元组

3. ORDER BY子句

4. 聚集函数

5. GROUP BY子句

1.2 连接查询:同时涉及两个以上的表的查询

1. 等值与非等值连接查询 

2. 自身连接

3. 外连接

4. 多表连接:两个以上的表进行连接

1.3 嵌套查询

1. 带有IN谓词的子查询 

2. 带有比较运算符的子查询

3.带有ANY(SOME)或ALL谓词的子查询

4.带有EXISTS谓词的子查询

1.4 集合查询

1.5基于派生表的查询

1.6 Select语句的一般形式 

2. 数据修改

2.1  插入数据

2.2  修改数据

3. 数据更新

4. 空值的处理

总结


第三章 关系数据库标准语言SQL

1. 数据查询

语句格式
SELECT [ALL|DISTINCT] [,] …

FROM [, ]…|(SELECT 语句)      

                   [AS]

[ WHERE ]

[ GROUP BY [ HAVING ] ]

[ ORDER BY [ ASC|DESC ] ];

说明:

  • SELECT子句:指定要显示的属性列
  • FROM子句:指定查询对象(基本表或视图)
  • WHERE子句:指定查询条件
  • GROUP BY子句:对查询结果按指定列的值分组,该属性列值相等的元组为一个组。通常会在每组中作用聚集函数。
  • HAVING短语:只有满足指定条件的组才予以输出
  • ORDER BY子句:对查询结果表按指定列值的升序或降序排序 

    1.1 单表查询:查询仅涉及一个表

    1. 选择表中的若干列

    查询指定列:

    【1】查询全体学生的学号与姓名。

            SELECT Sno,Sname

            FROM Student; 

     
    【2】查询全体学生的姓名、学号、所在系。

            SELECT Sname,Sno,Sdept

            FROM Student;

    查询全部列:在SELECT关键字后面列出所有列名 ,将指定为  *

    【3】查询全体学生的详细记录

    SELECT  Sno,Sname,Ssex,Sage,Sdept 

    FROM Student; 

    或

    SELECT  *

    FROM Student; 

    查询经过计算的值 :SELECT子句的不仅可为表中的属性列,也可是表达式
    【4】查全体学生的姓名及其出生年份。

    SELECT Sname,2014-Sage          /*假设当时为2014年*/

    FROM Student;

    输出结果:

                Sname   2014-Sage

                   李勇         1994

                   刘晨         1995

                   王敏         1996

                   张立         1995 

    【5】查询全体学生的姓名、出生年份和所在的院系,要求用小写字母表示系名。

    SELECT Sname,'Year of Birth: ',2014-Sage,LOWER(Sdept)

    FROM Student;

    输出结果:

      Sname   'Year of Birth:'  2014-Sage   LOWER(Sdept)

     

          李勇    Year of Birth:    1994           cs

          刘晨    Year of Birth:    1995           cs

          王敏    Year of Birth:    1996           ma

          张立    Year of Birth:    1995          is 

    【6】使用列别名改变查询结果的列标题:

         SELECT Sname NAME,'Year of Birth:'  BIRTH,

           2014-Sage  BIRTHDAY,LOWER(Sdept)  DEPARTMENT

        FROM Student;

    输出结果:

        NAME      BIRTH         BIRTHDAY   DEPARTMENT

         李勇    Year of Birth:    1994             cs

         刘晨    Year of Birth:    1995             cs

         王敏    Year of Birth:    1996             ma

         张立    Year of Birth:    1995             is

    2. 选择表中的若干元组

    消除取值重复的行,如果没有指定DISTINCT关键词,则缺省为ALL 
    【1】查询选修了课程的学生学号。

        SELECT Sno   FROM SC;

        等价于:

        SELECT ALL  Sno  FROM SC;

        执行上面的SELECT语句后,结果为: 

                            Sno

                        201215121

                        201215121

                        201215121

                        201215122

                        201215122

    指定DISTINCT关键词,去掉表中重复的行 

       SELECT DISTINCT Sno

        FROM SC; 

        执行结果:

                            Sno

                        201215121

                        201215122

    【1】查询计算机科学系全体学生的名单。

        SELECT Sname

        FROM     Student

        WHERE  Sdept=‘CS’; 
    【1】查询所有年龄在20岁以下的学生姓名及其年龄。

         SELECT Sname,Sage 

         FROM     Student    

         WHERE  Sage 【1】查询考试成绩有不及格的学生的学号。

    SELECT DISTINCT Sn

    FROM  SC

    WHERE Grade=88; 

    ③执行这个查询,得到

                (201215121,1)

                (201215121,3) 

    然后外层查询取出下一个元组重复上述①至③步骤,直到外层的SC元组全部处理完。结果:

                (201215121,1)

                (201215121,3)

                (201215122,2)


    3.带有ANY(SOME)或ALL谓词的子查询

    使用ANY或ALL谓词时必须同时使用比较运算

    语义为:

    • > ANY    大于子查询结果中的某个值       
    • > ALL    大于子查询结果中的所有值
    • >= ANY    大于等于子查询结果中的某个值    
    • >= ALL    大于等于子查询结果中的所有值

上一篇:宝塔面板目录操作秘籍,运行指南助你轻松掌握目录功能!

下一篇:苹果APP分发秘籍,轻松推广,让你的应用飞速走红!