当前位置 : 主页 > 编程语言 > 其它开发 >

数据库MySQl --查询基础与过滤

来源:互联网 收集:自由互联 发布时间:2022-06-16
一,什么是数据库 数据库是软件用来储存数据的地方,可以类比人类的大脑, 二,数据库连接 1,打开navicat 点击连接,点击MySQL 2,输入对应信息 3,新建查询(数据库中已有表存在)
一,什么是数据库

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

 

二,数据库连接

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;

  

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 "李%"

  

 

上一篇:全网首个上位机智能框架课程
下一篇:没有了
网友评论