04.28 MySQL

article/2025/10/10 18:22:30

DQL:数据库的查询语句初学

1.查询全表数据

在查询之前,我们需要先创建一个所需的表`
select *from 表名; [注意,实际开发中,写sql的时候,不能写**号,需要查询全表的时候,需要写全部的名称字段]

select
s.id as “编号”,
s.name as “姓名”,
s.age as “年龄”,
s.math as “地址”
from
表名 as s

2.查询部分字段,

查询指定字段 需求:查询出员工的编号以及员工的姓名,年龄,性别

select
s.id “员工id”,
s.name “员工姓名”,
s.age “员工年龄”,
s.sex “员工性别”
from
stu3 s;

去除他的重复性

select
distinct address
from stu3

3.查询的时候,可以将字段为整数类型进行求和(相加)

需求:查询员工的id,name,age,sex,以及数学和英语的总分;

select
id “编号”,
name “员工姓名”,
age “员工年龄”,
sex “员工的性别”,
(math+english) “总分”
from
stu3;

注意,在求和的时候,是两个整数类型在进行求和,但是如果其中一个整数字段里是空值(null),那么两者相加也就是(null),那么要解决这个问题的话,我们可以用到一个函数

select
id “编号”,
name “员工姓名”,
age “员工年龄”,
sex “员工的性别”,
(math+ifnull(english,0)) “总分”
from
stu3;

当我们加上这个ifnull()函数后,他会判断,如果,英语成绩是null的话,那么会吧他的null修改为0分

4.带条件查询

select 指定的字段 from 表名 where 条件
需求,查询出年龄大于等于20岁的员工姓名,年龄,性别以及总成绩:

select
name “姓名”,
age “年龄”,
sex “性别”,
(math+ifnull(english,0)) “总分”
from
stu3
where age<=20;

where的条件是可以跟多个的,并列条件或者或的条件(&& || )
需求:查询学生的年龄在20-30岁的学生所有消息

select
*
from
stu3
where
age >=20 && age<=30; --也可以写成age >=20 and age<=30;[and是mysql自己的语法]

还可以用:

where 字段名称 between 值1 and 值2 ;等价与字段名称>=值1 and字段名称<=值2;

需求,要查询学生年龄是18岁,或者20岁,或者45岁的学生信息

select
*
from
student3
where
age=18 || age=20 || age=45; --[和与一样,mysql有自己的或,or]

在上面的格式中,当有多个或的关系的时候,可以使用in集合语句

select
*
from
student3
where
age
in(18,20,45);

需求:查询出英语成绩为null的学生信息

select
id “编号”,
name “姓名”,
age “年龄”,
addres “地址”,
english “英语成绩”
from
student3
where
english is null; 如果要非空,则是is not full

5.模糊查询:关键字 like

select 指定字段列表 from 表名 where 字段名称 like ‘%字符%’

查询出所有姓马的同学

select
*
from
student3
where
name
like ‘%马%’; --%代表任意字符 __一个下划线代表一个任意字符串(包含关系)

6.聚合函数查询

coun(字段名称):查询当前表的记录数 字段名称一般是用非业务字段[如果有些字段中的值是null的话,是查不出来的,会使信息有误]
需求,使用英语字段来查询学生表中的总记录数

select
count(english) “总记录数” --如果此时,我们的english数据里,有null,则会少计算null的值,
count(ifnull(english,0)) “总数” --可以加ifnull来让他的期望值变为0
from
student3;

sum(字段名称):求和,针对某列字段值进行求和(int)

select
sum(math) “数学成绩总合”
sum(ifnull(english,0)) --如果里面有null的话,可以这样操作
from
student3;

avg(字段名称) 平均分
max和min max(字段名称),min(字段名称)最大值函数和最小值函数;

7.排序查询

键字 order by
select 字段列表 from 表名 order by 字段名称 排序顺序 [asc升序(默认为升) desc降序]
需求:学生的数学成绩升序排序,

select
*
from
student3
order by
math asc;

需求,查询数学成绩降序,英语成绩是升序的所有学生信息,如果数学成绩相同,则按照英语成绩排序规则进行操作

select
*
from
student3
order by math desc,english asc;

Homework

1.单表练习题

create table student(
id int, – id编号
name varchar(20), – 姓名
chinese int, – 语文
english int, – 英语
math int – 数学 );

insert into student(id,name,chinese,english,math) values(1,‘行哥’,89,78,90);
insert into student(id,name,chinese,english,math)
values(2,‘潘金莲’,67,53,95); insert into
student(id,name,chinese,english,math) values(3,‘凤姐’,87,78,77); insert
into student(id,name,chinese,english,math) values(4,‘旺财’,88,98,92);
insert into student(id,name,chinese,english,math)
values(5,‘白小黑’,82,84,67); insert into
student(id,name,chinese,english,math) values(6,‘白小黄’,55,85,45); insert
into student(id,name,chinese,english,math) values(7,‘范蹦蹦’,75,65,30);

1.查询表中所有学生的信息。
在这里插入图片描述

2 查询表中所有学生的姓名和英语成绩。
SELECT * FROM student;
SELECT
NAME ‘名字’,
english ‘英语成绩’
FROM
stu
在这里插入图片描述

3 过滤表中重复数据。(去重的关键字 distinct)
SELECT DISTINCT
english
FROM
stu ;
在这里插入图片描述

4.统计每个学生的总分
SELECT
id’学号’,
NAME ‘姓名’,
(math+english+ chinese) ‘总分’
FROM
stu ;
在这里插入图片描述

5.在所有学生总分数上加10分特长分。
SELECT
id’学号’,
NAME ‘姓名’,
(math+english+ chinese+10) ‘总分’
FROM
stu;
在这里插入图片描述

6.使用别名表示学生分数。

7.查询姓名为行哥的学生成绩
SELECT *
FROM stu
WHERE NAME=‘行哥’;
在这里插入图片描述

8.查询英语成绩大于90分的同学
SELECT
id ‘学号’,
NAME ‘姓名’
FROM stu
WHERE english>90;
在这里插入图片描述

9.查询总分大于200分的所有同学

SELECT *

  • FROM stu WHERE (chinese+english+math)>200;
    在这里插入图片描述

10.查询英语分数在 80-90之间的同学。

SELECT *
FROM stu WHERE english>80 AND english<90;
在这里插入图片描述

11.查询数学分数为89,90,91的同学。
SELECT *
FROM stu
WHERE math IN(89,90,91);
在这里插入图片描述

12.查询所有姓白的学生英语成绩。
SELECT
id’学号’,
NAME ‘姓名’,
english
FROM stu
WHERE NAME LIKE ‘%白%’;
在这里插入图片描述

13.查询数学分>80并且语文分>80的同学
SELECT
id’学号’,
NAME ‘姓名’,
math ‘数学’,
chinese ‘语文’
FROM stu
WHERE math>80 AND chinese>80;
在这里插入图片描述

14.查询英语>80或者总分>200的同学
SELECT
id’学号’,
NAME ‘姓名’,
english ‘英语’,
(english+chinese+math)‘总分’
FROM stu
WHERE english>80 || (english+chinese+math)>80;
在这里插入图片描述

15.对数学成绩升序排序
SELECT *
FROM
stu
ORDER BY math ;
在这里插入图片描述

16.对总分降序排序,然后再按数学从高到低的顺序输出
SELECT *
FROM
stu
ORDER BY english+chinese+math DESC,math ;
在这里插入图片描述

17.对姓白的学生成绩排序输出(排序规则自己定义)
SELECT *
FROM
stu
WHERE NAME LIKE ‘%白__%’
ORDER BY english DESC,chinese,math DESC ;
在这里插入图片描述

18.查询数学成绩大于等于平均分的所有学生信息
SELECT *
FROM
stu
WHERE math >=(
SELECT
AVG(math)
FROM
stu
);
在这里插入图片描述

19.查询出英语成绩最高分的学生信息
SELECT
id’学号’,
NAME ‘姓名’,
english ‘英语’
FROM
stu
WHERE english=(
SELECT
MAX(english)
FROM
stu
);
在这里插入图片描述

20.模糊查询出学生姓名中第二个字是金的学生信息
SELECT *
FROM
stu
WHERE NAME LIKE ‘%_金%’ ;
在这里插入图片描述

21.查询出英语成绩平均分是多少
SELECT
AVG(english)‘英语平均分’
FROM
stu;
在这里插入图片描述

22.查询出数学总分是多少
SELECT
SUM(math) ‘数学总分’
FROM
stu ;
在这里插入图片描述

23.查询学生表中有多少条记录
SELECT
COUNT(id) ‘总记录数’
FROM
stu ;
在这里插入图片描述


http://chatgpt.dhexx.cn/article/IQUcXGly.shtml

相关文章

MySQL 总是差八个小时,如何破?

今天来聊一个简单的话题&#xff0c;这是一个小伙伴在微信上问我的&#xff0c;对于初学者我非常能理解这类问题带来的困扰&#xff0c;各种尝试&#xff0c;各种搜索&#xff0c;别人说的头头是道&#xff0c;但是就是解决不了自己的问题&#xff0c;今天我简单从两个方面来和…

存入mysql时间少了8小时

在接口测试的时候&#xff0c;发现时间少了8小时。通过网上各个博客发现了两个问题。 首先是显示在页面的时间格式(date)和我从api接口里测试的也不同。 时间格式的处理&#xff0c;前端的时间显示2020-07-13T16:02:00.0000000 在后端添加JsonFormat JsonFormat(shapeJsonFo…

mysql当日及后5天数据

java /mysql统计当天及前六天的数据&#xff0c;如果中间哪天数据为空&#xff0c;怎么在相应的位置插入动态的时间 你可以在查询出结果之后&#xff0c;生成JSON的时候&#xff0c;在那里判断一下后面时间不是与前面的时间相差一天&#xff0c;如果不是&#xff0c;把这天数据…

MYSQL 第六天

课堂作业 1. 创建数据库company,在库中创建两个表offices和employees表 小鹅通作业 1.用SQL语句创建学生表student&#xff0c;定义主键&#xff0c;姓名不能重名&#xff0c;性别只能输入男或女&#xff0c;所在系的默认值是 “计算机”。 create table student( Sno int p…

MySQL高级篇第二天

文章目录 一、Mysql的体系结构概览 二、 存储引擎 三、优化SQL步骤 一、Mysql的体系结构概览 整个MySQL Server由以下组成 Connection Pool : 连接池组件 Management Services & Utilities : 管理服务和工具组件 SQL Interface : SQL接口组件 Parser : 查询分析器组件 O…

MySql(第二天)

文章目录 数据库查询操作1.单表查询2.多表查询3.MySql远程连接 数据库查询操作 1.单表查询 --数据库操作前的准备 -- 创建数据库 -- create database python_test_1 charsetutf8;-- 使用数据库 -- use python_test_1;-- students表 -- create table students( -- id int …

mysql查询0~3天、4~7天、8~15天、16~30天的sql语句

1、NOW(), CURDATE(), CURTIME()的值 2、date_add(now(), interval 1 day) //当前时间加一天 date_sub(now(), interval 1 day) //当前时间减一天 3、简单函数 CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END 搜索函数 CASE WHEN [expr] THEN [result1]……

idea中maven项目打包为jar

在idea中打包maven项目时有很多解决的方案&#xff0c;可出乎意料的是&#xff0c;使用某些方案时有一些未知的错误情况。经过测验后&#xff0c;记录了下面一种简单有效的方法 在pom.xml中添加 <build><plugins><plugin><groupId>org.apache.maven.…

maven项目打包部署到服务器上

创建一个maven项目&#xff0c;在本地工程依赖jar包启动完成后&#xff0c;是不够的&#xff0c;还需将项目文件使用maven编译打包然后部署到服务器上 主流的springboot项目打包的时候需要在pom文件中指定主方法等配置 解决打包部署的时候报错no main manifest attribute, in…

如何将maven项目打包成可执行的jar

方法一&#xff1a;将项目及所依赖的所有jar包打包成一个jar。 1、pom.xml添加assembly插件 2、执行mvn assembly:assembly 3、生成如下文件 4、执行java -jar quickstart-1.0.0-jar-with-dependencies.jar 备注&#xff1a;第2步的命令也可以改成mvn package&#xff0c;但需…

Maven项目打包

在做项目时&#xff0c;都会在做项目的打包操作的&#xff0c;不同的环境下有不同的打包方式&#xff0c;在maven项目中可以使用pom.xml配置文件中实现配置&#xff0c;首先要创建一个web项目 先说一下打包成war包吧 - 创建好项目后&#xff0c;需要配置pom.xml配置文件来指定打…

IDEA打包Maven项目

一、第一次需要在IntelliJ IDEA中打包Maven项目&#xff0c;弄了半天&#xff0c;才搞好&#xff0c;记录一下。 二、打包步骤 1. 在IntelliJ IDEA主界面的右侧点击Maven Project&#xff1a; 2. 在打开的页面中点击lifecycle&#xff1a; 3. 然后双击package&#xff1a; 4.…

【IDEA】Maven项目打包 无效的目标发行版: 17 (全)

问题解决方法 项目运行出错Maven打包出错 问题&#xff1a; 曾经切换过jdk版本&#xff0c;切回17时&#xff0c;出现的了如题的错误。 且运行不报错&#xff0c;但maven进行打包时报错。其他版本同理。 解决方法&#xff1a; 1. 项目运行出错 pom.xml可能出现问题&#…

maven如何打包你会吗?

1.新建一个maven项目&#xff0c;在main/java中建立Main类 public class Main {public static void main(String[] args) {System.out.println("hello java ...");} } 2.添加依赖&#xff0c;使其成为可执行包 <build><plugins><!--打包成为可执行包-…

IDEA中Maven项目打包方式

方式一&#xff1a; 直接打包&#xff0c;不打包依赖包&#xff0c;仅打包出项目中的代码到JAR包中&#xff0c;可称为架包。在其他应用中运行时&#xff0c;必须保证其上面有相应的依赖包&#xff0c;才能运行。maven——》Lifecyle——》Clean——》Package 打包成功后就会出…

将IDEA MAVEN项目打包成jar包的通用方法

1.找到左上角File -> Project Structure&#xff0c;点击&#xff08;中文&#xff1a;文件 -> 项目结构&#xff09; 2. 在弹出的界面中&#xff0c;点击Artifacts&#xff08;中文&#xff1a;工件&#xff09;&#xff0c;点击内置页面的左上角的号&#xff0c;选中第…

maven多个子项目如何打包?

两种方式: 第一种方式: 父模块pom 不配置任何打包命令; 子模块(资源pom) 指定这个pom是资源类型; 子模块(服务pom) 指定这个pom是java服务类型; 1. 前提: maven对应多个子项目, 每个子项目都是一个单独运行的jar包 2. 项目结构: 五个 jar包; 一个common资源包 3. 思…

maven项目常用的打包方式

一、无依赖其他任何jar <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <archive>…

IDEA中MAVEN项目如何打包JAR包

这篇文章主要为大家展示了“IDEA中MAVEN项目如何打包JAR包”&#xff0c;内容简而易懂&#xff0c;条理清晰&#xff0c;希望能够帮助大家解决疑惑&#xff0c;下面让小编带领大家一起研究并学习一下“IDEA中MAVEN项目如何打包JAR包”这篇文章吧。 Idea中为一般的非Web项目打J…

Maven项目打包为jar的几种方式

Maven项目打包为jar的几种方式 这里收集整理下以往打包MAVEN项目为JAR包的各种方式 ##直接打包&#xff0c;不打包依赖包 直接打包&#xff0c;不打包依赖包&#xff0c;仅打包出项目中的代码到JAR包中。在POM中添加如下plugin即可&#xff0c;随后执行maven install <plu…