美文网首页
2020PHP经典面试题库-数据库相关

2020PHP经典面试题库-数据库相关

作者: 咖啡di味道 | 来源:发表于2020-06-29 14:52 被阅读0次

    2020PHP经典面试题库汇总,包括如下部分:

    • PHP基础部分
    • PHP 高级部分
    • 数据库相关
    • ThinkPHP框架
    • Laravel 框架
    • smarty模板引擎
    • 开发实战部分
    • 微信公众平台开发
    • 综合技术

    数据库相关

    1、常见的关系型数据库管理系统产品有?

    答:Oracle、SQL Server、MySQL、Sybase、DB2、Access等。

    2、SQL语言包括哪几部分?每部分都有哪些操作关键字?

    答:SQL语言包括数据定义(DDL)、数据操纵(DML),数据控制(DCL)和数据查询(DQL)四个部分。
    数据定义:Create Table,Alter Table,Drop Table, Craete/Drop Index等
    数据操纵:Select ,insert,update,delete,
    数据控制:grant,revoke
    数据查询:select

    3、完整性约束包括哪些?

    答:数据完整性(Data Integrity)是指数据的精确(Accuracy)和可靠性(Reliability)。
    分为以下四类:

    1. 实体完整性:规定表的每一行在表中是惟一的实体。
    2. 域完整性:是指表中的列必须满足某种特定的数据类型约束,其中约束又包括取值范围、精度等规定。
    3. 参照完整性:是指两个表的主关键字和外关键字的数据应一致,保证了表之间的数据的一致性,防止了数据丢失或无意义的数据在数据库中扩散。
    4. 用户定义的完整性:不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件。用户定义的完整性即是针对某个特定关系数据库的约束条件,它反映某一具体应用必须满足的语义要求。
      与表有关的约束:包括列约束(NOT NULL(非空约束))和表约束(PRIMARY KEY、foreign key、check、UNIQUE) 。
    4、什么是事务?及其特性?

    答:事务:是一系列的数据库操作,是数据库应用的基本逻辑单位。
    事务特性:
    (1)原子性:即不可分割性,事务要么全部被执行,要么就全部不被执行。
    (2)一致性或可串性。事务的执行使得数据库从一种正确状态转换成另一种正确状态
    (3)隔离性。在事务正确提交之前,不允许把该事务对数据的任何改变提供给任何其他事务,
    (4) 持久性。事务正确提交后,其结果将永久保存在数据库中,即使在事务提交后有了其他故障,事务的处理结果也会得到保存。
    或者这样理解:
    事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上有个节点。为了确保要么执行,要么不执行,就可以使用事务。要将有组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔离性和持久性。

    5、什么是锁?

    答:数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。
    加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。
    基本锁类型:锁包括行级锁和表级锁

    6、 什么叫视图?游标是什么?

    答:视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,视图通常是有一个表或者多个表的行或列的子集。对视图的修改不影响基本表。它使得我们获取数据更容易,相比多表查询。
    游标:是对查询出来的结果集作为一个单元来有效的处理。游标可以定在该单元中的特定行,从结果集的当前行检索一行或多行。可以对结果集当前行做修改。一般不使用游标,但是需要逐条处理数据的时候,游标显得十分重要。

    7、什么是存储过程?用什么来调用?

    答:存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个命令对象来调用存储过程。

    8、索引的作用?和它的优点缺点是什么?

    答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。

    9、如何通俗地理解三个范式?

    答:
    第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;
    第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;
    第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。

    10、什么是基本表?什么是视图?

    答:基本表是本身独立存在的表,在 SQL 中一个关系就对应一个表。 视图是从一个或几个基本表导出的表。视图本身不独立存储在数据库中,是一个虚表

    11、试述视图的优点?

    答:(1) 视图能够简化用户的操作 (2) 视图使用户能以多种角度看待同一数据; (3) 视图为数据库提供了一定程度的逻辑独立性; (4) 视图能够对机密数据提供安全保护。

    12、NULL是什么意思

    答:NULL这个值表示UNKNOWN(未知):它不表示“”(空字符串)。对NULL这个值的任何比较都会生产一个NULL值。您不能把任何值与一个 NULL值进行比较,并在逻辑上希望获得一个答案。
    使用IS NULL来进行NULL判断

    相关文章

      网友评论

          本文标题:2020PHP经典面试题库-数据库相关

          本文链接:https://www.haomeiwen.com/subject/obxofktx.html