mysql数据库的笔试题_MySQL数据库常见面试题

本文详细介绍了MySQL数据库的基础知识,包括数据类型、SQL语句分类(DDL、DML、DCL)、数据库范式理论(1NF、2NF、3NF、BCNF)以及MyISAM与InnoDB的区别。深入探讨了视图的作用、事务的ACID特性及隔离级别,并分析了索引的种类和设计原则。同时,文章揭示了可能导致查询慢的原因,如不恰当的索引使用和过度的数据检索,并提供了通过慢查询日志进行性能优化的方法。最后,给出了通过`EXPLAIN`优化SQL语句的技巧。
摘要由CSDN通过智能技术生成

SQL基础

1.MySQL的数据类型

a5f0fc3649ad58080428ccc7b37bf88e.png

2.MySQL的SQL语句分类

DDL(Data Definition Language)语句:数据定义语言,这些语句定义了不同的数据段、表、列、索引等数据库对象的定义。常用的语句关键字主要包括create、drop、alter等。

DML(Data Manipulation Language)语句:数据操纵语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性,常用的语句关键字主要包括insert、delete、update和select等。

DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括grant、revoke等。

数据库范式

第一范式(1NF)是指在关系模型中,数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。

第二范式(2NF)是在1NF的基础上,要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性

第三范式(3NF)在2NF基础上,任何非主属性不依赖于其它非主属性(在2NF基础上消除传递依赖)

巴斯-科德范式(BCNF)在3NF基础上,任何非主属性不能对主键子集依赖(在3NF基础上消除对主码子集的依赖)

白话区:

第一范式:每个表应该有唯一标识每一行的主键。

第二范式:在复合主键的情况下,非主键部分不应该依赖于部分主键。

第三范式:非主键之间不应该有依赖关系。

BC范式:排除了任何属性(不光是非主属性,2NF和3NF所限制的都是非主属性)对候选键的传递依赖与部分依赖。

MyISAM与Innodb区别

(1)MyISAM不支持事务,Innodb支持事务

(2)Myisam不支持外键,innodb支持外键

(3)myisam支持表级锁,innodb支持行级锁

(4)innodb 进行select count(*) from tablename时,需要对表进行一次遍历;myisam进行select count(*) from tablename时

(5)myisam删除表时,先将表drop,然后新建一个表;innodb则是将表中数据一条一条的删除

(6)对于包含auto-increment字段的索引,innodb只包含auto-increment字段;而myisam则可以和其他字段一起建立联合索引

(7)myisam搜索引擎查找要比innodb搜索引擎快

(8)innodb中索引没有fulltext类型,而myisam中有fulltext类型

视图

视图(View)是一种虚拟存在的表,对于使用视图的用户来说基本上是透明的。视图并

不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时

动态生成的

 简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,

对用户来说已经是过滤好的复合条件的结果集。

 安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能

限制到某个行某个列,但是通过视图就可以简单的实现。

 数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,源表增加

列对视图没有影响;源表修改列名,则可以通过修改视图来解决,不会造成对访问

者的影响

事务的特性及隔离级别:

1.事务特性--ACID

Atomicity(原子性):要么全做,要么不做,不能只做一半(银行转账)

Consistency(约束性):事务的前后,约束都能满足

Isolation(依赖性):事务之间是独立的,互不影响的

Durability(持久性):事务执行之后,事物的结果可以持久保存

2.事务隔离级别:

read uncommitted:可以读到未提交的事务结果

read committed:只能读已提交事务的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值