如何运用MySQL进行基础查询与高效过滤操作?

2026-04-28 12:341阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1779个文字,预计阅读时间需要8分钟。

如何运用MySQL进行基础查询与高效过滤操作?

一、什么是数据库?数据库是软件用来存储数据的地点,可以类比为人的大脑,用于处理和存储大量信息。

二、数据库连接

1.打开Navicat。

2.点击连接。

3.选择MySQL。

4.输入对应信息。

5.新建查询(数据库中已存在表)。

一,什么是数据库

数据库是软件用来储存数据的地方,可以类比人类的大脑,

二,数据库连接

1,打开navicat 点击连接,点击MySQL

2,输入对应信息

3,新建查询(数据库中已有表存在)

4,数据库查询过慢解决方法

三,数据库MySQL语句查询--基础

1,查询单个字段,查询学生表中的学生name

SELECT name from students;

  

2.1,查询多个字段,字段中用英文逗号间隔

SELECT name,age,workyear from students;

  

2.2,也可以加上表名查询,表名后面加上英文的点,这种方法在虚拟表或者多表连接的时候会使用,后面会详细的介绍

SELECT students.name,students.age,students.workyear from students;

  

3.1,as 别名,在查询的时候,可以对查询的字段利用as 给字段起个别名,as 可以省略不写

select name as 姓名 from students; select name 姓名 from students;

  

3.2,多个别名之间可以用英文的逗号间隔

select name as 姓名, age as 年龄, workyear as 工作年限 from students;

  

4,查询学生表中的所有数据

select * from students;

  

5,去除重复的数据,一个表中,可能有些数据是重复的,比如年龄,或者成绩等,可用distinct去重

-- 去除重复数据; SELECT DISTINCT age FROM students;

  

6,limint 显示查询的条数,有时需求不同,我们需要看到的数据不同,不如查看学生的前10条记录

-- 将结果限制在10条;
select id,name from students LIMIT 10;

  

6.2,也可以查询多少条到多少条的记录

-- Limit 10,15 10表示从第11位(也就是第10位后面一位)开始查询, -- 15 表示显示15条数据。 SELECT id,name from students LIMIT 10,15;

  

7.1,排序,从上面查看的结果可以知道,出现的结果是默认按照id排序的,有时我们需要查看工作年限排列……

-- 根据workyear 进行排序,默认从小到大进行排序 SELECT name,workyear from students ORDER BY workyear;

  order by 字段名 asc --是正序,即从小到大,asc 可不写

-- 根据数据库中 age字段进行排序 SELECT name,workyear from students ORDER BY age;

  

-- ORDER BY 后面跟2个字段,先根据第一个字段进行排序,在第一个字段数据一样情况下, -- 再根据第2个字段进行排序。 select name,age,workyear from students ORDER BY age,workyear;

  

-- 查询表中年龄最大的前三个年龄是多少 -- 1.去除重复数据 SELECT DISTINCT age from students -- 2. order by 列名 desc 表示倒序,从大到小进行排序 ORDER BY age desc -- 3. limit 进行结果限制 LIMIT 3; --完整版 SELECT DISTINCT age from students ORDER BY age desc LIMIT 3;

  

7.2 倒叙排列 order by 字段名 desc 倒叙

SELECT id,name from students ORDER BY id DESC

  

8,课间小练习,前面的知识点你都学会了吗?来我们一起练习一下

查看班级内sql_score成绩最高的学生的姓名和成绩

SELECT name,sql_score from score ORDER BY sql_score DESC LIMIT 1;

  

查看前10名学生的python和sql_score姓名和成绩,先按照python排列,然后按照sql_score排列

SELECT * from score -- python成绩从大到小进行排序,成绩一样时候sql成绩再按从大到小进行排序 ORDER BY python_score desc,sql_score desc LIMIT 10

  

查询python成绩在20-30名学生的姓名和sql_score成绩

SELECT name,sql_score from score ORDER BY python_score desc LIMIT 19,11

  

四,数据库查询--过滤

1,当我们需要查询满足特定条件的数据时,使用where语句

select * from table where 条件

  

2,查询python成绩大于等于60分的学生姓名和python成绩信息

SELECT name,python_score from score -- 添加条件 WHERE python_score >= 60;

  

SELECT name,python_score FROM score WHERE python_score = 92

  

SELECT name,python_score FROM score -- 90-100 包含90,100 WHERE python_score BETWEEN 90 AND 100

  

SELECT name,python_score FROM score -- 90-100 包含90,100 WHERE python_score BETWEEN 90 AND 100 -- 进行排序操作 ORDER BY python_score DESC

  

3,查询空值,is null

SELECT name,python_score FROM score -- 过滤Python成绩为 空的信息 WHERE python_score is NULL;

  

4,is not null 代表非空

SELECT name,python_score FROM score WHERE python_score is NOT NULL;

  

5,NOT 代表的是相反

SELECT name,python_score from score -- 不大于等于60 WHERE NOT python_score >= 60;

  

如何运用MySQL进行基础查询与高效过滤操作?

SELECT name,python_score FROM score -- 不为空 WHERE NOT python_score is NULL;

  

6,多个条件同时满足,用and

SELECT * FROM score where -- 第1个条件 python_score >= 60 AND -- 表示并且 -- 第2个条件 sql_score >=60

  

7,多个条件满足其中一个条件即可,or

SELECT * FROM score where python_score >= 60 OR -- 表示或者 sql_score >= 60

  

8,and 与 or 可以一起使用,可以用()来限制顺序,如果没有() 默认先and 然后 or

SELECT * FROM score WHERE test_score >= 60 AND -- 使用() 先把() 中结果运算出来,之后再跟上面做And运算 (python_score >= 60 OR sql_score >= 60 )

  

9,IN 操作符,各数据中满足其中一个即可

SELECT * FROM score where python_score in (80,90,100)

  

10,模糊查询 like %(代表0-无数个) -(代表一个字符)

SELECT * from score WHERE -- 使用 '' 或者 "" 表示字符串 name LIKE '张%';

  

SELECT * from score WHERE -- 使用 '' 或者 "" 表示字符串 name LIKE '张%' Or name like "王%" OR name LIKE "李%" OR name LIKE "赵%"

  

SELECT * from score WHERE name like "王_"

  

SELECT * from score WHERE name like "_玉_"

  

-- 既不姓王 也不姓李的学员信息 select * from score where not name like "王%" AND not name like "李%"

  

本文共计1779个文字,预计阅读时间需要8分钟。

如何运用MySQL进行基础查询与高效过滤操作?

一、什么是数据库?数据库是软件用来存储数据的地点,可以类比为人的大脑,用于处理和存储大量信息。

二、数据库连接

1.打开Navicat。

2.点击连接。

3.选择MySQL。

4.输入对应信息。

5.新建查询(数据库中已存在表)。

一,什么是数据库

数据库是软件用来储存数据的地方,可以类比人类的大脑,

二,数据库连接

1,打开navicat 点击连接,点击MySQL

2,输入对应信息

3,新建查询(数据库中已有表存在)

4,数据库查询过慢解决方法

三,数据库MySQL语句查询--基础

1,查询单个字段,查询学生表中的学生name

SELECT name from students;

  

2.1,查询多个字段,字段中用英文逗号间隔

SELECT name,age,workyear from students;

  

2.2,也可以加上表名查询,表名后面加上英文的点,这种方法在虚拟表或者多表连接的时候会使用,后面会详细的介绍

SELECT students.name,students.age,students.workyear from students;

  

3.1,as 别名,在查询的时候,可以对查询的字段利用as 给字段起个别名,as 可以省略不写

select name as 姓名 from students; select name 姓名 from students;

  

3.2,多个别名之间可以用英文的逗号间隔

select name as 姓名, age as 年龄, workyear as 工作年限 from students;

  

4,查询学生表中的所有数据

select * from students;

  

5,去除重复的数据,一个表中,可能有些数据是重复的,比如年龄,或者成绩等,可用distinct去重

-- 去除重复数据; SELECT DISTINCT age FROM students;

  

6,limint 显示查询的条数,有时需求不同,我们需要看到的数据不同,不如查看学生的前10条记录

-- 将结果限制在10条;
select id,name from students LIMIT 10;

  

6.2,也可以查询多少条到多少条的记录

-- Limit 10,15 10表示从第11位(也就是第10位后面一位)开始查询, -- 15 表示显示15条数据。 SELECT id,name from students LIMIT 10,15;

  

7.1,排序,从上面查看的结果可以知道,出现的结果是默认按照id排序的,有时我们需要查看工作年限排列……

-- 根据workyear 进行排序,默认从小到大进行排序 SELECT name,workyear from students ORDER BY workyear;

  order by 字段名 asc --是正序,即从小到大,asc 可不写

-- 根据数据库中 age字段进行排序 SELECT name,workyear from students ORDER BY age;

  

-- ORDER BY 后面跟2个字段,先根据第一个字段进行排序,在第一个字段数据一样情况下, -- 再根据第2个字段进行排序。 select name,age,workyear from students ORDER BY age,workyear;

  

-- 查询表中年龄最大的前三个年龄是多少 -- 1.去除重复数据 SELECT DISTINCT age from students -- 2. order by 列名 desc 表示倒序,从大到小进行排序 ORDER BY age desc -- 3. limit 进行结果限制 LIMIT 3; --完整版 SELECT DISTINCT age from students ORDER BY age desc LIMIT 3;

  

7.2 倒叙排列 order by 字段名 desc 倒叙

SELECT id,name from students ORDER BY id DESC

  

8,课间小练习,前面的知识点你都学会了吗?来我们一起练习一下

查看班级内sql_score成绩最高的学生的姓名和成绩

SELECT name,sql_score from score ORDER BY sql_score DESC LIMIT 1;

  

查看前10名学生的python和sql_score姓名和成绩,先按照python排列,然后按照sql_score排列

SELECT * from score -- python成绩从大到小进行排序,成绩一样时候sql成绩再按从大到小进行排序 ORDER BY python_score desc,sql_score desc LIMIT 10

  

查询python成绩在20-30名学生的姓名和sql_score成绩

SELECT name,sql_score from score ORDER BY python_score desc LIMIT 19,11

  

四,数据库查询--过滤

1,当我们需要查询满足特定条件的数据时,使用where语句

select * from table where 条件

  

2,查询python成绩大于等于60分的学生姓名和python成绩信息

SELECT name,python_score from score -- 添加条件 WHERE python_score >= 60;

  

SELECT name,python_score FROM score WHERE python_score = 92

  

SELECT name,python_score FROM score -- 90-100 包含90,100 WHERE python_score BETWEEN 90 AND 100

  

SELECT name,python_score FROM score -- 90-100 包含90,100 WHERE python_score BETWEEN 90 AND 100 -- 进行排序操作 ORDER BY python_score DESC

  

3,查询空值,is null

SELECT name,python_score FROM score -- 过滤Python成绩为 空的信息 WHERE python_score is NULL;

  

4,is not null 代表非空

SELECT name,python_score FROM score WHERE python_score is NOT NULL;

  

5,NOT 代表的是相反

SELECT name,python_score from score -- 不大于等于60 WHERE NOT python_score >= 60;

  

如何运用MySQL进行基础查询与高效过滤操作?

SELECT name,python_score FROM score -- 不为空 WHERE NOT python_score is NULL;

  

6,多个条件同时满足,用and

SELECT * FROM score where -- 第1个条件 python_score >= 60 AND -- 表示并且 -- 第2个条件 sql_score >=60

  

7,多个条件满足其中一个条件即可,or

SELECT * FROM score where python_score >= 60 OR -- 表示或者 sql_score >= 60

  

8,and 与 or 可以一起使用,可以用()来限制顺序,如果没有() 默认先and 然后 or

SELECT * FROM score WHERE test_score >= 60 AND -- 使用() 先把() 中结果运算出来,之后再跟上面做And运算 (python_score >= 60 OR sql_score >= 60 )

  

9,IN 操作符,各数据中满足其中一个即可

SELECT * FROM score where python_score in (80,90,100)

  

10,模糊查询 like %(代表0-无数个) -(代表一个字符)

SELECT * from score WHERE -- 使用 '' 或者 "" 表示字符串 name LIKE '张%';

  

SELECT * from score WHERE -- 使用 '' 或者 "" 表示字符串 name LIKE '张%' Or name like "王%" OR name LIKE "李%" OR name LIKE "赵%"

  

SELECT * from score WHERE name like "王_"

  

SELECT * from score WHERE name like "_玉_"

  

-- 既不姓王 也不姓李的学员信息 select * from score where not name like "王%" AND not name like "李%"