初识MySQL


初识MySQL

一、数据库基础知识

1、什么是数据库

数据库的概念诞⽣生于60年前,随着信息技术和市场的快速发展,数据库技术层出不穷,随着应用的扩展和深入,数据库的数量和规模越来越大,其诞生和发展给计算机信息管理带来了一场巨大的革命。

数据库的发展大致划分为以下几个阶段:⼈⼯管理阶段、文件系统阶段、数据库系统阶段、高级数据库阶段。其种类大概有3种:层次式数据库、网络式数据库和关系式数据库。不同种类的数据库按不同的数据结构来联系和组织。

对于数据库的概念,没有一个完全固定的定义,随着数据库历史的发展,定义的内容也有很大的差异,其中一种比较普遍的观点认为,数据库(DataBase,DB)是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。它是一个按数据结构来存储和管理数据的计算机软件系统。即数据库包含两层含义:保管数据的“仓库”,以及数据管理的方法和技术。

数据库的特点包括:实现数据共享,减少数据冗余;采用特定的数据类型;具有较⾼的数据独立性;具有统一的数据控制功能。

2、为何需要数据库

存储数据的方法

第一种方法:用大脑来记住数据
第二种方法:写在纸上
第三种方法:写在计算机的内存中
第四种方法:写成磁盘文件
……

3、数据库能够做什么

存储大量数据,方便检索和访问
保持数据信息的一致、完整
共享和安全
通过组合分析,产生新的有用信息

4、数据库和应用程序

应用程序数据库
作用响应操作并显示结果、向数据库请求数据存储数据、检索数据、生成新的数据
要求美观、操作简单方便统一、安全、性能等

5、时下流行的数据库

OracleSqlServerMySQL
Oracle公司的产品针对不同用户群体的多个版本开放源代码
产品免费、服务收费易用性好网站应用广泛

6、数据库的基本概念

在关系数据库中,数据库的表是一系列二维数组的集合,用来存储数据和操作数据的逻辑结构。它是由纵向的列和横向的行组成,行被称为记录,也叫作实体,是组织数据的单位;列被称为字段,每一列表示记录的一个属性,都有相应的描述信息,如数据类型、数据宽度等。

(1)实体

这些客观存在的、可以被描述的事物都是“实体”。

二、MySQL数据库

MySQL是一个开放源代码的数据库管理系统(DBMS),它是由MySQL AB公司开发、发布并支持的。MySQL是一个跨平台的开源关系数据库管理系统,广泛地应用在Internet上的中小型网站公司开发中。

1、MySQL的优势

1. 运行速度快。
2. 使用成本低:MySQL对多数个人用户来说是免费的。
3. 容易使用:与其他大型数据库的设置和管理相比,其复杂程度较低,易于学习。
4. 可移植性强:能够工作在众多不同的系统平台上,例如:Windows、Linux、Unix等。
5. 支持丰富的接口:提供了用于C、C++、Java、perl、PHP、Ruby、Python等语言的API
6. 支持查询语言:MySQL可以利用标准SQL语法和支持ODBC(开放式数据库连接)的应用程序
7. 安全性和连续性:十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器器时,所有的密码传输均采用加密形式,从而保证了密码安全。并且由于Mysql是网络化的,因此可以在因特网上的任何地方访问,提高数据共享的效率。

2、MySQL版本

MySQL分为2个不同的版本:

社区版(Community Server)企业版(Enterprise Server)
免费、开源收费,不可自由下载
适合普通用户适合对功能和安全要求高的企业用户
功能和服务更完善
它能够以很高的性价比为企业提供数据仓库应⽤,
支持ACID事务处理,
提供完整的提交、回滚、崩溃恢复和行级锁定功能。

3、MySQL的命名

MySQL的命名机制由3个数字和1个后缀组成,例如mysql-5.5.13.

第1个数字(5)是主版本号,描述了文件格式,所有版本5的发行版都有相同的文件格式。
第2个数字(5)是发行级别,主版本号和发行级别组合在一起便构成了发行序列号
第3个数字(13)是在此发行系列的版本号,随每次新发布版本递增,通常选择已经发行的最新版本。

4、MySQL的运行机制

(1)讲解思路

就一个SQL语句,如select * from tablename ,从支持接口进来后,进入连接池后做权限、验证等环节,然后判断是否有缓存,有则直接放回结果,否则进入SQL接口,在查询之前查询优化器进行优化,最后进行解析,查询。并通过存储引擎与文件交互。 然后再介绍MySQL的企业管理服务和工具。

(2)名词解释

支持接口:

不同的编程语言与SQL的交互

连接池:

管理缓冲用户连接,线程处理等需要缓存的需求

SQL接口:

接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL接口

解析器:

SQL命令传递到解析器的时候会被解析器验证和解析。解析器是由Lex和YACC实现的,是一个很长的脚本。

主要功能:
1. 将SQL语句分解成数据结构,并将这个结构传递到后续步骤,以后SQL语句的传递和处理就是基于这个结构的;例如将 select * from  tablename where 1=1;分解为select、*、from、tablename、where 、1=1,并去解析。
2. 如果在分解构成中遇到错误,那么就说明这个SQL语句是不合理的。

查询优化器:

SQL语句在查询之前会使用查询优化器对查询进行优化,使用的是“选取-投影-联接”策略进行查询。

例: select uid,name from user where gender = 1;
	a.先根据where 语句进行选取,而不是先将表全部查询出来以后再进行gender过滤
	b.先根据uid和name进行属性投影,而不是将属性全部取出以后再进行过滤
    将这两个查询条件联接起来生成最终查询结果。

缓存:

如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。

这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等。

存储引擎:
存储引擎是MySql中具体的与文件打交道的子系统。也是Mysql最具有特色的一个地方。

Mysql的存储引擎是插件式的。它根据MySql AB公司提供的文件访问层的一个抽象接口来定制一种文件访问机制(这种访问机制就叫存储引擎)。

现在有很多种存储引擎,各个存储引擎的优势各不一样,最常用的MyISAM、InnoDB、BDB。

MyISAM引擎,它查询速度快,有较好的索引优化和数据压缩技术。但是它不支持事务。

InnoDB支持事务,并且提供行级的锁定,应用也相当广泛。

Mysql也支持自己定制存储引擎,甚至一个库中不同的表使用不同的存储引擎,这些都是允许的。

MySQL5.7默认使用InnoDB存储引擎。

5、MySQL安装与配置

(1)安装步骤(略)
(2)基本配置
端口号:3306
默认字符集:utf-8
root密码设置
(3)安装目录介绍
bin:
include:
lib:
share:
(4)命令行连接MySQL
1)检查MySQL服务是否启动

方式1:Windows服务

方式2:dos命令

net start mysql57
net stop mysql57

修改了配置文件,必须重启MySQL服务才能生效。

2)连接MySQL

语法格式:

mysql -h服务器主机地址 -u 用户名 -p 密码

示例:

mysql -u root -p

方式1:dos命令启动

方式2:MySQL Command Line Client

默认root登录,仅输入密码。

三、MySQL数据库类型

1、系统数据库

安装完MySQL服务器后,MySQL会附带系统数据库,包括:

information_schema:主要存储系统中的一些数据库对象信息,如用户表信息、字段信息、权限信息、字符集信息和分区信息等。
performance_schema:主要存储数据库服务器性能参数
mysql:主要存储系统的用户权限信息
test:MySQL数据库管理系统自动创建的测试数据库,任何用户都可以使用

2、用户数据库

用户数据库是用户根据实际需求创建的数据库。本章后面的讲解主要针对用户数据库。

四、数据库基本操作

1、查看数据列表

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
6 rows in set (0.36 sec)

2、创建数据库

mysql> create database test;
Query OK, 1 row affected (0.08 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| test               |
| world              |
+--------------------+
7 rows in set (0.00 sec)

3、选择数据库

mysql> use test;
Database changed

4、删除数据库

mysql> drop database test;
Query OK, 0 rows affected (0.33 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sakila             |
| sys                |
| world              |
+--------------------+
6 rows in set (0.00 sec)

五、图形化MySQL管理工具

1、Navicat

2、PDMan


文章作者:Echo
版权声明:本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Echo !
  目录