SQL | 常见的问题及答案

主键和外键的联系和区别

主键约束相当于   唯一约束 + 非空约束  的组合,其值能唯一地标识表中的每一行。主键约束列不允许重复,也不允许出现空值,每个表最多只允许一个主键。

外键(FK)是用于建立或加强两个表数据之间的链接的一列或多列,用于保证两个表之间的参照完整性,被參照的表称之为父表(parent table),创建外键的表称之为子表(child table)。子表中的外键关联了父表中的主键。

简述什么是视图、视图的作用,及基表和视图之间数据更新的关系

视图是一个虚拟表,是sql的查询结果,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据,视图并不在数据库中以存储的数据值集形式存在,在使用视图时动态生成。

视图作用:为了安全考虑,其次可使复杂的查询易于理解和使用。

视图的数据变化会影响到基表,基表的数据变化也会影响到视图。

简述什么是索引,以及索引的优缺点

数据库索引好比是一本书前面的目录,能加快数据库的查询速度,减少全表扫描。索引是对数据库表中一个或多个列的值进行排序的结构。
优点

  1. 大大加快数据的检索速度;
  2. 创建唯一性索引,保证数据库表中每一行数据的唯一性;
  3. 加速表和表之间的连接;
  4. 在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。

缺点

  1. 索引需要占物理空间。
  2. 当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。

简述内连接、外连接、等值连接、非等值连接之间的关系

  • 内连接:在叉集的基础上返回满足条件的行
  • 左外连接:在等值连接的基础上返回左表不满足条件的行,右侧用null代替。
  • 右外连接:在等值连接的基础上返回左表不满足条件的行,左侧用null代替。
  • 等值连接:和内连接执行效率和执行结果一样,只是书写方式不一样。
  • 非等值连接:取左表或右表的部分行数据然后两两相交形成叉集。

简述事务如何开始的,遇到什么情况下事务会结束

在 MySQL 命令行的默认设置下,事务都是自动提交的,即执行了sql语句后系统自动COMMIT 操作,因此要显式地开启一个事务务须使用命令 BEGIN 或 START TRANSACTION,或者执行命令 SET AUTOCOMMIT=0,用来禁止使用当前会话的自动提交。事务开始于上一个事务结束后执行的第一个DML语句。

事务结束于下面的任一种情况的发生:

  • 执行了COMMIT 或者ROLLBACK命令
  • 隐式提交(单个的DDL或DCL语句)或自动提交
  • 用户退出
  • 系统崩溃
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值