DQL 查询数据(最重点)------------------------Mysql数据库查询****

本文介绍了数据查询语言DQL的基础,包括SELECT语句的使用、指定查询字段、where条件子句的应用、联表查询的join操作,以及模糊查询和表达式的使用。通过实例解析,深入理解SQL在数据库中的核心作用和常见操作。
摘要由CSDN通过智能技术生成

4.1 DQL

(Data Query Language:数据查询语言)
所有查询操作都用它 Select
简单的查询,复杂的查询都能做
数据库中最核心的语言,最重要的语句
使用频率最高的语句

4.2 指定查询字段

查询全部学生 select 字段 from 表
SELECT * FROM student
– 查询指定字段
SELECT id,pwd FROM student
– 别名 给结果起一个名字 AS 可以给字段去别名 也可以给表起别名
SELECT id AS 艾迪 FROM student AS s

– 函数 Concat(a,b) 拼接字符串
SELECT CONCAT(‘姓名:’, name) AS 新名字 FROM student

语法:select 字段… From 表

去重 distinct
– 查询一下有那些同学参加了考试
SELECT * FROM t_score – 查询全部的考试成绩
– 发现重复数据 去重
SELECT DISTINCT courseno FROM t_score

数据库的列(表达式)
SELECT VERSION() – 查询系统版本 (函数)
SELECT 100*3-1 AS 计算机结果 – 用来计算 (表达式)
SELECT @@auto_increment_increment – 查询自增的步长 (变量)

– 学员考试成绩 +1 分查看
SELECT score+1 AS 学生成绩提分后 FROM t_score

数据库中的表达式: 文本值 ,列,null,函数,计算表达式,系统变量…
select 表达式 from 表

4.3 where 条件子句

作用:检索数据中符合条件的值
逻辑运算符
搜索条件由一个或者多个表达式组成!结果 布尔值
运算符 语法 描述
and && a and b a&&b 逻辑与,两个都为真,结果为真
or || a or b a| | b 逻辑或,其中一个为真,结果为真
Not ! not a ! a 逻辑非,真为假,假为真!
尽量使用英文字母
– 查询成绩在90~100之间的成绩
SELECT courseno,score FROM t_score
WHERE score>=90 AND score<100

– 模糊查询(区间)
SELECT courseno,score FROM t_score
WHERE score BETWEEN 90 AND 100

– 除了001号学生之外的同学的成绩
SELECT courseno,score FROM t_score
WHERE courseno != 001;

模糊查询:比较运算符

在这里插入图片描述

– ============================== 模糊查询 =================================
– 查询姓李的同学
– like结合 %(代表0到任意个字符) _(一个字符)

SELECT stuname FROM t_student
WHERE stuname LIKE ‘李%’

– 查询姓李的同学后面只有一个字
SELECT stuname FROM t_student
WHERE stuname LIKE ‘李_’

– 查询名字中有 哈 字的同学
SELECT stuname FROM t_student
WHERE stuname LIKE ‘%哈%’

– in 是一个或多个具体的值 不能使用like里面的% _

– 查询0001 003 号学员
SELECT stuno FROM t_student
WHERE stuno IN (0001,003)

– not null
– 查询某一项为空的在学生表
SELECT stuno FROM t_student
WHERE stuno IS NULL

– 查询某一项不为空的在学生表
SELECT stuno FROM t_student
WHERE stuno IS NOT NULL

4.4 联表查询

– =========================联表查询 join ===================================
– 查询参加了考试的同学
/* 长一些的sql语句先有思路
思路:
1.分析需求,分析查询的字段来自哪些表,(连接查询)
2.确定使用哪种连接查询? 7种
确定交叉点(这两个表中哪个数据是相同的)
*/

join (连接的表) on (判断的条件) 连接查询
where 等值查询
两个查询方式结果一致

SELECT s.stuno,score,stuname
FROM t_score AS s
INNER JOIN t_student AS r
WHERE s.stuno = r.stuno

– Right join
SELECT s.stuno,score,stuname
FROM t_score s
RIGHT JOIN t_student r
ON s.stuno = r.stuno

– Left join
SELECT s.stuno,score,stuname
FROM t_score s #左表
LEFT JOIN t_student r #右表
ON s.stuno = r.stuno

在这里插入图片描述
操作 描述
inner join 如果表中至少有一个匹配,就返回行
left join 即使右表中没有匹配,也会从左表中返回所有的值
right join 会从右表中返回所有的值,即使左表中没匹配

– From a left join b #a为基准
–From a right join b #b为基准
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值