zl程序教程

您现在的位置是:首页 >  后端

当前栏目

SQL语句记了又忘?常用的SQL语句,配语句和图解超详细o

图解SQL 详细 常用 语句
2023-09-11 14:19:58 时间

在这里插入图片描述

👨‍💻个人主页:@元宇宙-秩沅

hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

本文由 秩沅 原创

收录于专栏 SQL server

目录

一,*

二,distinct

三,WHERE

四,LIKE

五,HAVING

六,GROUP BY

七,内连接

八,聚合函数

九,内连接INNER

十,外连接 LEFT AND RIHT

十一,例题和语句详解

0.例题表格数据

1.查询各位学生的学号、班级和姓名。

2.查询课程的全部信息。

3.查询数据库中有哪些专业班级。

4.查询学时数大于60的课程信息。

5.查询在1986年出生的学生的学号、姓名和出生日期。

6.查询三次作业的成绩都在80分以上的学号、课程号。  

7.查询姓张的学生的学号、姓名和专业班级。

8.查询05级的男生信息。

9.查询没有作业成绩的学号和课程号。 

10.查询学号为0538的学生的作业1总分。 

11.查询选修了K001课程的学生人数。 

12.查询数据库中共有多少个班级。

13.查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分。

14.查询于兰兰的选课信息,列出学号、姓名、课程名(使用两种连接查询的方式)。

一,*

作用: 选择全部元素输出 -

例题二2.查询课程的全部信息。

例题十四12.查询数据库中共有多少个班级。

二,distinct

作用:去除重复的

例题十二12.查询数据库中共有多少个班级。

三,WHERE

作用:限制条件,先筛选符合条件再进行分组

-全部例题均可参考

四,LIKE

作用:模糊查询,匹配字符串查询 ,前面娅佩搭配如“WHERE ”语句的使用

① _ ----按单个字符进行查询

② % -----按0个或者多个字符进行查询

③[ ] -----随机匹配括号里面任意的字符

④[ ^ ] ----不匹配括号里面的任意字符

例题七7.查询姓张的学生的学号、姓名和专业班级。

-例题八8.查询05级的男生信息。

五,HAVING

先分组再进行条件

-例题十三13.查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分。

六,GROUP BY

作用:分组语句 ,可以和 HAVING 配合使用

-例题十三13.查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分。

七,内连接

作用:SELECE xx FROM 表1 a INNER JOIN 表2 ON 条件

例题十四14.查询于兰兰的选课信息,列出学号、姓名、课程名(使用两种连接查询的方式)。


八,聚合函数

作用:

①COUNT(*)--统计元组个数

②COUNT(DISTINCT XX)---统计元组个数并且去除XX重复列

③SUM(XX) ----统计XX列的和

④AVG(XX)-----统计XX列的平均值

⑤MAX(XX)----统计XX列的最大值

⑥MIN(XX)-----统计XX列的最小值

例题十一,十二,十三

11.查询选修了K001课程的学生人数。 

12.查询数据库中共有多少个班级。

13.查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分。

九,内连接INNER

作用:SELECT XX FROM 表一 + 拟名 INNER JOIN 表二 + 拟名 ON 链接条件

例题十四14.查询于兰兰的选课信息,列出学号、姓名、课程名(使用两种连接查询的方式)。

十,外连接 LEFT AND RIHT

作用:

左连接:SELECT XX FROM 表一 + 拟名LEFT JOIN 表二 + 拟名 ON 链接条件

右连接:SELECT XX FROM 表一 + 拟名 RIGHT JOIN 表二 + 拟名 ON 链接条件

例题十四14.查询于兰兰的选课信息,列出学号、姓名、课程名(使用两种连接查询的方式)。


十一,例题和语句详解

0.例题表格数据

表1.1  学生表

学号

姓名

性别

专业班级

出生日期

联系电话

0433

张艳

生物04

1986-9-13

0496

李越

电子04

1984-2-23

1381290××××

0529

赵欣

会计05

1984-1-27

1350222××××

0531

张志国

生物05

1986-9-10

1331256××××

0538

于兰兰

生物05

1984-2-20

1331200××××

0591

王丽丽

电子05

1984-3-20

1332080××××

0592

王海强

电子05

1986-11-1

表1.2  课程表

课程号

课程名

学分数

学时数

任课教师

K001

计算机图形学

2.5

40

胡晶晶

K002

计算机应用基础

3

48

任泉

K006

数据结构

4

64

马跃先

M001

政治经济学

4

64

孔繁新

S001

高等数学

3

48

赵晓尘

表1.3  学生作业表

课程号

学号

作业1成绩

作业2成绩

作业3成绩

K001

0433

60

75

75

K001

0529

70

70

60

K001

0531

70

80

80

K001

0591

80

90

90

K002

0496

80

80

90

K002

0529

70

70

85

K002

0531

80

80

80

K002

0538

65

75

85

K002

0592

75

85

85

K006

0531

80

80

90

K006

0591

80

80

80

M001

0496

70

70

80

M001

0591

65

75

75

S001

0531

80

80

80

S001

0538

60

80

1.查询各位学生的学号、班级和姓名。

(1)语句

SELECT Sno,Sname,Sdep_class FROM Student

  1. 结果

2.查询课程的全部信息。

(1)语句

SELECT * FROM Course

  1. 结果

  

3.查询数据库中有哪些专业班级。

  1. 语句

   SELECT distinct Sdep_class FROM Student

  1. 结果

  

4.查询学时数大于60的课程信息。

(1)语句

SELECT * FROM Course  

WHERE Credit > 60

  1. 结果

5.查询在1986年出生的学生的学号、姓名和出生日期。

(1)语句

SELECT Sno,Sname,Sbirthday FROM Student

    WHERE Sbirthday  LIKE '1986%' ;   

  1. 结果

6.查询三次作业的成绩都在80分以上的学号、课程号。  

  1. 语句

    ELECT Sno,Cno FROM SC

WHERE  Grade1 > 80 and  Grade2 > 80 and  Grade3 > 80 ;

  1. 结果

                                无三次都在80分以上的

7.查询姓张的学生的学号、姓名和专业班级。

  1. 语句

SELECT Sno,Sname ,Sdep_class FROM Student

WHERE Sname LIKE '张%';

   

  1. 结果

8.查询05级的男生信息。

  1. 语句

SELECT * FROM Student S INNER JOIN SC ON S.Sno = SC.Sno

JOIN Course C ON SC.Cno=C.Cno

WHERE  S.Sno LIKE '05%' and Ssex = '男';

  1. 结果

9.查询没有作业成绩的学号和课程号。 

  1. 语句

SELECT Sno,Cno FROM SC

WHERE Grade1 = NULL or Grade2 = NULL  or Grade3 = NULL ;

(2)结果

10.查询学号为0538的学生的作业1总分。 

  1. 语句

SELECT Grade1 FROM SC

WHERE Sno = 0538 ;

(2)结果

11.查询选修了K001课程的学生人数。 

  1. 语句

SELECT COUNT(DISTINCT Sno) FROM SC

WHERE Cno ='K001';

(2)结果

12.查询数据库中共有多少个班级。

  1. 语句

SELECT COUNT(DISTINCT Sdep_class) FROM Student

(2)结果

13.查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分。

语句

SELECT Sno, AVG(Grade1), AVG(Grade2), AVG(Grade3) FROM SC

GROUP BY Sno HAVING COUNT(DISTINCT Cno)>=3 ;

(2)结果

14.查询于兰兰的选课信息,列出学号、姓名、课程名(使用两种连接查询的方式)。

(1)语句

①内连接

SELECT S.Sno ,C.Cno ,S.Sname ,D.* FROM Student S INNER JOIN SC C ON S.Sno = C.Sno

JOIN Course D ON  C.Cno = D.Cno

WHERE Sname = '于兰兰'   

②外连接

SELECT S.Sno ,C.Cno ,S.Sname ,D.* FROM Student S LEFT JOIN SC C ON S.Sno = C.Sno

 LEFT JOIN Course D ON  C.Cno = D.Cno

WHERE Sname = '于兰兰'

(2)结果

你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!
栓Q
在这里插入图片描述