MySQL 笔记

Posted 一只小阿大:)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 笔记相关的知识,希望对你有一定的参考价值。

目录


此文章记录作者笔记,对其他读者来说可能没用
虽然学过数据库,好久没用了,除了简单的语句其他的都忘记的差不多了,重新捡一下。

本文章图片截取自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 笔记的主要内容,如果未能解决你的问题,请参考以下文章

mysql数据库,排序的语句

MySQL笔记--MySQL排序查询

MySQL约束课堂笔记

MySQL使用笔记排序和限制数据记录查询

mysql做题笔记

MySQL数据库索引