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. 2644. 数列 (Standard IO)

    这道题是道数论题,如果想对了的话会很快. 因为这道题实在是没有什么知识点,所以我直接上代码,代码上有很详细的注释: #include<iostream> #include<cstdi ...

  2. C#后台获取根路径

    C#后台获取当前系统根路径: string absoluteurl = Context.Request.Url.AbsoluteUri.Replace(Context.Request.RawUrl, ...

  3. MFC坐标问题

    页面空间中的矩形被称为窗口,设备空间中的矩形被称为视口. 页面空间与设备空间的转换示意图: 页面空间到设备空间的转换需要两个矩形的宽高比(转换因子). 设备空间到物理空间转换的唯一作用是平移,并由Wi ...

  4. asciinema.org -Record Your Terminal Share it with no fuss

    紀錄 Terminal 下指令的過程 http://asciinema.org/

  5. SpringMVC学习(2):经典的HelloWorld实现

    前一篇简单介绍了Spring MVC的一些知识,下面就要开始学习如何把Spring MVC运用到具体的项目中去. 首先还是从一个简单的Hello World项目说起: 我机器的开发环境为: Ubunt ...

  6. db2表

    生成列: CREATE TABLE t1 (c1 INT,                 c2 DOUBLE,                 c3 DOUBLE GENERATED ALWAYS ...

  7. ARM与X86 CPU架构区别

    CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法.早期的CPU全部是CISC架构,它的设计目的是 CISC要用最少的机器语言指 ...

  8. Linux: 给右键菜单加一个“转换图片为jpg格式”

    Linux上通常都会安装imagemagick这个小巧但又异常强大的工具.这个软件提供了一系列很好用的功能.这里说一说如何使用它的convert命令转换图片为jpg格式,以及如何把它添加到Thunar ...

  9. 【转】Git的安装与使用

    Git作为分布式的版本控制器有其独特的优势,可以不依赖与网络而进行版本控制,而SVN则必须有网才可以.今天咱们不讨论Git与SVN的具体区别.咱们先看看Git这个分布式版本控制器是怎么玩的.下面的内容 ...

  10. 【转载】将本地图片转成base64

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...