事物的概念:

事务是单个的工作单元。如果某一个事务提交成功,则在该事物中进行的所有数据修改均会提交成功,并且成为数据库的永久组成部分。如果事物遇到错误并且必须取消和回滚,则所有数据修改均会被清除。

left join,right join区别:

left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录。
right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录。
inner join: 内连接,又叫等值连接,只返回两个表中连接字段相等的行。
full join:外连接,返回两个表中的行:left join + right join
cross join:结果是笛卡尔积,就是第一个表的行数乘以第二个表的行数。

mysql优化手段:

没索引与有索引的区别。
分页优化。
多使用触发器。
表格拆分。
尽可能的使用 NOT NULL。
Mysql 服务配置优化。

如何查看mysql执行计划:

执行计划的生成方法:explain select …………….
生成的方法很简单在相应的select前面加explain即可。

索引是什么,有什么用,如何建立:

创建索引可以大大提高系统的性能。
第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
第二,可以大大加快 数据的检索速度,这也是创建索引的最主要的原因。
第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。
第四,在使用分组和排序 子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
第五,通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

存储过程有什么好处:

存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库。
存储过程的优点:
   1.存储过程只在创造时进行编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度
  2.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
  3.存储过程可以重复使用,可减少数据库开发人员的工作量。
  4.安全性高,可设定只有某此用户才具有对指定存储过程的使用权。

乐观锁,悲观锁是什么:

乐观排他后,别人也能进行数据修改,但是当你提交时候发现数据被修改了就会报错。
悲观排他后,别人是动不了这些数据的。

having和where区别:

“Where” 是一个约束声明,Where是在结果返回之前起作用的,且Where中不能使用聚合函数。
“Having”是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having中可以使用聚合函数。

事务的隔离级别:​​参考链接​​

数据库事务的隔离级别有4个,由低到高依次为Read uncommitted(读未提交)、Read committed(读提交)、Repeatable read(重复读)、Serializable(序列化),这四个级别可以逐个解决脏读、不可重复读、幻读这几类问题。

ACID含义:

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

一,二,三,四范式含义:

第一范式是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。

满足第二范式必须先满足第一范式。第二范式要求数据库表中的每一个实例或行必须可以被唯一的区分。

如果关系模式R是第二范式,且每个非主属性都不依赖于R的候选键,则称R是第三范式的模式。

第四范式。一个表中只有一个多值事实。

各种表连接,子查询语句需使用熟练

分页查询:

分页查询,就是将将过多的结果在有限的界面上分好多页来显示,这个是很多网站常用的功能,也是最基本的功能,今天简单总结一下。(一般人们将分页分为:逻辑分页和物理分页)。

设计模式:

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

单例模式:

单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例