一.什么是MYSQL?
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。
由于MySQL是开放源码软件,对于一般的个人使用者和中小型企业来说,MySQL提供的功能绰绰有余,可以大大降低开发成本。
Linux作为操作系统,Apache 或Nginx作为 Web 服务器,MySQL 作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于这四个软件都是免费或开放源码软件(FLOSS),因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统,被业界称为“LAMP“或“LNMP”组合。
二.MYSQL的基本命令
语法: mysql (参数) (数据库名称)
参数: -u :用户名称
-p:登录用户的密码,-p和密码之间没有空格
-h:登录方式,远程的话就是远程主机的ip地址,也可以是本地登录localhost
-P:mysql的登录的端口号,一般默认的mysql的端口号为3306
数据库名称:需要登陆进的数据库的名称
-e:后面跟的是SQL语句,-e参数的意思是,登录进数据库执行相应的 -e 后面的语句的操作并输出在终端上,最后退出数据库。免交互的执行命令。
三.数据库的登录
1.使用命令行(Windows)/shell(Linux)登录:
在Windows上:
打开命令行 —> 输入 cd "\Program Files\MySQL\MySQL Server 8.0\bin" —> 输入 mysql -u 登录的用户名 -p(用户密码) -h localhost/ip地址
在Linux上:
打开一个shell —> 输入 mysql -u 登录的用户名 -p(用户密码) -h localhost/ip地址
2.在Windows上,使用图标的方式登录
点击桌面上的【计算机】图标 —> 选择 MySQL 8.0 Commend Line Client —> 输入用户密码 —> 登录成功
四.MYSQL数据库
在Mysql安装完成之后,系统会自动的在Databases目录下面创建几个必须的数据库,可以用 SHOW DATABASES; 来查看当前的新建的数据库下有哪些必要的存在的数据库。
1.各个自动创建的数据库的相应的含义
mysql:是必须的,是用来存储MySQL数据库中的用户的访问的权限等。
information_schema:是MySQL自带的,它提供了访问数据库 元数据 的方式。元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。就类似于是一个信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。
performance_schema:新增一个存储引擎表。
2.自己创建数据库
创建数据库的SQL语句:CREATE DATABASE 数据库名称;
创建完成后,用命令查看自己创建的数据库:SHOW DATABASES;
3.删除不必要的数据库
删除书库据的SQL语句:DROP DATABASE 数据库名称;
删除完成后,用命令查看自己创建的数据库是否还存在:SHOW DATABASES; ##如果删除的是不存在的数据库的时候,执行结果会报错。
五.数据库的存储引擎
1.什么是数据库的存储引擎?
MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。现在许多不同的数据库管理系统都支持多种不同的数据类型,Mysql的核心就是存储引擎。
2.查看数据库支持的存储引擎
查看数据库支持的存储引擎的SQL语句:SHOW ENGINES\G ;
3.不同引擎的不同
MyISAM: 拥有较高的插入,查询速度,但不支持事务。如果你的数据库主要是用于查询、插入记录,那么这个存储引擎具有较高的处理效率。
InnoDB :5.5版本后Mysql的默认数据库,事务型数据库的首选引擎,支持事务安全表(ACID),支持行级锁定,具有提交、回滚、崩溃恢复的能力。具有处理巨大数据量的最大性能设计。支持外键完整性约束。
BDB: 源自Berkeley DB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性
Memory :所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在Mysql重新启动时丢失,如果只是存储临时数据,不需要太大的安全性,可以选择这个存储引擎。
Merge :将一定数量的MyISAM表联合而成一个整体,在超大规模数据存储时很有用
Archive :非常适合存储大量的独立的,作为历史记录的数据。因为它们不经常被读取。Archive拥有高效的插入速度,支持高并发的插入的操作,但其对查询的支持相对较差。
Federated: 将不同的Mysql服务器联合起来,逻辑上组成一个完整的数据库。非常适合分布式应用
Cluster/NDB :高冗余的存储引擎,用多台数据机器联合提供服务以提高整体性能和安全性。适合数据量大,安全和性能要求高的应用
CSV: 逻辑上由逗号分割数据的存储引擎。它会在数据库子目录里为每个数据表创建一个.CSV文件。这是一种普通文本文件,每个数据行占用一个文本行。CSV存储引擎不支持索引。
BlackHole :黑洞引擎,写入的任何数据都会消失,一般用于记录binlog做复制的中继
六.实战演练——数据库的创建和删除
1.登录数据库
2.创建数据库zoo
3.选择创建的数据库为当前的数据库,并查看数据库的相关的信息。
4.删除数据库。