目录

char和varchar的区别?

1.数据库的三范式?

2.MySQL常用的引擎?

3.一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 MySQL 数据库,又插入了一条数据,此时 id 是几?

4. 如何获取当前数据库版本?

5. 说一下 ACID 是什么?

6. MySQL 的内连接、左连接、右连接有什么区别?

7.什么是SQL注入?

8.说一下乐观锁和悲观锁?


char和varchar的区别?

  • char类型是固定长度的,输入的字符如果超出指定的范围,char类型会自动截取超出的字符。Mysql会自动删除输入字符串末尾的空格。
  • varchar类型是可变长度的,varchar适用于字符串列的最大长度比平均长度大的情况。

1.数据库的三范式?

  1. 第一范式(确保每列保持原子性)
  2. 第二范式(确保表中的每列都和主键相关),从而避免了冗余数据的产生
  3. 第三范式(确保每列都和主键列直接相关,而不是间接相关),满足第三范式必须满足第二范式

2.MySQL常用的引擎?

  • InnoDB 引擎:mysql 5.1 后默认的数据库引擎,提供了对数据库 acid 事务的支持,并且还提供了行级锁和外键的约束,它的设计的目标就是处理大数据容量的数据库系统。MySQL 运行的时候,InnoDB 会在内存中建立缓冲池,用于缓冲数据和索引。但是该引擎是不支持全文搜索,同时启动也比较的慢,它是不会保存表的行数的,所以当进行 select count(*) from table 指令的时候,需要进行扫描全表。由于锁的粒度小,写操作是不会锁定全表的,所以在并发度较高的场景下使用会提升效率的。
  • MyIASM 引擎:不提供事务的支持,也不支持行级锁和外键。因此当执行插入和更新语句时,即执行写操作的时候需要锁定这个表,所以会导致效率会降低。不过和InnoDB 不同的是,MyIASM 引擎是保存了表的行数,于是当进行 select count(*)from table 语句时,可以直接的读取已经保存的值而不需要进行扫描全表。所以,如果表的读操作远远多于写操作时,并且不需要事务的支持的,可以将 MyIASM 作为数据库引擎的首选。

3.一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 MySQL 数据库,又插入了一条数据,此时 id 是几?

  • 表类型如果是 MyISAM ,那 id 就是 8。
  • 表类型如果是 InnoDB,那 id 就是 6。
InnoDB 表只会把自增主键的最大 id 记录在内存中,所以重启之后会导致最大 id 丢失。  

4. 如何获取当前数据库版本?

使用 select version() 获取当前 MySQL 数据库版本。

5. 说一下 ACID 是什么?

  • Atomicity(原子性):一个事务(transaction)中的所有操作,或者全部完成,或者全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被恢(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。即,事务不可分割、不可约简。
  • Consistency(一致性):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设约束、触发器、级联回滚等。
  • Isolation(隔离性):数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(readcommitted)、 可重复读(repeatable read)和串行化(Serializable)。
  • Durability(持久性):事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失

6. MySQL 的内连接、左连接、右连接有什么区别?

内连接关键字:inner join;左连接:left join;右连接:right join。
内连接是把匹配的 关联数据显示出来 ;左连接是左边的表全部显示出来,右边的表显示出符
合条件的数据;右连接正好相反。

7.什么是SQL注入?

SQL注入(SQL Injection)是一种常见的Web安全漏洞,主要形成的原因是在数据交互中,前端的数据传入到后台处理时,没有做严格的判断,导致其传入的“数据”拼接到SQL语句中后,被当作SQL语句的一部分执行。 从而导致数据库受损(被脱库、被删除、甚至整个服务器权限陷)。
即:注入产生的原因是后台服务器接收相关参数未经过滤直接带入数据库查询

8.说一下乐观锁和悲观锁?

  • 乐观锁:每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在提交更新的时候会判断一下在此期间别人有没有去更新这个数据
  • 悲观锁:每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻止,直到这个锁被释放。
数据库的乐观锁需要自己实现,在表里面添加一 个 version 字段,每次修改成功值加 1,
这样每次修改的时候先对比一下,自己拥有的 version 和数据库现在的 version 是否一
致,如果不一致就不修改,这样就实现了乐观锁。

Mysql笔试+面试题积累(实时更新)相关推荐

  1. react前端面试题(实时更新)

    React前端面试题 1. 对React-Fiber的理解,他解决了什么问题 2.对webSocket的理解 4.说说你对koa中洋葱模型的理解? 5.说说package.json中版本号的规则? 6 ...

  2. 根据面试经历,总结Redis面试题(实时更新)

    目录 1Redis 使用场景: 2 Redis缓存和map缓存区别 3Redis支持的数据类型 4String 的业务场景 5hash的业务场景 6list的业务场景 7set集合的使用场景 8zse ...

  3. MySQL笔试和面试题

    文章目录 1. 列举常见的关系型数据库和非关系型数据库 2. mysql常见数据库引擎及比较 3. 简述数据三大范式 4. 什么是事务,mysql如何支持事务 5. 简述数据库设计中一对多和多对多的应 ...

  4. mysql常见面试题(持续更新)

    1.mysql隔离级别有哪些?为什么要设计这几种隔离级别?默认隔离级别是啥?默认价格是如何避免幻读的?有哪些级别用了mvcc?不同级别的mvcc的区别?如果让你来设计,你还会想到其他方式达到这个效果嘛 ...

  5. Mysql常见面试题(陆续更新中)...

    1.一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15? 答:(1)如果表的类型是My ...

  6. go监听mysql事件更新,有没有一种方法可以“监听”数据库事件并实时更新页面?...

    我正在寻找一种创建简单的HTML表的方法,该表可以在数据库更改事件发生时进行实时更新.特别是添加了新记录. 换句话说,将其视为执行人员仪表板.如果进行了销售并且在数据库中添加了新行(在本例中为MySQ ...

  7. mysql参数积累 持续更新。。。

    mysql参数积累 持续更新... 以下是Mysql数据库服务器配置文件my.ini的详细配置.应用场合是InnoDB引擎,2核CPU, 32位SUSE. [client] #password = y ...

  8. access mysql 同步更新数据_[access 数据库同步]Access数据库到Mysql数据库实时更新

    项目目标: 首先是将Access数据库中的大量数据(已经存好的原有百万级数据)转存到mysql数据库中,然后,随着Access中数据的增加,要同步更新mysql数据库,更新周期自定. 思路:一开始的转 ...

  9. 【Mysql笔试】-常见笔试题汇总

    Mysql常见笔试题汇总 基础知识 排序的规则? 函数的分类?经常使用的函数? 分组查询注意条件? limit使用方法? 创建表时有什么约束条件? mysql常见数据类型? 增加删除修改表结构 常见约 ...

最新文章

  1. “CoreCLR is now Open Source”阅读笔记
  2. 网络数据包发送接收全过程
  3. 【项目管理和构建】——Maven简介(一)
  4. js Date 函数方法
  5. python 除数总是提示为0_python负数求余不正确?——取模 VS 取余
  6. 数据库事务的四大特性以及隔离级别
  7. Eclipse主题与Monaco字体
  8. STM8L超低功耗程序编写教学,简单易懂
  9. ros与arduino通讯(一)ros_arduino_bridge功能包
  10. 环签名原理与隐私保护
  11. 企业如何管理终端软件安装
  12. PGSQL 模糊查询不区分大小写
  13. 拜登留学新政:美国读博直接拿绿卡,增加H1B签证限额!但未来留美门槛反而变高了?...
  14. 编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。
  15. wkhtmltopdf乱码解决方案
  16. 滤波器中截止频率的理解
  17. icloud安装错误怎么办_给你细说win7系统icloud win7安装失败的修复办法
  18. 吴裕雄--天生自然 诗经:寻隐者不遇
  19. 凝心聚力,不负好时光——慧慧兔团建拓展之旅
  20. 维特WT931——制作支持ROS的IMU惯性导航传感器

热门文章

  1. 项目计划表格甘特图_项目管理:什么是甘特图?
  2. miui修改Android,无法修改小米MIUI设备中的系统设置
  3. 【产品笔记】产品工作中Android和iOS差异
  4. 免费下载数据集(转载)--大数据学习用
  5. 扇贝python编程课_【扇贝编程python安卓手机下载】扇贝编程app v1.1.47 破解版-趣致软件园...
  6. 9*9的数独(dfs)
  7. 打开对方CMD的三种方法
  8. 1米*1米*1米*1米*1米等于什么?
  9. vtkImageCheckerboard生成棋盘格,跟随鼠标移动显示
  10. 索尼 a7 IV 和佳能 EOS R6 哪个好