MySQL——必考面试题 ①

2023-10-27

一、为什么要使用数据库

①  数据保存在内存

优点: 存取速度快

缺点: 数据不能永久保存

②  数据保存在文件

优点: 数据永久保存

缺点:

  1. 速度比内存操作慢,频繁的IO操作
  2. 查询数据不方便

③  数据保存在数据库

  1. 数据永久保存
  2. 使用SQL语句,查询方便效率高
  3. 管理数据方便

二、什么是SQL?

结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询语言。

作用:用于存取数据、查询、更新和管理关系数据库系统。

三、什么是MySQL?

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是好的RDBMS (Relational Database Management System 关系数据库管理系统) 应用软件之一。在Java企业级开发中常用,因为 MySQL 是开源免费的、方便扩展。

四、数据库三大范式是什么?

第一范式:每个列都不可以再拆分。

第二范式:在第一范式的基础上,非主键列完全依赖于主键,而不能是依赖于主键的一部分。

第三范式:在第二范式的基础上,非主键列只依赖于主键,不依赖于其他非主键。

在设计数据库结构的时候,要尽量遵守三范式,如果不遵守,必须有足够的理由。比如性能。事实上我们经常会为了性能而妥协数据库的设计。

五、mysql有关权限的表都有哪几个?

MySQL服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库里,由mysql_install_db脚本初始化。这些权限表分别user,db,table_priv,columns_priv和host。

下面分别介绍一下这些表的结构和内容

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

 这个权限表不受GRANT和REVOKE语句的影响。

六、MySQL的binlog有有几种录入格式?分别有什么区别?

有三种格式:【statement、row、mixed】

statement模式下:每一条会修改数据的sql都会记录在binlog中。不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能。由于sql的执行是有上下文的,因此在保存的时候需要保存相关的信息,同时还有一些使用了函数之类的语句无法被记录复制。

row级别下:不记录sql语句上下文相关信息,仅保存哪条记录被修改。记录单元为每一行的改动,基本是可以全部记下来但是由于很多操作,会导致大量行的改动(比如alter table),因此这种模式的文件保存的信息太多,日志量太大。

mixed:一种折中的方案,普通操作使用statement记录,当无法使用 statement的时候使用row。

此外,新版的MySQL中对row级别也做了一些优化,当表结构发生变化的时候,会记录语句而不是逐行记录。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL——必考面试题 ① 的相关文章

  • 外键和索引

    我有 2 张桌子 products and 类别 每个类别有很多产品 一个产品可以属于多个类别 products product id int primary auto increment name unique etc 类别 catego
  • SQL UPDATE 语句根据另一个现有行更新列

    基本上我有一个与下表具有相似格式的表格 我想做的是根据这个逻辑更新 Col4 如果 Col2 为空 则用 Col3 更新 Col4 如果 Col2 不为 null 则在 Col1 中查找与 Col2 中的值匹配的值 使用 col3 中的相应
  • Magento --“SQLSTATE[23000]:违反完整性约束..”客户更新

    迁移服务器后 每次尝试更新客户信息时都会出现错误 我正在使用一个客户激活插件 http www magentocommerce com magento connect vinai extension 489 customer activat
  • 是否可以将新表和旧表从触发器传递到 MySQL 中的过程中?

    是否可以将新表和旧表从触发器传递到 MySQL 中的过程中 我怀疑不会 因为没有过程接受的表这样的数据类型 有什么可能的解决方法吗 理想情况下它看起来像这样 CREATE TRIGGER Product log AFTER UPDATE O
  • 自动删除主键序列中的间隙

    我正在创建一个网页 该网页根据用户操作将数据存储到 MySQL 数据库中 数据库有很多行 行的主键是列 rowID 它只是按顺序对行进行编号 例如 1 2 3 4 用户可以选择删除行 问题是当用户删除最后一行以外的行时 rowID 中有一个
  • 尝试在 React 应用程序中连接到 MySQL 数据库时,无法读取未定义的属性(读取“查询”)错误

    我正在尝试连接到 MySQL 数据库并在单击按钮后在 React 应用程序中运行查询 一些它如何给出错误 我当前的代码如下所示 import mysql from mysql function App async function sync
  • 当复选框条件更改时,如何使用ajax更新mysql数据库?

    我有一个在客户端按行显示的文章表 每篇文章都有一个唯一的 ID 并包含一个复选框以指示该文章是否被选中为收藏夹 如果它是最喜欢的 则该复选框已被选中 如果没有 则未选中 现在 如果特定于每一行的复选框条件发生变化 我需要 js 或 jque
  • 如何将 MySQL 查询输出保存到 Excel 或 .txt 文件? [复制]

    这个问题在这里已经有答案了 如何将 MySQL 查询的输出保存到 MS Excel 工作表 即使只能将数据存储在 txt文件 就可以了 From 将 MySQL 查询结果保存到文本或 CSV 文件中 http www tech recipe
  • 无法在 .net core 2 中从 MySQL 构建“日期”类型列

    我已经开始了一个新的 net core 2 项目 我正在尝试将 MySQL 数据库导入实体框架 我使用此命令来搭建数据库 Scaffold DbContext server localhost port 3306 user id user
  • 猪的组连接等效吗?

    试图在 Pig 上完成这个任务 寻找 MySQL 的 group concat 等效项 例如 在我的表中 我有以下内容 3fields userid clickcount pagenumber 155 2 12 155 3 133 155
  • MySQL - 多个结果集

    我正在使用 NET Connector 连接到 MySQL 在我的应用程序中 很少有线程使用相同的连接 因此如果 MySQLDataReader 尚未关闭并且某个线程正在尝试执行查询 则会出现该错误 已经有一个打开的 DataReader
  • 如何为我的整个 Node.js 应用程序使用相同的 MySQL 连接?

    我有一个app js 我从那里运行我的整个应用程序 在 app js 内部 我require许多文件中都有代码 对于每个文件 我都这样做 var mysql require mysql var mclient mysql createCon
  • 获取mysql中逗号分隔行中不同值的计数

    一个表 Jobs 有 2 列 JobId 城市 当我们保存工作时 工作位置可能是多个城市 如下所示 JobId City 1 New York 2 New York Ohio Virginia 3 New York Virginia 我如何
  • 更改mysql数据库表中的日期格式

    大家早上好 只是一个简单的问题 在我现有的 MySql 数据库中 我几乎没有包含日期 的列 目前这些是年 月 日格式 但现在我需要将其全部更改为年 月 日格式 我试过了select date format curdate d m Y 但它不
  • MySQL - 从数字列表中选择在表的 id 字段中没有对应项的数字

    我有一个数字列表 例如 2 4 5 6 7 我有一个表 foos 带有 foos ID 包括 1 2 3 4 8 9 我想获取我的号码列表 并在我的表的 ID 字段中找到那些没有对应项的号码 实现此目的的一种方法是创建一个表格栏 在 ID
  • Mysql带限制的删除语句

    我试图从表中删除行 但出现错误 DELETE FROM chat messages ORDER BY timestamp DESC LIMIT 20 50 我在 50 时收到此错误 您的 SQL 语法有错误 检查与您的 MySQL 服务器版
  • 将IP保存到数据库中

    当用户登录时 我想将他们的 IP 保存在数据库中 我该怎么做呢 MySQL 字段最适合使用哪种类型 获取IP的PHP代码是什么样的 我正在考虑将其用作登录 会话内容的额外安全功能 我正在考虑使用用户现在拥有的 IP 检查用户从数据库登录的
  • “修改列”与“更改列”

    我知道 我们不能使用重命名列MODIFY COLUMN语法 但我们可以使用CHANGE COLUMN syntax 我的问题是 主要用途是什么modify syntax 例如 ALATER TABLE tablename CHANGE co
  • MySQL“列计数与第 1 行的值计数不匹配”是什么意思

    这是我收到的消息 ER WRONG VALUE COUNT ON ROW 列计数与第 1 行的值计数不匹配 这是我的全部代码 我的错误在哪里 DROP TABLE student CREATE TABLE employee emp id I
  • 使用用户定义函数 MySql 时出错

    您好 请帮我解决这个问题 提前致谢 我在数据库中定义了这些函数 CREATE FUNCTION levenshtein s1 VARCHAR 255 s2 VARCHAR 255 RETURNS INT DETERMINISTIC BEGI

随机推荐

  • 学了C++能做什么?

    相信很多人接触编程都是源于大学期间的那堂C 语言程序编程 但是这门课却只告诉了你编程语言是什么 却没告诉你要怎么去熟练掌握编程 所以 不可避免的是许多人在毕业前夕才发现虽然学会了C 但是好像却不知道能干什么 能找什么样的工作 能去什么样的公
  • 创建oracle的sequence 和 trigger

    Create sequence NOMAXvalue create sequence SEQ ADMIN ID minvalue 1 maxvalue 99999999 NOMAXvalue start with 1 increment b
  • 范数和正则化

    概念 范数是具有 长度 概念的函数 在向量空间内 为所有的向量的赋予非零的增长度或者大小 不同的范数 所求的向量的长度或者大小是不同的 举个例子 2维空间中 向量 3 4 的长度是5 那么5就是这个向量的一个范数的值 更确切的说 是欧式范数
  • osgEarth各个示例分析目录

    概述 由于数字地球项目需要osgEarth的代码知识 故决定学习osgEarth的示例 示例中有很多可以借鉴的内容 以下是分析目录 完全是随机进行的 并没有什么上下文逻辑 每一篇代码边学习边分析 如果有错误 请各路大佬斧正 目录 osgEa
  • matlab函数怎么写,matlab怎么写主函数

    1 matlab怎么写函数文件 1 首先在电脑中打开baimatlab软件 2 在打开的页面中点击 du主页 栏目下的 新建 按钮 zhi 3 然后在打开的下拉菜单中选择 函数 选项 4 即可打开函数编辑器 在其中dao可以进行函数的输入设
  • 稀疏光流KLT跟踪算法

    1 前言 前段时间学习了Harris角点检测和Shi Tomasi角点检测 但实际用途没用 特此记录一下运用角点的稀疏光流KLT跟踪算法 2 概念 2 1光流概念 光流是空间运动物体在观察成像平面上的像素运动的瞬时速度 是利用图像序列中像素
  • xacml开源代码

    http blog csdn net gxp article details 6799957 t2 pam xacml the extensible access control markup language xacml allows f
  • 图像风格迁移实战

    最近看了一些基于深度学习的Style Transfer 也就是风格迁移相关的paper 感觉挺有意思的 所谓风格迁移 其实就是提供一幅画 Reference style image 将任意一张照片转化成这个风格 并尽量保留原照的内容 Con
  • 基于Hough变化的图像校正

    一 问题背景 下图是一张单据的扫描件 编程计算旋转角度对其进行校正 并补全断裂的表格线 二 算法原理 1 基于sobel算子的边缘检测 要想将倾斜表格旋转进行校正 首先要计算表格倾斜的角度 我们用Hough变化来计算倾斜角度 Hough变换
  • 索引实现原理

    1 索引的介绍 一种数据结构 为了快速找到数据记录 索引存储在内存中 主要作用是 加快查询速度 提高数据库性能 2 数据库中索引的分类 普通索引 最基本的索引没有任何限制 唯一索引 与普通索引类似 索引列的值必须唯一 允许null 如果是组
  • 为何推荐首选enum class 而非 enum

    首先 我们比较下这两种枚举类型的表示方式上有何差异 一 异同点 enum class 官方解释 unscoped enum enum identifier type enum list scoped enum enum class stru
  • AS修改快捷键以及AS设置

    1 修改快捷键方式 2 设置代码提示忽略大小写 3 设置AS中Java代码各个部分的字体颜色
  • JCreator 使用技巧

    转自 http wenku baidu com view 32f22a287375a417866f8fcf html JCreator 使用技巧 JCreator 使用技巧 1 导语 在众多的JAVA开发环境中 我对 JCreator 情有
  • 第十天栈和队列

    栈 和队列的原理大家应该很熟悉了 队列是先进先出 栈是先进后出 首先大家要知道 栈和队列是STL C 标准库 里面的两个数据结构 接下来介绍的栈和队列也是SGI STL里面的数据结构 知道了使用版本 才知道对应的底层实现 来说一说栈 栈先进
  • mdk中error: L6047U: The size of this image exceeds

    跳出error L6047U The size of this image 192324 bytes exceeds the maximum all的原因是由于mdk未破解 亲测已解决 破解工具的链接 http www xue51 com
  • ubuntu设置pac代理

    前言 由于公司ubuntu没有对代理做有线代理去搜索资料 所以下面得内容是为了记录一下 设置代理pac代理有两种方式 可能还有其他得 1 浏览器设置自动代理配置得URL PAC 2 写入profile配置文件 1 浏览器设置自动代理配置的U
  • YOLOv5-Shufflenetv2

    YOLOv5中修改网络结构的一般步骤 models common py 在common py文件中 加入要修改的模块代码 models yolo py 在yolo py文件内的parse model函数里添加新模块的名称 models ne
  • 【100天精通Python】Day51:Python 数据分析_数据分析入门基础与Anaconda 环境搭建

    目录 1 科学计算和数据分析概述 2 数据收集和准备 2 1 数据收集 2 1 1 文件导入 2 1 2 数据库连接 2 1 3 API请求 2 1 4 网络爬虫 2 2 数据清洗 2 2 1 处理缺失值 2 2 2 去除重复值 2 2 3
  • 浪潮服务器NF5280M5配置管理口BMC的IP web界面登录 ipmi 代外【详细】

    开启服务器以后等待按del或f2 进入bios选择第五项Server Mgmt界面选择BMC Network Configuration 回车 选择BMC IPv4 Network Configuration 回车 注意 只需要配置BMC
  • MySQL——必考面试题 ①

    一 为什么要使用数据库 数据保存在内存 优点 存取速度快 缺点 数据不能永久保存 数据保存在文件 优点 数据永久保存 缺点 速度比内存操作慢 频繁的IO操作 查询数据不方便 数据保存在数据库 数据永久保存 使用SQL语句 查询方便效率高 管