【MySQL】从0到1学会单表查询

这篇具有很好参考价值的文章主要介绍了【MySQL】从0到1学会单表查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🎊专栏【MySQL】

🌺每日一句:后悔没用,你需要的是变的更好

⭐欢迎并且感谢大家指出我的问题

【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

文章目录

1.查询表中若干列

🍔查询全部列

🍔查询经过计算的值

🍔使用列别名改变查询结果的列标题(AS可以省略)

2.查询表中若干元组

🍔消除取值重复的行

🍔比较大小

🍔确定范围

🍔确定集合

🍔字符匹配

🍔涉及空值的查询

3.ORDER BY子句

🍔特点

🍔例1

🍔例2

4.聚焦函数

🍔(1)统计元组个数

🍔(2)统计一列中值的个数

🍔(3)计算一列值的总和(此列必须为数值型)

🍔(4)计算一列值的平均值(此列必须为数值型)

🍔(5)求一列中的最大值和最小值

5.GROUP BY子句

🍔特点

🍔HAVING短语与WHERE子句的区别


1.查询表中若干列

例如:查询全体学生的学号和姓名

select sno,sname
from student;

🍔(1)查询全部列

(例如:查询全体学生的信息)

方法一:在select关键字后面列出所有列名

代码如下👇🏻

select  sno,sname,ssex,sage,sdept
from student;

方法二:将<目标列表表达式>指定为*

代码如下👇🏻

select *
from student;

🍔(2)查询经过计算的值

select子句中的<目标列表达式>不仅可以为表中的属性列,也可以是表达式

例如:查询全体学生的姓名及其出生年份

代码如下👇🏻

select sname,2023-sage
from student;

 运行结果👇🏻

【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

🍔(3)使用列别名改变查询结果的列标题(AS可以省略)

代码如下👇🏻

SELECT Sname AS NAME,'Year of Birth:' AS BIRTH, 
       2014-Sage AS BIRTHDAY,LOWER(Sdept)  AS DEPARTMENT
	FROM Student;

运行结果👇🏻【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

2.查询表中若干元组

🍔(1)消除取值重复的行

如果没有指定DISTINCT关键字,则缺省为ALL

例如:(查询选修了课程的学生学号)

未指定DISTINCT关键字

代码如下👇🏻

SELECT sno
FROM sc;
/*
SELECT ALL sno
FROM sc;
*/

运行结果👇🏻

【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

指定DISTINCT关键字

代码如下👇🏻

SELECT DISTINCT sno
FROM sc;

运行结果👇🏻

【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

🍔(2)比较大小

例如:查询计算机科学系全体学生的名单

代码如下👇🏻

SELECT sname
FROM student
WHERE sdept='cs';

运行结果👇🏻

【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

例如:所有年龄在20岁以下的学生姓名和年龄

代码如下👇🏻

SELECT sname,sage
FROM student
WHERE sage<20;

运行结果👇🏻

【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

 例如:查询考试成绩有不及格的学生的学号

代码如下👇🏻

SELECT DISTINCT sno
FROM sc
WHERE grade<60;

🍔(3)确定范围

谓词:between   and,not between   and

例如:查询年龄在20~23岁(包括20岁和23岁)之间的学生的姓名,年龄

代码如下👇🏻

SELECT sname,sage
FROM student
WHERE sage BETWEEN 20 AND 23;

运行结果👇🏻

【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

🍔(4)确定集合

谓词: in<值表>,not in<值表>

代码如下👇🏻

SELECT sname ,ssex,sdept
FROM student
WHERE sdept IN ('CS','MA','IS');

运行结果👇🏻

【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

🍔(5)字符匹配

谓词:[not]like'<匹配串>'[ESCAPE'<换码字符>']

<匹配串>可以是一个完整的字符串,也可以含有通配符%和_

%(百分号)代表任意长度(长度可以为0)的字符串

例如:a%b表示以a开头,以b结尾的任意长度的字符串

_(下划线)代表任意单个字符

例如:a_b表示以a开头,以b结尾的长度为3的任意字符串

-----------------------------------

🍔(1)匹配串含固定字符串

例如:查询学号为201215121的学生的详细情况

代码如下👇🏻

SELECT *
FROM student
WHERE sno='201215121';

运行结果👇🏻

【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

🍔(2)匹配串为含通配符的字符串

例如:查询所有姓刘学生的姓名,学号,性别

代码如下👇🏻

SELECT sname ,sno,ssex
FROM student
WHERE sname LIKE '刘%';

运行结果👇🏻

【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

例如:查询姓"欧阳"且全名为三个汉字的学生的姓名

代码如下👇🏻

SELECT sname
FROM student
WHERE sname LIKE '欧阳_';

例如:查询名字中第二个字为"阳"字的学生的姓名和学号

代码如下👇🏻

SELECT sname,sno
FROM student
WHERE sname LIKE '_阳%';

例如:查询所有不姓刘的学生姓名,学号和性别

代码如下👇🏻

SELECT sname ,sno,ssex
FROM student
WHERE sname NOT LIKE '刘%';

 🍔(3)使用换码字符将通配符转义为普通字符

ESCAPE'/'表示"/"为换码字符

例如:查询DB_Design课程的课程号和学分

代码如下👇🏻

select cno,ccredit
from course
where cname like'DB/_Design'ESCAPE'/';

例如:查询以"DB_"开头,且倒数第3个字符为i的课程的详细情况

代码如下👇🏻

select *
from course
where cname like 'DB/_%i__'ESCAPE'/';

🍔(6)涉及空值的查询

谓词: is null 或 is  not null

注意:"is"不能用 "="代替

例如:某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩

查询缺少成绩的学生的学号和相应的课程号

代码如下👇🏻

select sno,cno
from sc
where grade is null;

3.ORDER BY子句

🍔特点

可以按一个或多个属性列排序

升序:ASC;降序:DESC;缺省值为升序

对于空值,排序时显示的次序由具体系统实现来决定

🍔例子

🍔例1

(查询选修了3课程的学生的学号及其成绩,查询结果按分数降序排列)

SC表如下👇🏻

【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

代码如下👇🏻

SELECT Sno,Grade
FROM SC
WHERE Cno='3'
ORDER BY grade DESC;

运行结果👇🏻

【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

🍔例2

(查询全体学生情况,查询结果按所在系的系好升序排列,同一系中的学生按年龄降序排列)

Student表如下👇🏻

【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

代码如下👇🏻

SELECT *
FROM Student
ORDER BY Sdept,Sage DESC;

运行结果👇🏻

【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

4.聚焦函数

🍔(1)统计元组个数

COUNT(*)

例如:(查询学生总人数)

代码如下👇🏻

SELECT COUNT(*)
FROM student;

运行结果👇🏻

【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

🍔(2)统计一列中值的个数

COUNT([DISTINCT|ALL]<列名>)

 例如:(查询选修了课程的学生人数)

代码如下👇🏻

SELECT COUNT(DISTINCT sno)
FROM sc;

运行结果👇🏻

【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

🍔(3)计算一列值的总和(此列必须为数值型)

SUM([DISTINCT|ALL]<列名>)

 例如:(查询学生201215012选修课程的总学分数)

代码如下👇🏻

SELECT SUM(Ccredit)
FROM sc,course
WHERE sno='201215012' AND sc.`Cno`=course.`Cno`;

🍔(4)计算一列值的平均值(此列必须为数值型)

AVG([DISTINCT|ALL]<列名>)

 例如:(查询选修1号课程的学生平均成绩)

代码如下👇🏻

SELECT  AVG(Grade)
FROM sc
WHERE cno='1';

🍔(5)求一列中的最大值和最小值

MAX([DISTINCT|ALL]<列名>)

 例如:(查询选修1号课程的学生最高分数)

代码如下👇🏻

SELECT MAX(Grade)
FROM sc
WHERE cno='1';

MIN([DISTINCT|ALL]<列名>)

 例如:(查询选修1号课程的学生最低分数)

代码如下👇🏻

​
SELECT MIN(Grade)
FROM sc
WHERE cno='1';

​

5.GROUP BY子句

🍔特点

细化聚焦函数的作用对象

如果未查询结果分组,聚焦函数将作用于整个查询结果

对查询结果分组后,聚焦函数将分别作用于每个组

按指定的一列或多列值分组,值相等的为一组

代码如下👇🏻

SELECT sno, AVG(Grade)
FROM sc
GROUP BY sno

运行结果👇🏻

【MySQL】从0到1学会单表查询,MySQL,mysql,数据库

🍔HAVING短语与WHERE子句的区别

(1)作用对象不同

(2)WHERE子句作用于基表或视图,从中选择满足条件的元组

(3)HAVING短语作用于组,从中选择满足条件的组

例如:(查询平均成绩大于等于85分的学生学号和平均成绩)

错误代码👇🏻:

SELECT sno, AVG(Grade)
FROM sc
WHERE AVG(grade)>=85
GROUP BY sno

正确代码如下👇🏻

SELECT sno, AVG(Grade)
FROM sc
GROUP BY sno
HAVING AVG(grade)>=85

注意:WHERE子句中是不能用聚焦函数作为条件表达式


🌺如果大家有不明白的地方,或者文章部分内容有问题,欢迎大家在评论区讨论,指正🌺文章来源地址https://www.toymoban.com/news/detail-742921.html

到了这里,关于【MySQL】从0到1学会单表查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库的简单查询——单表查询

    本篇文章主要是数据库的一些简单查询,包括条件查询,模糊查询,分组查询等 准备工作:三张数据表                学生表(student):                            课程表(course):          学生选课表(sc):     (1)查询学生表中全体学生的所有信息。 SQL语句:

    2023年04月11日
    浏览(45)
  • MySQL数据库——MySQL WHERE:条件查询数据

    在 MySQL 中,如果需要有条件的从数据表中查询数据,可以使用 WHERE 来指定查询条件。 使用 WHERE 的语法格式如下: WHERE 查询条件 查询条件可以是: 带比较运算符和逻辑运算符的查询条件 带 BETWEEN AND 的查询条件 带 IS NULL 的查询条件 带 IN

    2024年02月03日
    浏览(58)
  • MySQL数据库实验三 MySQL查询

    一、实验项目: MySQL查询。 二、实验目的 掌握MySQL的查询操作。 三、实验内容 (一): 1、查询lineitem表中商品编号(productid)和单价(unitprice),要求消除重复行。 2、计算lineitem表中每条记录的商品金额。 3、显示orders表单笔高于200元的客户号(userid)、成交金额(total

    2024年02月11日
    浏览(53)
  • MySQL数据库基础之MySQL查询基础

    从今天开始,本系列内容就带各位小伙伴学习数据库技术 。数据库技术是Java开发中必不可少的一部分知识内容。也是非常重要的技术。本系列教程由浅入深, 全面讲解数据库体系。 非常适合零基础的小伙伴来学习。 全文大约【 1212】 字,不说废话,只讲可以让你学到技术、

    2024年02月06日
    浏览(52)
  • 【数据库Microsoft SQL Server】实验一 数据库的定义与单表查询

    一、实验目的 1.要求学生熟悉掌握在DBMS中用SQL语言定义数据库、表、主码及外码。 2.熟悉关系数据库中常用数据类型,为关系表各属性定义合理的数据类型。 3.在建立好的数据库表中输入部分虚拟数据,实现基于单表的sql查询并分析查询结果。 二、实验环境与实验准备工作

    2024年02月05日
    浏览(59)
  • MySQL数据库——MySQL SELECT:数据表查询语句

    在 MySQL 中,可以使用 SELECT 语句来查询数据。查询数据是指从数据库中根据需求,使用不同的查询方式来获取不同的数据,是使用频率最高、最重要的操作。 SELECT 的语法格式如下: 其中,各条子句的含义如下: {*|字段列名} 包含星号通配符的字段列表,表示所要查询字段的

    2024年02月05日
    浏览(70)
  • MySQL数据库,联合查询

    目录 1. 联合查询 1.1 内查询 1.2 外查询 1.3 自连接 1.4 子查询 1.5 合并查询 联合查询,简单的来讲就是多个表联合起来进行查询。这样的查询在我们实际的开发中会用到很多,因此会用 笛卡尔积 的概念。 啥是笛卡尔积?两张表经过笛卡尔积后得到的新表的列数是两表列数之和

    2023年04月23日
    浏览(72)
  • MySQL数据库,聚合查询

    目录 1、聚合查询 1.1聚合函数 1.1.1count函数 1.1.2sum函数 1.1.3avg函数 1.1.4max函数 1.1.5min函数 1.2group by子句 1.3having 聚合函数查询又叫函数查询,它是通过一些特定的函数根据需求来查询相关的信息,常见的聚合函数为: COUNT - 求总数,不包含某字段为null值 SUM - 求和,不包含某字

    2023年04月21日
    浏览(55)
  • 如何查看其他电脑的MYSQL数据库 mysql查询另一个ip数据库

    文章标签 如何查看其他电脑的MYSQL数据库mysql数据库服务器MySQL 文章分类 MySQL数据库 阅读数 143 1.如何通过IP访问MySQL数据库 1.1 改表法 1.2 授权法 2.MySQL数据库基本命令 2.1 基本命令 2.2 注释 2.3 2.4 实践操作 3 小结 1.1 改表法 如果不从远程登陆,可以用 localhost 。这个时候

    2024年01月21日
    浏览(66)
  • 数据库系统原理及MySQL应用教程实验四MySQL数据库表数据的查询操作

    1.掌握SELECT 语句的基本语法格式。 2.掌握SELECT 语句的执行方法。 3.掌握SELECT 语句的 GROUP BY 和 ORDER BY 子句的作用。 验证性实验:在公司的部门员工管理数据库的bumen表和yuangong表上进行信息查询。 设计性试验:将在student表和score表上进行查询。 ( 一 ) 验证性实验 在

    2024年02月05日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包