zoukankan      html  css  js  c++  java
  • 常见的数据库基础面试题大全

    1. 数据抽象:物理抽象、概念抽象、视图级抽象,内模式、模式、外模式

    2. SQL语言包括数据定义、数据操纵(Data Manipulation),数据控制(Data Control)

    数据定义:Create Table,Alter Table,Drop Table, Craete/Drop Index等

    数据操纵:Select ,insert,update,delete,

    数据控制:grant,revoke

    3. SQL常用命令:

    CREATE TABLE Student(

    ID NUMBER PRIMARY KEY,

    NAME VARCHAR2(50) NOT NULL);//建表

    CREATE VIEW view_name AS

    Select * FROM Table_name;//建视图

    Create UNIQUE INDEX index_name ON TableName(col_name);//建索引

    INSERT INTO tablename {column1,column2,…} values(exp1,exp2,…);//插入

    INSERT INTO Viewname {column1,column2,…} values(exp1,exp2,…);//插入视图实际影响表

    UPDATE tablename SET name=’zang 3’ condition;//更新数据

    DELETE FROM Tablename WHERE condition;//删除

    GRANT (Select,delete,…) ON (对象) TO USER_NAME [WITH GRANT OPTION];//授权

    REVOKE (权限表) ON(对象) FROM USER_NAME [WITH REVOKE OPTION] //撤权

    列出工作人员及其领导的名字:

    Select E.NAME, S.NAME FROM EMPLOYEE E S

    WHERE E.SUPERName=S.Name

    4. 视图:是虚表,是从一个或几个基本表(或视图)中导出的表,在系统的数据字典中仅存放了视图的定义,不存放视图对应的数据。优点:数据安全性,逻辑数据独立性,操作简便性。

    5. 完整性约束:实体完整性、参照完整性、用户定义完整性

    实体完整性是指关系的主关键字不能重复也不能取“空值"。

    参照完整性是定义建立关系之间联系的主关键字与外部关键字引用的约束条件。

    实体完整性和参照完整性适用于任何关系型数据库系统,它主要是针对关系的主关键字和外部关键字取值必须有效而做出的约束。用户定义完整性则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。

    6. 第三范式:

    1NF:每个属性是不可分的。2NF:若关系R是1NF,且每个非主属性都完全函数依赖于R的键(不局部依赖)。例SLC(SID#, CourceID#, SNAME,Grade),则不是2NF; 3NF:若R是2NF,且它的任何非键属性都不传递依赖于任何候选键。

    7. ER(实体/联系)模型

    8. 索引作用

    索引通常能提高select/update/delete的性能,会降低insert的速度,

    使用索引查询一定能提高查询的性能吗?为什么

    通常,通过索引查询数据比全表扫描要快.但是我们也必须注意到它的代价.

    索引需要空间来存储,也需要定期维护, 每当有记录在表中增减或索引列被修改时,索引本身也会被修改. 这意味着每条记录的INSERT,DELETE,UPDATE将为此多付出4,5 次的磁盘I/O. 因为索引需要额外的存储空间和处理,那些不必要的索引反而会使查询反应时间变慢

    9. 事务:是一系列的数据库操作,是数据库应用的基本逻辑单位。事务性质:原子性、

     原子性。即不可分割性,事务要么全部被执行,要么就全部不被执行。

     一致性或可串性。事务的执行使得数据库从一种正确状态转换成另一种正确状态

     隔离性。在事务正确提交之前,不允许把该事务对数据的任何改变提供给任何其他事务,

     持久性。事务正确提交后,其结果将永久保存在数据库中,即使在事务提交后有了其他故障,事务的处理结果也会得到保存。

    10. 锁:共享锁、互斥锁

    两段锁协议:阶段1:加锁阶段 阶段2:解锁阶段

    11. 死锁及处理:事务循环等待数据锁,则会死锁。

    死锁处理:预防死锁协议,死锁恢复机制

    12. 存储过程:存储过程就是编译好了的一些sql语句。

    1.存储过程因为SQL语句已经预编绎过了,因此运行的速度比较快。

    2. 可保证数据的安全性和完整性。通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。通过存储过程可以使相关的动作在一起发生,从而可以维护数据库的完整性。

    3.可以降低网络的通信量。存储过程主要是在服务器上运行,减少对客户机的压力。

    4:存储过程可以接受参数、输出参数、返回单个或多个结果集以及返回值。可以向程序返回错误原因

    5:存储过程可以包含程序流、逻辑以及对数据库的查询。同时可以实体封装和隐藏了数据逻辑。  

    13. 触发器: 当满足触发器条件,则系统自动执行触发器的触发体。

    触发时间:有before,after.触发事件:有insert,update,delete三种。触发类型:有行触发、语句触发

    14.内联接,外联接区别?

    内连接是保证两个表中所有的行都要满足连接条件,而外连接则不然。

    在外连接中,某些不满条件的列也会显示出来,也就是说,只限制其中一个表的行,而不限制另一个表的行。分左连接、右连接、全连接三种

  • 相关阅读:
    iOS NSPredicate和正则表达式
    Linux下网络socket编程——实现服务器(select)与多个客户端通信
    多线程有什么用?
    一句话说明白什么是面向对象
    (转)简单的Malloc实现
    动态内存管理:malloc/free/new/delete/brk/mmap
    Qt绘制中国象棋棋盘
    (转)Qt中文手册 之 QApplication
    Qt常用类——QFrame类与QWidge类
    Qt常用类——QWidget
  • 原文地址:https://www.cnblogs.com/samulescollection/p/3313712.html
Copyright © 2011-2022 走看看