目录

一. 数据库基础概述

1.1 数据库管理系统概述

1.2 数据库特征

1.3 数据库类型

1.4 关系型数据库

1.5 常见关系数据库

二. MySQL数据库

2.1 简介

2.2 MySQL的Windows系统下安装

2.3 启动服务

2.4 停止服务

三. MySQL可视化工具

3.1 安装SQLyog可视化开发工具

3.2 SQLyog可视化开发工具使用

四. 构建测试数据

五. 存储引擎

5.1 InnoDB存储引擎

5.2 MyISAM存储引擎

5.3 MEMORY存储引擎

5.4 存储引擎的选择

六. MySQL字符集


一. 数据库基础概述

1.1 数据库管理系统概述

  • 数据库(Database-DB)是一种用来存储信息和维护信息的容器,严格地说数据库是“按照数据结构来组织、存储和管理信息的仓库”。
  • 数据库管理系统(Database Management System-DBMS)是一种管理数据库的软件。具有对数据存储、安全、一致性、并发操作、恢复和访问等功能。

1.2 数据库特征

  • 数据结构化
  • 实现数据共享
  • 减少数据冗余
  • 数据独立性

1.3 数据库类型

  • 网状型数据库
  • 层次型数据库
  • 关系型数据库

1.4 关系型数据库

  • 关系型数据库管理系统(RDBMS)是应用最广泛的一种数据库管理系统,关系型数据库管理系统以表、字段和记录等结构来组织数据。

        表用来保存数据,每个表由一组字段来定义其结构,记录则是表中的一条数据。

  • 关系数据库是指一些相关的表和其他数据库对象的集合。对于关系数据库来说,关系就是表的同义词。
  • 表是由行和列组成。
  1. 行是一条记录。
  2. 列是一组命名的属性,也称字段,需要定义数据类型,比如整数或者字符型。
  3. 行和列的交集称为数据项,指出了某列在某行上的值,也称为字段值。
  • 关系数据库的数据结构图示:

1.5 常见关系数据库

  1. Oracle
  2. DB2
  3. Sybase
  4. Microsoft SQL Server
  5. MySQL

MySQL是当前Web开发中使用最为广泛的数据库。


二. MySQL数据库

2.1 简介

MySQL是由瑞典 MySQL AB公司开发的一种开放源代码的关系型数据库管理系统,目前属于甲骨文公司旗下产品。由于MySQL是开放源代码的,任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。

2.2 MySQL的Windows系统下安装

下载MySQL的安装包 如下是6.0.11的下载地址:mysql6.0下载-MySQL数据库6.0下载 v6.0.11官方版(32位/64位)--pc6下载站

  • 点击mysql-essential-6.0.11-alpha-win32.msi,会出现安装向导,如下图。

  • 选择安装类型,一般都分为【Typical】【Complete】【Custom】。一般我们会选择【Typical】或【Complete】就可以了,如果要看一下安装细节,可以选择【Custom】,然后按【Next】继续。

  • 选择安装路径。视硬盘的大小自行选择。然后按【OK】。

  • 当前的安装设置信息,如果需要改变这些安装设置,可以按【Back】重新选择安装设置,确定无误之后按【Install】将MySQL安装到本地硬盘上。

  •  请耐心等待,安装向导正在安装MySQL,这需要话几分钟。

  • 这里只选择【Configure the MySQL Serve now】,如果你想注册MySQL也可以选择。确定后按【Finish】完成安装,接着进行服务器的配置。
  • 选择配置类型,分为【Detialed Configuration】(详细配置),【Standard Configuration】(标准配置)。为了了解整个详细的配置过程,我们选择【Detialed Configuration】后按【Next】继续。

  • 这里是选择服务器的类型。三种类型:【Developer Machine】(开发者类型),只占用很好的资源,消耗的内存资源最少。建议一般用户选择这项。【Server Machine】(服务器类型),占用的可用资源稍多一些,消耗的内存资源当然就多一些。【Dedicate MySQL Server Machine】(专门的数据库服务器),占用所有的可用资源,消耗内存最大。选好按【Next】继续。

  • 选择数据库的用途。【Multifunctional Database】,可以理解为通用行的数据库,支持所有数据库的操作,【Transaction Database Only】只进行事务处理,专用的服务类型。【Non-Transactional Database Only】非事务性处理,一般只进行监控,应用程序的数据分析,对MyISAM数据类型的支持仅限于非事务。主要一用途为主,这里选择第一项【Multifunctional Database】,然后按【Next】继续。

  • 对InnoDB Tablespace 进行设置,选择MySQL数据存放的位置空间。特别注意的一点,选择这个位置很重要,因为数据文件存放于此,确保数据文件不被破坏。这里选择安装路径下的空间作为数据表空间,按【Next】继续。

  • 设置服务器当前连接的数,【Decision Support DSS/OLAP】,这个不需要很多的连接数,一般在20个左右,【Online Transaction Processing(OLTP)】,连接数500个左右,一般自己的开发测试用选择这一项足够了,【Manual Setting】可以手动设置连接数。这里选择【Onine Transaction Processing (OLTP)】,按【Next】继续。

  • 【Enable TCP/IP Networking】启用TCP/IP连接,一般选择默认的就可以,也不要改变端口号,免得以后忘记;【Enable Strict Mode】启用严格模式,启用它的好处可以控制MySQL的数据的安全性。在这里,选择默认的就可以,按【Next】继续。这一步也很关键,设置字符集,【Standard Character Set】默认字符集,支持的其它字符的很少;【Best Support For Multilingualism】能支持大部分语系的字符,主要是以UTF-8的形式存储,所以一般选择这一项;

  • 这一步也很关键,设置字符集,【Standard Character Set】默认字符集,支持的其它字符的很少;【Best Support For Multilingualism】能支持大部分语系的字符,主要是以UTF-8的形式存储,所以一般选择这一项;

  • 设置root帐户的密码。如果是第一次安装MySQL直接输入一个新密码就OK了

  • 按【Execute】完成配置操作。值得注意的是在进行配置的时候容易出现一个问题,【Start service】操作失败,出现这个情况的原因是有其他MySQL的数据库在电脑里,当然办法也很简单,停止以前不用的MySQL服务,或者将其删除,然后再重新配置。

2.3 启动服务

  • 在进行MySQL配置过程中,设置Windows选项时若选择将MySQL安装为Windows的服务。可依次双击【我的电脑】 | 【控制面板】 | 【管理工具】 | 【服务】,在【服务】窗口中双击【MySQL】服务,在弹出的对话框中可单击【启动】按钮启动MySQL服务器。

2.4 停止服务

  • 与启动MySQL服务器相对应,停止MySQL服务器也可有对应的几种方式。若在配置MySQL服务器时将MySQL安装为Windows服务,停止MySQL服务器可依次双击【我的电脑】 | 【控制面板】 | 【管理工具】 | 【服务】,在【服务】窗口中双击【MySQL】服务,在弹出的对话框中可单击【停止】按钮即可停止MySQL服务器。


三. MySQL可视化工具

3.1 安装SQLyog可视化开发工具

下载安装包:Download SQLyog - free - latest version

  • 解压出Webyog_SQLyog_setup.exe安装程序双击运行开始安装。

  • 同意安装许可协议,一直点击下一步。

  • 其他的安装步骤全部默认,一直到安装完成。

3.2 SQLyog可视化开发工具使用

  • 点击新建,新建MySQL数据库连接,随便输入一个名称,点击下一步。

  • 填写MySQL数据库的IP,用户,密码,端口,点击测试连接。

  • 如果显示成功,再点击连接按钮就OK了

  • 连接上MySQL数据库后就可以对MySQL数据库进行管理了。


四. 构建测试数据

  • 将以下脚本SQL语句全部复制到test库下的查询窗口并执行

  • 测试数据脚本
drop TABLE emp;
drop TABLE dept;
drop TABLE salgrade;
create table dept
(
deptno integer(4) not null,
dname varchar(14),
loc varchar(13)
);
alter table dept add constraint pk_dept primary key (deptno);
create table emp
(
empno integer(4) not null,
ename varchar(10),
job varchar(9),
mgr integer(4),
hiredate date,
sal decimal(7,2),
comm decimal(7,2),
deptno integer(2)
);
alter table emp add constraint pk_emp primary key (empno);
alter table emp add constraint fk_deptno foreign key (deptno) references dept (deptno);
create table salgrade
(
grade integer(1),
losal decimal(7,2),
hisal decimal(7,2)
);
insert into DEPT (DEPTNO, DNAME, LOC) values (10, 'ACCOUNTING', 'NEW YORK');
insert into DEPT (DEPTNO, DNAME, LOC) values (20, 'RESEARCH', 'DALLAS');
insert into DEPT (DEPTNO, DNAME, LOC) values (30, 'SALES', 'CHICAGO');
insert into DEPT (DEPTNO, DNAME, LOC) values (40, 'OPERATIONS', 'BOSTON');
insert into SALGRADE (GRADE, LOSAL, HISAL) values (1, 700, 1200);
insert into SALGRADE (GRADE, LOSAL, HISAL) values (2, 1201, 1400);
insert into SALGRADE (GRADE, LOSAL, HISAL) values (3, 1401, 2000);
insert into SALGRADE (GRADE, LOSAL, HISAL) values (4, 2001, 3000);
insert into SALGRADE (GRADE, LOSAL, HISAL) values (5, 3001, 9999);
-- 下面要特别注意,%d-%m-%Y 里的 d 和 m 一定要小写
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7369, 'SMITH', 'CLERK', 7902, STR_TO_DATE('17-12-1980', '%d-%m-%Y'), 800.00, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7499, 'ALLEN', 'SALESMAN', 7698, STR_TO_DATE('20-02-1981', '%d-%m-%Y'), 1600.00, 300.00, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7521, 'WARD', 'SALESMAN', 7698, STR_TO_DATE('22-02-1981', '%d-%m-%Y'), 1250.00, 500.00, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7566, 'JONES', 'MANAGER', 7839, STR_TO_DATE('02-04-1981', '%d-%m-%Y'), 2975.00, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7654, 'MARTIN', 'SALESMAN', 7698, STR_TO_DATE('28-09-1981', '%d-%m-%Y'), 1250.00, 1400.00, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7698, 'BLAKE', 'MANAGER', 7839, STR_TO_DATE('01-05-1981', '%d-%m-%Y'), 2850.00, null, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7782, 'CLARK', 'MANAGER', 7839, STR_TO_DATE('09-06-1981', '%d-%m-%Y'), 2450.00, null, 10);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7788, 'SCOTT', 'ANALYST', 7566, STR_TO_DATE('19-04-1987', '%d-%m-%Y'), 3000.00, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7839, 'KING', 'PRESIDENT', null, STR_TO_DATE('17-11-1981', '%d-%m-%Y'), 5000.00, null, 10);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7844, 'TURNER', 'SALESMAN', 7698, STR_TO_DATE('08-09-1981', '%d-%m-%Y'), 1500.00, 0.00, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7876, 'ADAMS', 'CLERK', 7788, STR_TO_DATE('23-05-1987', '%d-%m-%Y'), 1100.00, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7900, 'JAMES', 'CLERK', 7698, STR_TO_DATE('03-12-1981', '%d-%m-%Y'), 950.00, null, 30);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7902, 'FORD', 'ANALYST', 7566, STR_TO_DATE('03-12-1981', '%d-%m-%Y'), 3000.00, null, 20);
insert into EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
values (7934, 'MILLER', 'CLERK', 7782, STR_TO_DATE('23-01-1982', '%d-%m-%Y'), 1300.00, null, 10);
  • 查看测试数据


五. 存储引擎

  • 存储引擎就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎简而言之就是指表的类型。数据库的存储引擎决定了表在计算机中的存储方式。
  • 在Oracle和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的。而MySQL数据库提供了多种存储引擎,用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎,MySQL的核心就是存储引擎。

5.1 InnoDB存储引擎

 InnoDB存储引擎的特点:

  1. 支持外键(Foreign Key)
  2. 支持事务(Transaction):如果某张表主要提供OLTP支持,需要执行大量的增、删、改操作(insert、delete、update语句),出于事务安全方面的考虑,InnoDB存储引擎是更好的选择。
  3. 最新版本的MySQL已经开始支持全文检索。

5.2 MyISAM存储引擎

MyISAM存储引擎的特点:

  1. MyISAM具有检查和修复表的大多数工具。
  2. MyISAM表可以被压缩
  3. MyISAM表最早支持全文索引
  4. 但MyISAM表不支持事务
  5. 但MyISAM表不支持外键(Foreign Key)。
  6. 如果需要执行大量的select语句,出于性能方面的考虑,MyISAM存储引擎是更好的选择。

5.3 MEMORY存储引擎

  • MEMORY存储引擎的特点:
  1. MEMORY存储引擎是MySQL中一类特殊的存储引擎。该存储引擎使用存在于内存中的内容来创建表,每个表实际对应一个磁盘文件,格式为.frm。这类表因为数据在内存中,且默认使用HASH索引,所以访问速度非常快;但一旦服务关闭,表中的数据会丢失。
  2. 每个MEMORY表可以放置数据量的大小受max_heap_table_size系统变量的约束,初始值为16MB,可按需求增大。此外,在定义MEMORY表时可通过MAX_ROWS子句定义表的最大行数。
  3. 该存储引擎主要用于那些内容稳定的表,或者作为统计操作的中间表。对于该类表需要注意的是,因为数据并没有实际写入磁盘,一旦重启,则会丢失。
  • MySQL5.7默认的默认的存储引擎是InnoDB。

5.4 存储引擎的选择

  • 不同存储引擎都有各自的特点,以适应不同的需求
  • MySQL存储引擎功能对比

功 能

InnoDB

MyISAM

Memory

存储限制

64TB

256TB

RAM

支持事务

支持

空间使用

内存使用

支持数据缓存

支持

插入数据速度

支持外键

支持


六. MySQL字符集

  • 字符(Character)是指人类语言最小的表义符号,例如'A'、'B'等。
  • 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这个数值就是字符的编码(Character Encoding)。
  • 给定一系列字符并赋予对应的编码后,所有这些字符和编码对组成的集合就是字符集(Character Set)。MySQL中提供了多种字符集,例如latin1、utf8、gbk等。
  • 字符序(Collation)是指在同一字符集内字符之间的比较规则。只有确定字符序后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系。每个字符序唯一对应一种字符集,一个字符集可以对应多种字符序,其中有一个是默认字符序(Default Collation)。
  • MySQL中的字符序命名规则:以字符序对应的字符集名称开头,以国家名居中(或以general居中),以ci或cs或bin末尾。例如:latin1字符集对应有latin1_swedish_ci、latin1_spanish_ci、latin1_german1_ci等字符序。以ci结尾的字符序表示大小写不敏感;以cs结尾的字符序表示大小写敏感;以bin结尾的字符序表示按编码值比较。例如在字符序gbk_general_ci规则中,字符'a'和'A'是等价的。
  • MySQL提供的下列命令可以在不影响其它数据库字符集的基础上临时修改当前的字符集
    1. SET character_set_client = gbk;
    2. SET character_set_connection = gbk;
    3. SET character_set_database = gbk;
    4. SET character_set_results = gbk;
    5. SET character_set_server = gbk;
    6. SET collation_connection = gbk_chinese_ci ;
    7. SET collation_database = gbk_chinese_ci ;
    8. SET collation_server = gbk_chinese_ci ;

数据库到底是什么?举例MySQL给你讲明白相关推荐

  1. 什么是机器学习?有哪些分类?到底有什么用?终于有人讲明白了

    导读:在业界,近些年来机器学习在人机对弈.语音识别.图像识别等场景下取得了蓬勃发展,引发了人们对人工智能改造未来社会的无限热情和期待.但在学界,却有不少科学家指出了机器学习的发展局限.加拿大滑铁卢大学 ...

  2. 互联网搜索的哪些环节 机器学习_什么是机器学习?有哪些分类?到底有什么用?终于有人讲明白了...

    导读:在业界,近些年来机器学习在人机对弈.语音识别.图像识别等场景下取得了蓬勃发展,引发了人们对人工智能改造未来社会的无限热情和期待.但在学界,却有不少科学家指出了机器学习的发展局限.加拿大滑铁卢大学 ...

  3. 直播 | “深度学习”到底是什么?这篇文章讲明白了

    随着阿尔法狗.无人驾驶.智能翻译的横空出世,人工智能这个已经存在60多年的词语,仿佛一夜之间重新成为热词.同时被科技圈和企业界广泛提及的还有机器学习.深度学习.神经网络-- 但事实是,如此喧嚣热烈的气 ...

  4. mysql是否需要设置外键_数据库到底需不需要设置外键?

    在大型系统中(性能要求不高,安全要求高),最好使用外键(外键可以增强数据库数据的完整性和一致性) 在大型系统中(性能要求高,安全自己控制),不用外键(有外键约束的话,插入字段会进行检查,影响效率) 小 ...

  5. mysql的cell_这篇发生Cell的数据库到底特殊在哪里?

    原标题:这篇发生Cell的数据库到底特殊在哪里? 一个表面上"很水"实际上"很牛逼"的数据库 各位小伙伴们大家早上好~欢迎大家继续来听我碎碎念circRNA.我 ...

  6. java sql变更存储,MySQL更改数据库数据存储目录,mysql数据存储

    MySQL更改数据库数据存储目录,mysql数据存储 MySQL数据库默认的数据库文件位于 /var/lib/mysql 下,有时候由于存储规划等原因,需要更改 MySQL 数据库的数据存储目录.下文 ...

  7. 【数据库】(三)-- mysql 数据库操作应用

    [数据库](三)-- mysql 数据库操作应用 操作说明 使用 navicat 针对 mysql 进行 sql 的使用,mysql 运行在本地的 docker 环境的应用容器中. 语法和关键字什么的 ...

  8. NoSQL 数据库和传统关系型数据库到底有什么区别?

    人们都会问,数据库到底有哪些不一样的关系 nosql数据库和传统关系库到底啥区别? 问题来自社区会员,回答来自社区交流,供同行参考 @zhuqibs Mcd 软件开发工程师: 长篇大论就不写了,就写几 ...

  9. [数据库] 一文读懂Mysql数据库索引实现原理

    咱们用了这么久Mysql数据库做项目,你知道数据是怎么存在数据库里吗?他们是如何存储的吗? 今天咱们就来扒一扒Mysql数据库索引的底层实现,Mysql数据库的索引是由都是由B+树实现的,那为什么不是 ...

最新文章

  1. 研修项目文件丢失的处理思路
  2. 什么是 AWS Data Pipeline
  3. azure 使用_如何使用JavaScript在Azure上开始使用SignalR
  4. 李沐:工作五年反思!
  5. int类型和byte类型的强制类型转换
  6. 求斐波那契数列第n位的几种实现方式及性能对比(c#语言)
  7. 从零开始搭建我的网上商城 - Pika商城
  8. 咖说丨去中心化借贷的逻辑和商业基础
  9. rpi4b引导ubuntu分析------distro_bootcmd
  10. Emacs,最强编辑器,没有之一
  11. 产业“上链”至深处,京东云如何作为?
  12. null underfined NaN 判断
  13. 常用显卡驱动下载合集
  14. idea解决Command line is too long. Shorten command line for ServiceStarter or also for Application报错
  15. 企业邮箱哪家最优惠?企业邮箱最优惠价格来了
  16. 酷狗服务器显示失败怎么回事,酷狗音乐如何分享音乐失败怎么办 ?酷狗音乐分享音乐失败如何解决?...
  17. vue中使用mapBox绘制圆形范围
  18. 预言机新手 Band Protocol闪亮 登场!
  19. 微信二次分享改变主标题副标题
  20. java10000000处理秒杀_知道硬盘很慢,但没想到会比 CPU Cache 慢 10000000 倍!

热门文章

  1. 站在新的起点上,扬帆起航
  2. EM算法估计GMM (二维高斯混合模型)参数 python 2.7(西瓜书版)
  3. 个人信息的泄露到底严重到了什么地步?
  4. 自适应动态规划学习笔记(3)
  5. 计算机如何进入桌面,电脑如何设置开机直接进入桌面 开机直接进入桌面设置...
  6. jsDOM编程-小球在盒子里来回撞击
  7. 电赛2019年F题纸张测量FDC2214的初始化代码(含STM32f103zet6和f103c8t6)胎教式
  8. 大连民族学院计算机科学与工程学院,赵丕锡 - 大连民族大学 - 计算机科学与工程学院...
  9. EXCEL如何批量更改MAC地址格式?
  10. 基于springboot的疫情防控系统