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. win10下cmd备注

    要复制cmd里的字符串,右键选标记,选中待复制的字符串,ctrl+c 复制,ctrl+v粘贴内容(或者右键选择复制).这项操作支持复制cmd里的内容到其他地方,如txt里 win10之前cmd不支持c ...

  2. 更新python的依赖包,亲测!

    输入pip install --upgrade pandas 无需卸载,让它自己更新就好 pandas可以改成别的包

  3. docker 提示 Drive has not been shared 错误

    Creating laradock_docker-in-docker_1 ... Creating laradock_docker-in-docker_1 ... error ERROR: for l ...

  4. PAT甲级【2019年3月考题】——A1159 Structure_of_a_BinaryTree【30】

    Suppose that all the keys in a binary tree are distinct positive integers. Given the postorder and i ...

  5. web前端知识体系大全【转载】

    自己总结的web前端知识体系大全[欢迎补充]   1. 前言 大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在 ...

  6. uWSGI、WSGI、uwsgi、wsgiref、werkzeug

    WSGI WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,也不是python模块.框架.API或者任何软件,只是一种规范,描述web server如何与w ...

  7. link address

    http://en.wikipedia.org/wiki/Software_design http://www.codeproject.com/Articles/70061/Architecture- ...

  8. Flask-Login的实现

    Flask-Login Flask-Login 为 Flask 提供用户 session 的管理机制.它可以处理 Login.Logout 和 session 等服务. 作用: 将用户的 id 储存在 ...

  9. 转载:tomcat过程原理

    基于Java的Web 应用程序是 servlet.JSP 页面.静态页面.类和其他资源的集合,它们可以用标准方式打包,并运行在来自多个供应商的多个容器.Web 应用程序存在于结构化层次结构的目录中,该 ...

  10. Dubbox管理中心的部署及使用

    安装: 我们在开发时,需要知道注册中心都注册了哪些服务,以便我们开发和测试.我们可以通过部署一个管理中心来实现.其实管理中心就是一个web应用,部署到tomcat即可. (1)编译源码,得到war包 ...