MySQL 笔记
Posted 一只小阿大:)
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 笔记相关的知识,希望对你有一定的参考价值。
目录
- 数据库系统框图
- 常见的数据库
- SQL语句分类
- 数据库的数据类型
- 字段约束
- DDL Data Definition Language 数据定义语言
- DQL Data Query Language 数据查询语言
此文章记录作者笔记,对其他读者来说可能没用
虽然学过数据库,好久没用了,除了简单的语句其他的都忘记的差不多了,重新捡一下。
本文章图片截取自B站千锋教育mysql课程
数据库系统框图
常见的数据库
在关系型数据库数据量非常庞大的时候,会造成查询慢的问题,除了加where字段这样的数据库优化,那么就使用非关系型数据库提升查询速度
关系型数据库(Relational database)
常用的mysql(免费),Orecal(收费),以及本人大学学的SQL Server
非关系型数据库(Not only SQL)
面向检索的列式存储
HaBase(Hadoop子系统)
BigTable(Google)
面向高并发的缓存存储(键值对 Key_Value)
最常见的就是Redis
SQL语句分类
数据库的数据类型
数据库数据类型有三种,分别为数值类型,字符串类型,日期类型。
数值类型
字符串类型
日期类型
字段约束
除了下图四个约束,还有联合约束,自动增长约束。
联合约束:在一张表中,没有唯一的字段能当主键,这时候使用联合主键,将两个字段联合成的主键,一般联合约束使用较少,还不如添加个id字段当主键。
自动增长约束:比如主键id他肯定不能重复,那么我新增一条数据,id自动增长,但自动增长不能保证连续性,比如自动添加到了15,把7-15的数据删除,他自动添加还是会在16,不会跑到6。
主键约束和唯一约束区别
1.主键约束是唯一的,一张表中只有这一个,但唯一约束可以多个。
2.主键约束可以添加自动增长约束,唯一约束不行。
3.主键约束唯一但不能为空,唯一约束唯一可以为空
4.主键约束字段可以做为其他表的外键,唯一约束字段不可以做为其他表的外键。
DDL Data Definition Language 数据定义语言
数据库
数据表
DQL Data Query Language 数据查询语言
LIKE 模糊查询
数据库有下图这么多数据
执行模糊查询语句,查找表中user_name这一列包含d字符的数据
SELECT user_name FROM sys_user WHERE user_name LIKE ‘%d%’
查询结果如下图
% 代表任意多个的意思
‘%d%’ 表示只要包含d字符
‘%d’ 表示d字符结尾
‘d%’ 表示d字符开头
==’_’==表示一个字符
==’_d%’==表示第二个字符为d的
举例: SELECT user_name FROM sys_user WHERE user_name LIKE ‘_d%’
查询结果处理
最经典的是用当前年份减去年龄获取出生年份
下图是没处理的
下图是处理了,查询结果减一,并给字段取别名id
消除重复行 distinct
排序 order by
默认为升序(asc),降序为desc
排序根据你查询的字段来排序
多字段排序
多字段排序算是使用联合索引,那么就会遵循最左原则。
先tid倒序完了,再将phone倒序
先tid倒序完了,再将phone升序,默认升序,其实ASC可以不用写
聚合函数
count 统计函数
查询test_data表有多少条数据
也可以添加where条件
max 最大值
满足查询条件的最大值,下图是查询test_data表,data_test_item = ‘rteg’ id的最大值
min 最小值
满足查询条件的最小值,下图是查询test_data表,data_test_item = ‘rteg’ id的最小值
sum 计算总和
满足查询条件的总和,下图是查询test_data表,data_test_item = ‘rteg’ 所有 id 总和
avg 平均值
计算满足查询条件的id平均值
日期函数
日期函数有固定格式,按照固定格式进行添加删除,日期函数说到底也就是字符串函数。
数据库可以 now() 或者 sysdata() 获取当前电脑时间日期
字符串函数
字符串函数是通过sql语句对字符串进行处理
concat 字符串拼接
upper 字符串小写转大写
lower 字符串转小写
substring 截取指定列中任意字符
数据库从1开始计数不是从0开始计数,取2位
以上是关于MySQL 笔记的主要内容,如果未能解决你的问题,请参考以下文章