数据库(一)—— MySQL介绍
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
- 关键字大写,字面量小写
CREATE DATABASE bbs CHARSET utf8mb4
库名只能小写,不能是数字开头,不能为预留关键字
库名和业务名有关,例如:blog_user
必须加字符集
CHARSET utf8mb4
(2)表定义
CREATE TABLE
DROP TABLE
ALTER TABLE
关键字大写(非必须),字面名小写(必须)
表名必须小写,不能是数字开头,不能为预留关键字
表名和业务名有关
必须加存储引擎和字符集
必须有主键:
PRIMARY KEY
合适的数据类型
必须加注释:
COMMENT '用户名'
尽量避免外键
建立合理的索引
4、SQL语句之DCL规范
grant
revoke
lock
5、SQL语句之DML规范
insert
update
delete
insert 语句按批量插入数据
update 必须加 where 条件
delete 尽量替换为update,如添一个状态量字段 state
如果有清空全表的需求,使用 truncate
6、SQL语句之DQL规范
select
show
select 语句避免使用
select * from t1;
,使用select id,name from t1;
select 语句尽量加等值的where条件,
select id,name from t1 where age>20;
select 语句对于范围查询,select 语句对于范围查询,例如 :
select * from t1 where id>200;
尽量添加limit
或者id>200 and id<300 union all id>300 and id<400
select 的where 条件,不要使用
<>
like '%name'
not in
not exist
不要出现3表以上的表连接,避免子查询
where条件中不要出现函数操作
数据库(一)—— MySQL介绍的更多相关文章
- 1 数据库开发--MySQL介绍
1.数据库管理软件 C/S 并发.锁 :SQL语句.语法 基本管理和语法学习 一.介绍: mysql数据库管理软件: 套接字:服务端,客户端:客户端可访问服务端得数据 1.支持并发:操作得是共享得数据 ...
- 数据库 - 初识MySQL - 介绍/安装
一.介绍: mysql数据库管理软件: 套接字:服务端,客户端:客户端可访问服务端得数据 1.支持并发:操作得是共享得数据 2.处理锁,数据安全,性能 3.用别人得软件,得照着别人得规范,组织自己得语 ...
- {MySQL数据库初识}一 数据库概述 二 MySQL介绍 三 MySQL的下载安装、简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 初识sql语句
MySQL数据库初识 MySQL数据库 本节目录 一 数据库概述 二 MySQL介绍 三 MySQL的下载安装.简单应用及目录介绍 四 root用户密码设置及忘记密码的解决方案 五 修改字符集编码 六 ...
- Mysql数据库的简单介绍与入门
Mysql数据库的简单介绍与入门 前言 一.下载与安装 1.下载 官网下载MYSQL5.7.21版本,链接地址https://www.mysql.com/downloads/.下载流程图如下: 找到M ...
- 【数据库】MySQL & SQL 介绍
文章目录 MySQL & SQL 介绍 1.MySQL的背景 2.MySQL的优点 3.MySQL的安装 4.MySQL服务的启动和停止 方式一 方式二 5.MySQL服务的登录和退出 方式一 ...
- 数据库 之MySQL 简单教程
So Easy系列之MySQL数据库教程 1. 数据库概述 1.1. 数据库概述 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和 ...
- mysql介绍及安装
一.MySQL介绍 1.标志 MySQL的海豚标志的名字叫"sakila",它是由MySQL AB的创始人从用户在"海豚命名"的竞赛中建议的大量的名字表中选出的 ...
- Mysql数据库知识-Mysql索引总结 mysql mysql数据库 mysql函数
mysql数据库知识-Mysql索引总结: 索引(Index)是帮助MySQL高效获取数据的数据结构. 下边是自己整理的资料与自己的学习总结,,做一个汇总. 一.真的有必要使用索引吗? 不是每一个性能 ...
- 迁移应用数据库到MySQL Database on Azure
by Rong Yu 有用户问怎么把他们应用的数据库迁移到MySQL Database on Azure上,有哪些方式,有没有需要注意的地方.今天我们来概括介绍一下迁移应用数据库到MySQL Data ...
随机推荐
- 2644. 数列 (Standard IO)
这道题是道数论题,如果想对了的话会很快. 因为这道题实在是没有什么知识点,所以我直接上代码,代码上有很详细的注释: #include<iostream> #include<cstdi ...
- C#后台获取根路径
C#后台获取当前系统根路径: string absoluteurl = Context.Request.Url.AbsoluteUri.Replace(Context.Request.RawUrl, ...
- MFC坐标问题
页面空间中的矩形被称为窗口,设备空间中的矩形被称为视口. 页面空间与设备空间的转换示意图: 页面空间到设备空间的转换需要两个矩形的宽高比(转换因子). 设备空间到物理空间转换的唯一作用是平移,并由Wi ...
- asciinema.org -Record Your Terminal Share it with no fuss
紀錄 Terminal 下指令的過程 http://asciinema.org/
- SpringMVC学习(2):经典的HelloWorld实现
前一篇简单介绍了Spring MVC的一些知识,下面就要开始学习如何把Spring MVC运用到具体的项目中去. 首先还是从一个简单的Hello World项目说起: 我机器的开发环境为: Ubunt ...
- db2表
生成列: CREATE TABLE t1 (c1 INT, c2 DOUBLE, c3 DOUBLE GENERATED ALWAYS ...
- ARM与X86 CPU架构区别
CISC(复杂指令集计算机)和RISC(精简指令集计算机)是当前CPU的两种架构.它们的区别在于不同的CPU设计理念和方法.早期的CPU全部是CISC架构,它的设计目的是 CISC要用最少的机器语言指 ...
- Linux: 给右键菜单加一个“转换图片为jpg格式”
Linux上通常都会安装imagemagick这个小巧但又异常强大的工具.这个软件提供了一系列很好用的功能.这里说一说如何使用它的convert命令转换图片为jpg格式,以及如何把它添加到Thunar ...
- 【转】Git的安装与使用
Git作为分布式的版本控制器有其独特的优势,可以不依赖与网络而进行版本控制,而SVN则必须有网才可以.今天咱们不讨论Git与SVN的具体区别.咱们先看看Git这个分布式版本控制器是怎么玩的.下面的内容 ...
- 【转载】将本地图片转成base64
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...