MySQL介绍

[TOC]

一、MySQL版本

1、mysql主流版本

mysql 5.6 5.6.36 5.38 5.6.40
mysql 5.7 5.7.18 5.7.20 5.7.22

2、版本选择

企业版本选择:6~12月份的GA版本

二、MySQL连接与实例

1、MySQL的C/S结构

# 两种连接方法
TCP/IP : 可以连接远程,也可以本地连接
SOCKET : 连接本地
mysql -uroot -poldboy123 -h 10.0.0.200 -P3306
mysql -uroot -poldboy123 -S /tmp/mysql.sock

2、MySQL实例

实例 = mysqld + 内存结构

实例 = mysqld + master thread + N Thread + 内存结构

三、mysql三层结构

1、连接层(连接上数据库)

(1)提供链接协议(TCP,SOCKET)

(2)用户验证

(3)提供专用链接线程,每登录一个用户,就会起一个专用的线程

2、SQL层(从哪里获取数据)

(1)接受上层的命令

(2)语法检测

(3)语义(什么类型增删改查?)、权限检测

(4)专用解析器解析SQL,解析成多种执行计划

(5)优化器:选择一个代价最低的执行计划

(6)执行器:按照优化器的选择,执行SQL语句,得出获取数据方法

(7)查询缓存:默认是关闭的,一般会使用redis产品替代

(8)记录日志:二进制日志

3、存储引擎层(获取数据,结构化成表)

按照SQL层结论,找相应数据,结构化成表的形式

四、MySQL的逻辑结构

1、库

存储数据的地方,包括库名、属性

2、表(二维表)

包括元数据(表名,表的属性,列,记录)

五、SQL语句

1、类型

DDL数据定义语言

DCL数据 控制语言

DML数据操作语言

DQL数据查询语言

2、SQL操作的对象

SQL操作的书库和表

3、SQL语句之DDL规范

(1)库定义

CREATE DATABASE
SHOW DATABASES
DROP DATABASE
  1. 关键字大写,字面量小写
CREATE DATABASE bbs CHARSET utf8mb4
  1. 库名只能小写,不能是数字开头,不能为预留关键字

  2. 库名和业务名有关,例如:blog_user

  3. 必须加字符集CHARSET utf8mb4

(2)表定义

CREATE TABLE
DROP TABLE
ALTER TABLE
  1. 关键字大写(非必须),字面名小写(必须)

  2. 表名必须小写,不能是数字开头,不能为预留关键字

  3. 表名和业务名有关

  4. 必须加存储引擎和字符集

  5. 必须有主键: PRIMARY KEY

  6. 合适的数据类型

  7. 必须加注释:COMMENT '用户名'

  8. 尽量避免外键

  9. 建立合理的索引

4、SQL语句之DCL规范

grant
revoke
lock

5、SQL语句之DML规范

insert
update
delete
  1. insert 语句按批量插入数据

  2. update 必须加 where 条件

  3. delete 尽量替换为update,如添一个状态量字段 state

  4. 如果有清空全表的需求,使用 truncate

6、SQL语句之DQL规范

select
show
  1. select 语句避免使用select * from t1;,使用select id,name from t1;

  2. select 语句尽量加等值的where条件,select id,name from t1 where age>20;

  3. select 语句对于范围查询,select 语句对于范围查询,例如 :select * from t1 where id>200; 尽量添加 limit 或者 id>200 and id<300 union all id>300 and id<400

  4. select 的where 条件,不要使用 <> like '%name' not in not exist

  5. 不要出现3表以上的表连接,避免子查询

  6. where条件中不要出现函数操作

数据库(一)—— MySQL介绍的更多相关文章

  1. 1 数据库开发--MySQL介绍

    1.数据库管理软件 C/S 并发.锁 :SQL语句.语法 基本管理和语法学习 一.介绍: mysql数据库管理软件: 套接字:服务端,客户端:客户端可访问服务端得数据 1.支持并发:操作得是共享得数据 ...

  2. 数据库 - 初识MySQL - 介绍/安装

    一.介绍: mysql数据库管理软件: 套接字:服务端,客户端:客户端可访问服务端得数据 1.支持并发:操作得是共享得数据 2.处理锁,数据安全,性能 3.用别人得软件,得照着别人得规范,组织自己得语 ...

  3. {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句

    MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 ...

  4. Mysql数据库的简单介绍与入门

    Mysql数据库的简单介绍与入门 前言 一.下载与安装 1.下载 官网下载MYSQL5.7.21版本,链接地址https://www.mysql.com/downloads/.下载流程图如下: 找到M ...

  5. 【数据库】MySQL & SQL 介绍

    文章目录 MySQL & SQL 介绍 1.MySQL的背景 2.MySQL的优点 3.MySQL的安装 4.MySQL服务的启动和停止 方式一 方式二 5.MySQL服务的登录和退出 方式一 ...

  6. 数据库 之MySQL 简单教程

      So Easy系列之MySQL数据库教程 1.   数据库概述 1.1.  数据库概述 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和 ...

  7. mysql介绍及安装

    一.MySQL介绍 1.标志 MySQL的海豚标志的名字叫"sakila",它是由MySQL AB的创始人从用户在"海豚命名"的竞赛中建议的大量的名字表中选出的 ...

  8. Mysql数据库知识-Mysql索引总结 mysql mysql数据库 mysql函数

    mysql数据库知识-Mysql索引总结: 索引(Index)是帮助MySQL高效获取数据的数据结构. 下边是自己整理的资料与自己的学习总结,,做一个汇总. 一.真的有必要使用索引吗? 不是每一个性能 ...

  9. 迁移应用数据库到MySQL Database on Azure

    by Rong Yu 有用户问怎么把他们应用的数据库迁移到MySQL Database on Azure上,有哪些方式,有没有需要注意的地方.今天我们来概括介绍一下迁移应用数据库到MySQL Data ...

随机推荐

  1. git 裸库

    初始化一个空的裸仓库 $ cd /home/repo $ mkdir tproject.git $ cd tproject.git $ git init - -bare      注:这是在服务器上运 ...

  2. linux下的命令是如何运行的

    linux下的命令分为内建命令.可执行文件.脚本文件 shell终端里键入一个命令,如ls.cd.bash,shell会先查询一个环境变量PATH,它存了各种可执行文件的路径,输入$PATH可以打印变 ...

  3. 【Nacos】数据一致性

    转自:https://blog.csdn.net/liyanan21/article/details/89320872 目录 一.Raft算法 二.Nacos中Raft部分源码 init() 1. 获 ...

  4. es6 Promise.reject()方法

    es6 Promise.reject()方法:https://blog.csdn.net/ixygj197875/article/details/79188195

  5. ==和equal的区别

    1.“==”运算符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符. 如果一个变量指向的数据是对 ...

  6. Spring学习笔记(12)——aop

    先了解AOP的相关术语:1.通知(Advice):通知定义了切面是什么以及何时使用.描述了切面要完成的工作和何时需要执行这个工作.2.连接点(Joinpoint):程序能够应用通知的一个"时 ...

  7. Jquery的$.ajax、$.get、$.post发送、接收JSON数据及回调函数用法

    平时研究代码时,经常会遇到AJAX的相关用法,做项目时才真正体会到Ajax的强大之处(与服务器数据交互如此之便捷,更新DOM节点而不用刷新整个页面),以及运用的频繁程度.今天整理了一下自己之前没搞清楚 ...

  8. HTML中的img标签属性

    <img>标签 标签用于插入图片.它是单独使用的,没有闭合标签. <img src="https://fakeimg.pl/350x200/ff0000,128/000,2 ...

  9. 大哥带我走渗透ii--时间盲注,布尔盲注

    5/27 基于布尔的盲注 我连题目都看不懂555,先去补充一点知识.https://blog.csdn.net/weixin_40709439/article/details/81355856 返回的 ...

  10. 针对类别的5中softmax_cross_entropy loss计算

    # ---------------------------- #! Copyright(C) 2019 # All right reserved. # 文件名称:xxx.py # 摘 要:五种方式实现 ...