👨💻个人主页:@元宇宙-秩沅
hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!
本文由 秩沅 原创
**收录于专栏 数据库
⭐查阅必备–常用的SQL语句⭐
文章目录
- ⭐查阅必备--常用的SQL语句⭐
- 一,关键语句大全
- 👨💻 *
- 例题十四12.查询数据库中共有多少个班级。
- 👨💻distinct
- 👨💻WHERE
- 👨💻LIKE
- 👨💻HAVING
- 👨💻GROUP BY
- 👨💻聚合函数
- 👨💻内连接INNER
- 👨💻外连接 LEFT AND RIHT
- 👨💻子查询
- 👨💻连接查询
- 👨💻数据更新
- 二,例题详情和详解
- 👨💻👍1.查询各位学生的学号、班级和姓名。
- 👨💻👍2.查询课程的全部信息。
- 👨💻👍3.查询数据库中有哪些专业班级。
- 👨💻👍4.查询学时数大于60的课程信息。
- 👨💻👍5.查询在1986年出生的学生的学号、姓名和出生日期。
- 👨💻👍6.查询三次作业的成绩都在80分以上的学号、课程号。
- 👨💻👍7.查询姓张的学生的学号、姓名和专业班级。
- 👨💻👍8.查询05级的男生信息。
- 在这里插入图片描述
- 👨💻👍9.查询没有作业成绩的学号和课程号。 \
- 👨💻👍10.查询学号为0538的学生的作业1总分。
- 在这里插入图片描述
- 👨💻👍11.查询选修了K001课程的学生人数。
- 👨💻👍12.查询数据库中共有多少个班级
- 在这里插入图片描述
- 👨💻👍13.查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分
- 👨💻👍14.查询于兰兰的选课信息,列出学号、姓名、课程名(使用两种连接查询的方式)
- 👨💻👍15.查询与“吕布”同一班级的学生信息
- 👨💻👍16.查询比“炼丹课”学时多的课程信息
一,关键语句大全
👨💻 *
1.作用:
选择全部元素输出
2.相关例题:
例题二 和 例题十四
3.例子:
SELECT * FROM Course
例题十四12.查询数据库中共有多少个班级。
👨💻distinct
1.作用:
去除重复的
2.相关例题 :
例题十二
3.例子:
SELECT COUNT(DISTINCT Sdep_class) FROM Student
👨💻WHERE
1.作用:
限制条件,先筛选符合条件再进行分组
2.相关例题 :
所有例题都可参考
3.例子:
SELECT Grade1 FROM SC WHERE Sno = 0538 ;
👨💻LIKE
1.作用:
模糊查询,匹配字符串查询 ,前面娅佩搭配如“WHERE ”语句的使用
① _ ----按单个字符进行查询
② % -----按0个或者多个字符进行查询
③[ ] -----随机匹配括号里面任意的字符
④[ ^ ] ----不匹配括号里面的任意字符
2.相关例题 :
例题七 和 例题八
3.例子 :
SELECT Sno,Sname ,Sdep_class FROM Student
WHERE Sname LIKE ‘张%’;
👨💻HAVING
1.作用:
先分组再进行条件
2.相关例题 :
例题十三
3.例子:
SELECT Sno, AVG(Grade1), AVG(Grade2), AVG(Grade3) FROM SC
GROUP BY Sno HAVING COUNT(DISTINCT Cno)>=3 ;**
👨💻GROUP BY
1.作用:
分组语句 ,可以和 HAVING 配合使用
2.相关例题 :
例题十三
3.例子:
SELECT Sno, AVG(Grade1), AVG(Grade2), AVG(Grade3) FROM SC
GROUP BY Sno HAVING COUNT(DISTINCT Cno)>=3 ;
👨💻聚合函数
1.作用:
①COUNT(*)–统计元组个数
②COUNT(DISTINCT XX)—统计元组个数并且去除XX重复列
③SUM(XX) ----统计XX列的和
④AVG(XX)-----统计XX列的平均值
⑤MAX(XX)----统计XX列的最大值
⑥MIN(XX)-----统计XX列的最小值
2.相关例题 :
例题十一,十二,十三
3.例子:
SELECT COUNT(DISTINCT Sdep_class) FROM Student
👨💻内连接INNER
1.作用:
将多个表进行连接
SELECT XX FROM 表一 + 拟名 INNER JOIN 表二 + 拟名 ON 链接条件
2.相关例题 :
例题十四
3.例子:
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 = ‘于兰兰’ ;
👨💻外连接 LEFT AND RIHT
1.作用:
左连接:SELECT XX FROM 表一 + 拟名LEFT JOIN 表二 + 拟名 ON 链接条件
右连接:SELECT XX FROM 表一 + 拟名 RIGHT JOIN 表二 + 拟名 ON 链接条件
2.相关例题 :
例题十四
3.例子:
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 = ‘于兰兰’ ;
👨💻子查询
1.作用:
也称为内层查询
2.WHERE <列名> [NOT ] IN (子查询)\
例子: SELECT * FROM student
WHERE Sdep IN (SELECT Sdep FROM student WHERE Sname=‘切尔西’)
题目:第十五题
3. WHERE <列名> 比较运算符(子查询)
例子: SELECT * FROM Course
WHERE pe=riod > (SELECT period FROM Course WHERE name = ‘蓝色妖姬’
题目:第十六题
4.带有ANY 和ALL的子查询
见图如下:
例子:
SELECT Sno ,Grade FROM SC WHERE Cno = ‘c04’ AND Grade > ALL(SELECT Grade FORM SC WHERE Cno = ‘c03’ ) ;
👨💻连接查询
1作用
–连接查询,连接同一个表或者多个表,进行查询
2,例子
SELECT s1.* FROM Student AS s1 ,Student AS s2
WHERE s2.Sname = ‘切尔西’ AND s1.Sdep_class = s2.Sdep_class
👨💻数据更新
1.插入数据:
INSERT INTO Student VALUES (11112 ,‘吕布’,‘男’,‘战士’,‘1991-01-01’,‘’);
2.更新数据 :
UPDATE Cco SET age = 2*age; //将年龄变成原来的两倍
3.删除数据:
DELETE FROM Student WHERE Sname = ‘吕布’; //删除所有关于吕布的数据
二,例题详情和详解
👨💻👍1.查询各位学生的学号、班级和姓名。
语句
SELECT Sno,Sname,Sdep_class FROM Student
结果
👨💻👍2.查询课程的全部信息。
语句
SELECT * FROM Course
结果
👨💻👍3.查询数据库中有哪些专业班级。
语句
SELECT distinct Sdep_class FROM Student
结果
👨💻👍4.查询学时数大于60的课程信息。
语句
SELECT * FROM Course
WHERE Credit > 60
结果
👨💻👍5.查询在1986年出生的学生的学号、姓名和出生日期。
语句
SELECT Sno,Sname,Sbirthday FROM Student
WHERE Sbirthday LIKE ‘1986%’ ;
结果
👨💻👍6.查询三次作业的成绩都在80分以上的学号、课程号。
语句
ELECT Sno,Cno FROM SC
WHERE Grade1 > 80 and Grade2 > 80 and Grade3 > 80 ;
结果
👨💻👍7.查询姓张的学生的学号、姓名和专业班级。
语句
SELECT Sno,Sname ,Sdep_class FROM Student
WHERE Sname LIKE ‘张%’;
结果
👨💻👍8.查询05级的男生信息。
语句
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 = ‘男’;
结果
👨💻👍9.查询没有作业成绩的学号和课程号。 \
语句
SELECT Sno,Cno FROM SC
WHERE Grade1 = NULL or Grade2 = NULL or Grade3 = NULL ;
结果
👨💻👍10.查询学号为0538的学生的作业1总分。
语句
SELECT Grade1 FROM SC WHERE Sno = 0538 ;
结果
👨💻👍11.查询选修了K001课程的学生人数。
语句
SELECT COUNT(DISTINCT Sno) FROM SC WHERE Cno =‘K001’;
结果
👨💻👍12.查询数据库中共有多少个班级
语句
SELECT COUNT(DISTINCT Sdep_class) FROM Student
结果
👨💻👍13.查询选修三门以上(含三门)课程的学生的学号和作业1平均分、作业2平均分和作业3平均分
语句
SELECT Sno, AVG(Grade1), AVG(Grade2), AVG(Grade3) FROM SC
GROUP BY Sno HAVING COUNT(DISTINCT Cno)>=3 ;
结果
👨💻👍14.查询于兰兰的选课信息,列出学号、姓名、课程名(使用两种连接查询的方式)
语句
①内连接
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 = ‘于兰兰’
结果
👨💻👍15.查询与“吕布”同一班级的学生信息
语句
SELECT * FROM student
WHERE Sdep IN (SELECT Sdep FROM student WHERE Sname=‘吕布’)
结果
👨💻👍16.查询比“炼丹课”学时多的课程信息
语句
SELECT * FROM Couy
WHERE P > (SELECT P FROM Couye WHERE Cname = ‘炼丹课’ )
结果
你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!