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入门学习 -> 正文阅读

[大数据]MySQL入门学习

MySQL入门学习

MySQL常用命令

查看MySQL版本 mysql --version
创建数据库 created database 库名
查看所有数据库 show database
进入数据库 use 库名
查询当前使用的数据库 show database()
查看当前库中所有表 show tables
查看其他库中的表 show tables from <database name>
查看表结构 desc 表名
查看表创建语句 show created table <table name>
终止一条语句 ctrl + c
退出MySQL exit

MySQL查询语句

select 字段 from 表名 where 条件 group by 分组字段 order by 排序字段

简单查询

查询表中所有数据select 字段名 from 表名

条件查询

select 字段名 from 表名 where 条件
where关键字必须放在表名后面,条件支持如下运算符

运算符说明示例
=等于select * from user where name = 'jack'
<> 或 !=不等于select * from user where name <> 'lucy'
<小于select * from user where age <15
<=小于等于select * from user where age <=15
>大于select * from user where age >15
>=大于等于select * from user where age >=15
between…and…两个值之间select * from user where age between 10 and 15
is null为null(is not null不为null)select * from user where job is null
and并且select * from user where age >15 and job = 'coding'
or或者select * from user where name = 'jack' and name = 'lucy'
in包含,相当于多个orselect * from user where name in ('jack','lucy')
notnot取非,可以用在is null 和in中select * from user where job is not null
like模糊查询,支持% _,%匹配任意一个字符,下划线,一个下划线匹配一个字符select * from user where name like ‘_a%'匹配名字中第二个字母为a的

排序查询

使用字段名排序

select * from user order by age desc
通过年龄降序排序
将需要排序的字段放在order by后面可以实现排序查询
在字段后面添加desc表示降序,不写默认为升序,可以写asc表示升序
可以写多个字段,表示通过第一个字段排序,如果第一个字段相同,则使用第二个字段排序

使用字段所在位置排序(不常用)

select name,age,job from user order by 1
表示使用第一个字段进行排序,但是如果前面的字段换了位置,或者换一个字段,这个排序就不是按照我们所想的方式排序了。

分组查询

select * from user group by job
通过工作分组
将字段放在group by后面可以实现分组查询,

单行处理函数

单行处理函数表示对每一行的数据都使用这个函数来处理其中的数据,
可以使用在select 后面,表示返回的结果需要通过函数处理
也可以使用在 where后面,表示通过该函数处理后的结果需要匹配某些条件

lower(字段)

将括号里的字段转换成小写

upper(字段)

将括号里的字段转换成大写

substr(字段,起始下标,截取长度)

截取字符串,起始下标从1开始

length(字段)

获取当前字段中数据的长度

trim(字段名)

去除前后空格

str_to_date(字段)

将字符串转换成日期类型(注:该字符串的格式需要匹配到某一种日期格式)

dateformat(字段,表达式)

将日期通过表达式转换成字符串
常见表达式%Y-%m-%d %H:%i:%s可以任意排列组合
%Y
%m
%d
%H
%i:
%s

now()

获取当前时间

format(字段名,小数位)

格式化数字,保留几位小数

round(字段名)

将该字段四舍五入

rand()

生成 0到1的随机数

case 字段名 when 条件 then 结果 else 没有匹配到条件返回的结果 end

匹配该字段,如果满足条件,然后then中的结果,如果没有匹配到,则返回else中的结果
when … then … 可以写多个
语句必须有end结束符

ifnull(字段,默认值)

判断该字段中的数据是否为null,如果时null则返回默认值

多行处理函数

多行处理函数又叫做聚合函数,如果在没有分组的情况下使用,所得到的数据将只有一条
需要group by之后才能,否则得到得数据将没有意义
多行处理函数不能放在where后面使用,因为sql语句的执行顺序为,from --> where --> group by --> select
可以将函数放在having后面使用

常用的多行处理函数

函数说明
count取得记录数
sum求和
avg平均值
max最大值
min最小值

select语句的执行顺序

select 字段 
from 表名 
where 条件
group by 字段 
having 条件(聚合函数条件,需要个group by 同时出现)
order by 字段

以上语句的执行舒徐

  1. 首先执行 where语句过滤的原始数据
  2. 执行group by进行分组
  3. 执行having对分组数据进行操作
  4. 执行select选出数据
  5. 执行order by排序
    原则:能使用where中过滤的数据,尽量在where中过滤,效率较高,having专门用来过滤分组之后的数据

连接查询

通常数据库中的一张表无法完美的存放我们想要的数据,所以数据会在A表中存一部分,在B表中存一部分。
这样做一方面可以将数据存放完成;
另一方面可以将多条数据中相同的部分存放在同一张表中,从而节省数据库的空间
此时我们想要同时获取两张表的数据,就需要用到连接查询

SQL92

select * from user,class
from关键字后面写需要关联的两个或多个表可以实现连接查询,但是这样查询出来的结果会是两个表数据量的乘积(笛卡尔积查询)
所以需要在where后面增加条件,表示两张表的关联条件(这里的条件可以是等于,也可以是范围)
select * from user,class where user.class_id = class.id

SQL99

上面是sql92中的做法,这样有个弊端,
如果我们想在连接查询的结果再进行条件过滤的话,所有的查询条件都会出现在where后面,这是的sql语句阅读起来会相对困难
所有在SQL99中使用了join关键字来进行分离,使用 on关键字来表示两张表的关联关系

select * 
from user 
join class 
on user.class_id = class.id

MySQL事务控制

事务的四个特性

A: 原子性
说明事务的最小的工作单元。不可再分
C:一致性
所有事务要求,在同一个事务当中,所有惭怍必须同时成功,或者同时失败,以保证数据的一致性。
I:隔离性
A事务和B事务之间具有一定的隔离。
D:持久性
事务最终结束的一个保证。事务提交,就相当于将没有保存到硬盘上的数据保存到银盘上!

事务隔离性

事务和事务之间的隔离级别有哪些?从低到高依次是
读未提交:read uncommitted
事务A可以读取事务B未提交的数据63333333
读已提交:read committed
可重复度:repeatable read
序列化:serializable

常用命令

开启事务控制 start transaction
提交事务 commit
回滚 rollback


未完

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-10-23 12:34:35  更:2021-10-23 12:36:08 
 
开发: 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 3:40:11-

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