博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL面试题——数据库基础知识
阅读量:2427 次
发布时间:2019-05-10

本文共 1245 字,大约阅读时间需要 4 分钟。

文章目录

1.为什么要使用数据库

数据库保存在内存中时:

  • 优点:存取速度快
  • 缺点:数据不能永久保存

数据库保存在文件中时

  • 优点:数据永久保存
  • 缺点:速度比内存操作慢,频繁的IO操作,查询数据不方便

数据保存在数据库中时:

  • 优点:数据永久保存
  • 缺点:使用SQL语句,查询方便效率高

2.什么是SQL

SQL就是结构化查询语言,是一种数据库查询语言,用于存取数据、查询、更新、管理关系数据库系统

3.数据库的三大范式是什么

第一范式:每个列都不可再拆分,强调的是列的原子性:即列不能够再分成几列,在任何一个关系型数据库中,第一范式是对关系模式的基本要求,不满足第一范式的数据库就不是关系数据库

第二范式:满足第二范式必须先满足第一范式,第二范式在第一范式的基础之上更进一层,第二范式需要确保数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关(这个主要针对联合主键而言)

比如要设计一个订单信息表,因为订单中可能会有多种商品,所以要将订单编号和商品编号作为数据库的联合主键,这样就产生一个问题:这个表中是以订单编号和商品编号作为联合主机那。这样在该表中商品名称、单位、商品价格等信息不与该表的主键相关,而仅仅是与商品编号相关,所以这里违反了第二范式的设计原则:
在这里插入图片描述
第三范式:满足第三范式必须先满足第二范式,第三范式要求:任何非主属性不依赖于其他非主属性,在2NF基础上消除传递依赖

3.MySQL有关权限的表都有哪几个

MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在MySQL数据库里,由mysql_install_db脚本初始化

  • user权限表:记录允许连接到服务器的用户账号信息,里面的权限是全局的
  • db权限表:记录各个账号在各个数据库上的操作权限
  • table_priv权限表:记录数据表级的操作权限
  • columns_priv权限表:记录数据库列级的操作权限
  • host权限表:配合db权限表对给定主机上数据库操作权限作更细致的控制

在MySQL数据库中,权限分配是按照user表>db表>table_priv表>columns_priv表的顺序来分配的

4.MySQL的Binlog

binlog是记录所有数据库表结构变更(例如CREATE、ALTER TABLE……)以及表数据修改(INSERT、UPDATE、DELETE……)的二进制日志,Binlog不会记录SELECT和SHOW这类操作,因为这类操作对数据本身并没有修改

MySQL的binlog有三种录入格式:

  • statement模式下每一条修改数据的SQL都会记录在binlog中,不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高了性能。
  • row级别下,不记录SQL语句上下文相关信息,仅保存哪条记录被修改。记录单元为每一行的改动,这种模式的文件保存的信息太多,日志量太大
  • mixed,一种折中的方案,普通操作使用statement,当无法使用statement的时候使用row

转载地址:http://xqjmb.baihongyu.com/

你可能感兴趣的文章
【Java】【web】Servlet的三大作用域对象 2018-8-29
查看>>
【转载】【计算机网络】【TCP】当我们说"TCP是可靠协议"时,我们真正表达的是什么?
查看>>
【Java】【JVM】Java中JVM内存管理 2018-10-5
查看>>
【Java】Java 集合学习总结 2018-10-5
查看>>
【Java】Java序列化学习总结 2018-10-5
查看>>
【web】深入理解负载均衡 2018-10-5
查看>>
交换机和路由器的区别
查看>>
各种服务应用的端口
查看>>
ALL IS WELL《三傻大闹宝莱坞》意味深长的23句经典台词
查看>>
linux环境下安装Java并配置
查看>>
基于Service的简易音乐播放器
查看>>
在android studio中使用genymotion模拟器
查看>>
HttpURLConnection实现多线程网络下载
查看>>
Activity中的onCreate方法不执行问题
查看>>
通过手势去缩放图片
查看>>
Android通过手势实现翻页效果
查看>>
Android保存和识别手势
查看>>
Andorid自动朗读TTS使用
查看>>
微信分享闪退的解决办法
查看>>
android动态壁纸开发(能运行的)
查看>>