关于mysql:面试必问10-道经典-MySQL-面试题

1.drop,delete与truncate的区别

相同点:

truncate和不带where子句的delete,以及drop都会删除表内的数据

不同点:
  • truncate会革除表数据并重置id从1开始,delete就只删除记录,drop能够用来删除表或数据库并且将表所占用的空间全副开释
  • truncate和delete只删除数据不删除表的构造。drop语句将删除表的构造被依赖的约(constrain),触发器(trigger),依赖于该表的存储过程/函数将保留,然而变为 invalid 状态。
  • 速度上一般来说: drop> truncate > delete
  • 应用上,想删除局部数据行用 delete,想删除表用 drop,想保留表而将所有数据删除,如果和事务无关,用truncate即可。如果和事务无关,或者想触发trigger,还是用delete。
  • delete是DML语句,不会主动提交。drop/truncate都是DDL语句,执行后会主动提交。

2.mysql里记录货币用什么字段类型好

NUMERIC 和DECIMAL 类型被MySQL实现为同样的类型,这在SQL92规范容许。他们被用于保留值,该值的精确精度是极其重要的值,例如与金钱无关的数据。

DECIMAL和NUMERIC值作为字符串存储,而不是作为二进制浮点数,以便保留那些值的小数精度。

3.MySQL中myisam与innodb的区别

  • InnoDB反对事务,而MyISAM不反对事务
  • InnoDB反对行级锁,而MyISAM反对表级锁
  • InnoDB反对MVCC, 而MyISAM不反对
  • InnoDB反对外键,而MyISAM不反对
  • InnoDB不反对全文索引,而MyISAM反对。
  • InnoDB不能通过间接拷贝表文件的办法拷贝表到另外一台机器, myisam 反对
  • InnoDB表反对多种行格局, myisam 不反对
  • InnoDB是索引组织表, myisam 是堆表

4.事务的四个个性及含意

数据库事务transanction正确执行的四个基本要素:ACID,原子性(Atomicity)、一致性(Correspondence)、隔离性(Isolation)、持久性(Durability)。

原子性: 整个事务中的所有操作,要么全副实现,要么全副不实现,不可能停滞在两头某个环节。事务在执行过程中产生谬误,会被回滚(Rollback)到事务开始前的状态,就像这个事务素来没有执行过一样。

一致性: 在事务开始之前和事务完结当前,数据库的完整性束缚没有被毁坏。

隔离性: 隔离状态执行事务,使它们如同是零碎在给定工夫内执行的惟一操作。如果有两个事务,运行在雷同的工夫内,执行 雷同的性能,事务的隔离性将确保每一事务在零碎中认为只有该事务在应用零碎。这种属性有时称为串行化,为了避免事务操作间的混同,必须串行化或序列化请 求,使得在同一时间仅有一个申请用于同一数据。

持久性: 在事务实现当前,该事务所对数据库所作的更改便长久的保留在数据库之中,并不会被回滚。

5.MYSQL相比于其余数据库有哪些特点?

MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司,当初曾经被Sun公司收买,反对FreeBSD、Linux、MAC、Windows等多种操作系统与其余的大型数据库例如Oracle、DB2、SQL Server等相比性能稍弱一些。其特点有:

  • 能够解决领有上千万条记录的大型数据;
  • 反对常见的SQL语句标准;
  • 可移植行高,安装简单玲珑;
  • 良好的运行效率,有丰盛信息的网络反对;
  • 调试、治理,优化简略(绝对其余大型数据库)。

6.视图的作用,视图能够更改么?

视图是虚构的表,与蕴含数据的表不一样,视图只蕴含应用时动静检索数据的查问;不蕴含任何列或数据。应用视图能够简化简单的sql操作,暗藏具体的细节,爱护数据;视图创立后,能够应用与表雷同的形式利用它们。

视图不能被索引,也不能有关联的触发器或默认值,如果视图自身内有order by 则对视图再次order by将被笼罩。

7.存储过程与触发器的区别

触发器与存储过程十分类似,触发器也是SQL语句集,两者惟一的区别是触发器不能用EXECUTE语句调用,而是在用户执行Transact-SQL语句时主动触发(激活)执行。

触发器是在一个批改了指定表中的数据时执行的存储过程。通常通过创立触发器来强制实现不同表中的逻辑相干数据的援用完整性和一致性。因为用户不能绕过触发器,所以能够用它来强制施行简单的业务规定,以确保数据的完整性。

触发器不同于存储过程,触发器次要是通过事件执行触发而被执行的,而存储过程能够通过存储过程名称名字而间接调用。当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,SQLSERVER就会主动执行触发器所定义的SQL语句,从而确保对数据的解决必须合乎这些SQL语句所定义的规定。

8.索引的作用?和它的长处毛病是什么?

索引就是一种非凡的查问表,数据库的搜索引擎能够利用它减速对数据的检索。它很相似与现实生活中书的目录,不须要查问整本书内容就能够找到想要的数据。

索引能够是惟一的,创立索引容许指定单个列或者是多个列。毛病是它减慢了数据录入的速度,同时也减少了数据库的尺寸大小。

9.union 与union all的区别

union 在进行表连贯后会筛选掉反复的记录,所以在表连贯后会对所产生的后果集进行排序运算,删除反复的记录再返回后果。union all 则会显示反复后果,只是简略的两个后果合并并返回.所以效率比union高,在保障没有反复数据的状况下用union all.

10. SQL语言包含哪几局部?每局部都有哪些操作关键字?

SQL语言包含数据定义(DDL)、数据操纵(DML),数据管制(DCL)和数据查问(DQL)四个局部。

  • 数据定义:Create Table,Alter Table,Drop Table, Craete/Drop Index等
  • 数据操纵:Select ,insert,update,delete,
  • 数据管制:grant,revoke
  • 数据查问:select

起源:blog.csdn.net/Black1499/article/details/84945702

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据