IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 【数据库】MySQL(3) -> 正文阅读

[大数据]【数据库】MySQL(3)

DQL查询数据(重点)

查询格式

Date Query Lauguage:数据查询语言
完整的select语法:

SELECT [ALL | DISTINCT]
{* | table.* | [table.field1[as alias1][,table.filed2[as alias2]][,...]]}
FROM table_name [as table_alias]
	[left | right |inner join table_name2] -- 联合查询
	[WHERE ...] -- 指定结果需满足的条件
	[GROUP BY ...] -- 指定结果按照哪几个字段来分组
	[HAVING] -- 过滤分组的记录必须满足的次要条件
	[ORDER BY ...] -- 指定查询记录按一个或多个条件排序
	[LIMIT{[offset,]row_count | row_countOFFSET offset}]; -- 指定查询到记录从哪条到哪条

注意:[ ] 代表可选的,{ }代表必选的。


常见用法

去重 distinct

-- 查询哪些同学参加了考试
SELECT DISTINCT `studentno` FROM result;

版本查询

-- 查询版本
SELECT VERSION();

where条件子句

检索数据库中符合条件的内容

-- 查询70~89的学生成绩
SELECT `studentno`,`studentresult` FROM result WHERE `studentresult`>=70 AND `studentresult`<90;
模糊查询
运算符描述
IS NULL操作数值为空
IS NOT NULL操作数值为非空
BETWEEN a AND b在a、b之间
a LIKE ba匹配b
a IN (b,c···)a在(b,c···)中
-- 查询姓张的同学
SELECT `studentno`,`studentname` FROM `student` WHERE studentname LIKE '张%';

上述查询语句中 % 是通配符,表示任意个数的任意字符。

匹配符号解释
%任意个数通配符
_一个通配符
联表查询

join对比
在这里插入图片描述
inner join 解决问题:

-- 查询所有学生的学号、姓名、科目、成绩
SELECT s.`studentno`,`studentname`,`subjectno`,`studentresult` 
FROM `student` AS s
INNER JOIN `result` AS r
ON s.`studentno`=r.`studentno`;

right join 解决问题:

-- 查询所有考了试的学生的学号、姓名、科目、成绩,不考的没成绩。
SELECT s.`studentno`,`studentname`,`subjectno`,`studentresult`
FROM `student` AS s
RIGHT JOIN `result` AS r
ON s.`studentno` = r.`studentno`
WHERE `studentresult` IS NOT NULL;

left join解决问题

-- 查询所有学生的学号、姓名、科目、成绩
SELECT s.`studentno`,`studentname`,`subjectno`,`studentresult`
FROM `student` AS s
LEFT JOIN `result` AS r
ON s.`studentno` = r.`studentno`;

on用来连接两个表,where用来限制条件。暂且这么粗浅的理解。

操作描述
inner join如果两个表中都匹配,就返回行
left join只要左表有的匹配,就返回行
right join只要右表有的匹配,就返回行

自连接

一张表自己和自己连接
比如:
父类表

id内容
2信息技术
3软件开发
5美术设计

子类表

父idid内容
28办公信息
36web开发
34数据库
57ps技术
-- 查询父子信息
-- categoryname是内容,categoryid是id,pid是父id
SELECT f.`categoryname` AS 'fname',s.`categoryname` AS 'sname'
FROM `category` AS f,`category` AS s
WHERE f.`categoryid` = s.`pid`;

分页和排序

排序: 关键字是 ORDER BY
ASC 是升序,DESC 是倒序

分页: 1.缓解数据库压力 2.提升用户体验
关键字是LIMIT ,跟两个参数,第一个参数是从第几个数据开始显示(从0开始数),第二个参数是一页有多少条数据


子查询

本质:在where语句中嵌套一个查询语句,就是将一个查询的结果作为另一个查询的条件。
举个例子:

-- 查询考试名单里的所有学生的名字和身份证号
SELECT `studentname`,`identitycard`
FROM `student`
WHERE `studentno` IN (
	SELECT `studentno` 
	FROM `result`
);

分组过滤

分组的关键字是 GROUP BY ,按组查询
过滤的关键字是 HAVING ,对分组后的结果再次过滤


MySQL函数

常用函数

官网提供的函数表

放点特别常用的:

数学运算
方法名用途
abs()绝对值
ceiling(num)向上取整
floor(num)向下取整
rand()返回一个0~1的随机数
sign(num)判断符号,正1,负-1
字符串
方法名用途
char_length(ch)字符串长度
concat(ch1,ch2)合并字符串
insert(ch1,num1,num2,ch2)ch1的第num1个字符开始,往后数num2个字符,ch2替换
lower(ch)全小写
upper(ch)全大写
instr(ch1,ch2)在ch1里找ch2第一个字符第一次出现的位置
replace(ch1,ch2,ch3)ch1里的ch2用ch3换
substr(ch,num1,num2)/substring(ch,num1,num2)ch里的第num1个字符开始,往后截取num2个
reverse(ch)字符串反转
时间函数
方法名用途
current_date()/curdate()获取当前日期
now()获取当前时间
localtime()获取本地时间
sysdate()系统时间
系统函数
方法名用途
system_user()/user()数据库当前使用者
version()获取当前版本

聚合函数

方法名用途
count()统计数量
sum()求和
avg()平均值
max()最大值
min()最小值

注意点:
count(*)和count(1)不会忽略null值的数据,一般来说是会忽略的。

数据库级别的MD5加密

-- UPDATE 表名 SET 字段名=MD5(字段名);
UPDATE `testmd5` SET `pwd`=MD5(`pwd`) WHERE id=1;

MD5()本质是个sql函数
也可以在插入的时候就加密

INSERT INTO `testmd5` VALUES(1,'abc',MD5('123456'));
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:34:18  更:2022-03-08 22:38:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:43:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码