【MySQL】基础(一)
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
一.认识数据库
正常情况数据是以文件的形式存储在磁盘或者内存上的。这就意味着他就会具有文件保存数据的缺点
- 文件的安全性问题没有回滚
- 文件不利于数据查询和管理数据本身结构没有统一管理
- 文件不利于存储海量数据用户操作不方便
- 文件在程序中控制不方便需要用户自己完成控制
数据库的本质是对文件内容提供基本的内容操作不用用户手动管理
mysql本身也是一种文件系统是由两部分构成的客户端mysql和服务端(mysqld)mysql数据库本身就是一套网络服务。登录时需要ip和端口号可以看出通常不使用数据库的时候用户直接操作磁盘上文件里的数据成本很高。当使用mysql,用户将sql指令通过mysql客户端递交给mysqld服务端由服务端帮助用户操作磁盘上的数据
二.数据库存储
数据库的存储介质有以下两种
- 磁盘主存数据库MySQL就是一种磁盘数据库。 在持久化存储有优势有自己的缓存机制不是直接写到磁盘上而是由缓存机制决定何时刷新到磁盘上
- 内存redis就是一种内存数据库。效率更高但具体数据本身还是在磁盘数据库上有掉电易失问题
创建数据库的本质database在linux下是创建目录建表的本质是创建文件
默认情况下配置位置如下
数据库的配置文件位置/etc/my.cnf
数据存储位置/var/lib/mysql建表的话就会在当前路径下创建一个文件夹并形成db.opt文件可以看字符编码和校验规则和上面的创建目录的本质对应
当使用数据库的时候相当与进入数据库的目录。此时建表相当于在当前目录下创建文件。
引擎的作用数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术
的实现方法。
常见的引擎InnodbMYISAM,不同的引擎在建表时的细节有所不同
innodb会出现两个文件.frm表结构文件,ibd表数据和索引的文件(聚簇索引)支持事务行锁外键崩溃恢复自动增量列适合需要高级功能的数据
MYISAM会出现三个文件.frm表结构文件.myd表的数据信息文件.myi在索引文件非聚簇索引支持全文搜索表锁压缩表缓存更适合读密集型数据
三.sql分类
- DDL 数据定义语言用来维护存储数据的结构库和表的属性操作
代表指令: create, drop, alter - DML 数据操纵语言用来对数据进行操作库和表的内容操作
代表指令 insertdeleteupdate
DML中又单独分了一个DQL数据查询语言代表指令 select - DCL 数据控制语言主要负责权限管理和事务系统安全账户管理
代表指令 grantrevokecommit
四.sql语句注意点
mysql大小写不敏感
表和库名称最好带上``
通常情况下字符集和检验规则集是可以互相解释的
数据库本身是有备份的但是是对操作语句做的备份