目录 1.数据库 为什么要使用数据库? 什么是SQL? 什么是MySQL? mysql有关权限的表都有哪几个 2.关系型数据库和非关系型数据库区别? MySQL、Qracle、SQLServer、SQLite叫做关系型数据库,对于存储的数据格式上有严格的要求,类似于excel表格方式存储 优点: 容易理解,因为它采用了关系模型来组织数据。 可以保持数据的一致性。 数据更新的开销比较小。 支持复杂查询(带 where 子句的查询) 非关系型数据库,存储方式灵活,性能更快,更适用于分布式环境 优点: 无需经过 SQL 层的解析,读写效率高。 基于键值对,读写性能很高,易于扩展 可以支持多种类型数据的存储,如图片,文档等等。 扩展(可分为内存性数据库以及文档型数据库,比如 Redis,MongoDB,HBase 等,适合场景:数据量大高可用的日志系统/地理位置存储系统)。 3.详细说一下一条 MySQL 语句执行的步骤 Server 层按顺序执行 SQL 的步骤为: 客户端请求 -> 连接器(验证用户身份,给予权限) 查询缓存(存在缓存则直接返回,不存在则执行后续操作) 分析器(对 SQL 进行词法分析和语法分析操作) 优化器(主要对执行的 SQL 优化选择最优的执行方案方法) 执行器(执行时会先看用户是否有执行权限,有才去使用这个引擎提供的接口)-> 去引擎层获取数据返回(如果开启查询缓存则会缓存查询结果) 4.数据库操作 创建数据库 create database (数据库名) charset utf8; 查看所有数据库 show databases 选中指定数据库 use 数据库名 删除数据库 drop database 数据库名 5.字符串类型 varchar(size) 表示字符串类型,带有一个参数,约定存储的最大空间 TEXT(长文本数据) BLOB(主要存二进制的文本数据)