MySQL随笔 - Part I
最近,在复习一些常用的技术栈,试着从文档和源代码两部分来分析这些软件。当然,也由于本人的言语表达能力、技术能力有限,所以一些文章会有个别错误及表达问题。希望包容指出~
然后关于这些知识的来源,主要是官方技术文档和源代码两个方面,同时尽量减少直接贴代码(除非非常必要及精彩的部分)。
关于MySQL
我们知道MySQL是一个关系型数据库,关系型数据库将数据存储在不同的表里。数据库里的主要元素有行、列、数据库、表、视图等元素,MySQL将这些元素的复杂度封装起来,对外以端口3306的形式提供给我们数据库服务,我们可以用它来做模型、数据的关联。常见的关联如一对一、一对多。
tips: MySQL常用的数据查询语句是符合SQL规范的,何为SQL?它的全称其实是Structured Query Language,即结构化数据查询语句。
MySQL是经典的c/s架构,client和server之间可以通过tcp/ip协议来进行数据交换,一个简单的架构图如下:
client端可以是jdbc、go-sql-driver和MySQL自带的客户端等。这部分后面会展开成一章节的通过抓包等方式来详细叙述其经过。
常用功能
MySQL本身具有以下几个主要功能:
- 丰富的数据类型支持,如
FLOAT
,DOUBLE
,CHAR
,VARCHAR
,BINARY
,VARBINARY
,TEXT
,BLOB
,DATE
,TIME
,DATETIME
,TIMESTAMP
,YEAR
,SET
,ENUM
- 常用的函数支持,如
COUNT()
,AVG()
,STD()
,SUM()
,MAX()
,MIN()
, andGROUP_CONCAT()
- 常用的用户名/密码的鉴权方式
- 丰富的生态、代码仓库