1.触发器: 触发器是一种特殊的存储过程,主要是通过事件来触发而被执行的
2.存储过程:存储过程就是编译好了的一些sql语句
3.内联接,外联接区别?
内连接是保证两个表中所有的行都要满足连接条件,而外连接则不然。
在外连接中,某些不满条件的列也会显示出来,也就是说,只限制其中一个表的行,而不限制另一个表的行
- 完整性约束:实体完整性、参照完整性、用户定义完整性
- 索引的作用及优点缺点是什么?
答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据
优点:可以是唯一的,创建索引允许指定单个列或是多个列
缺点:它减慢了数据录入的速度,同时增加数据库的尺寸大小
6.什么是存储过程和用什么来调用?
存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。可以用一个命令对象来调用存储过程
7.什么是事务,什么是锁?
事务就是被绑定在一起作为一个逻辑工作单元的SQL语句分组,如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上个节点。
在所有的DBMS中,锁是实现事务的关键,锁可以保证事务的完整性和并发性。
当然锁还分级别的,与现实生活中锁一样,限制数据的拥有者使用某些数据或数据结构
8.什么叫视图:视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作;试图通常是有一个表或者多个表的行或列的子集。
对视图的修改不影响基本表。相比多表查询,它使得我们获取数据更容易
9.什么是游标:是对查询出来的结果集作为一个单元来有效的处理
可以定在该单元中的特定行;从结果集的当前行检索一行或多行;可以对结果集当前行做修改;常用于需要逐条处理数据的时候
10.索引:是一个数据结构,用来快速访问数据库表格或者视图里的数据
在SQL Server里,它们有两种形式:聚集索引和非聚集索引
聚集索引:在索引的叶级保存数据。这意味着不论聚集索引里有表格的哪个或哪些字段,这些字段都会按顺序被保存在表格。由于存在这种排序,所以每个表格只会有一个聚集索引
非聚集索引:在索引的叶级有一个行标识符。这个行标识符是一个指向磁盘上数据的指针。它允许每个表格有多个非聚集索引
11.内连接:只连接匹配的行
12.左外连接:包含左边表的全部行(不管右边的表中是否存在与它们匹配的行)以及右边表中全部匹配的行
13.右外连接:包含右边表的全部行(不管左边的表中是否存在与它们匹配的行)以及左边表中全部匹配的行
14.全外连接:包含左、右两个表的全部行,不管在另一边的表中是否存在与它们匹配的行
15.交叉连接:生成笛卡尔积它不使用任何匹配或者选取条件,而是直接将一个数据源中的每个行与另一个数据源的每个行一一匹配
16.Oracle系统进程主要有哪些,作用是什么
数据写进程(DBWR):负责将更改的数据从数据库缓冲区高速缓存写入数据文件
日志写进程(LGWR):将重做日志缓冲区中的更改写入在线重做日志文件
系统监控 (SMON): 检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复
进程监控 (PMON): 负责在一个Oracle 进程失败时清理资源
检查点进程(CKPT):负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息
归档进程 (ARCH):在每次日志切换时把已满的日志组进行备份或归档
恢复进程 (RECO): 保证分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback
作业调度器(CJQ ): 负责将调度与执行系统中已定义好的job,完成一些预定义的工作.
给出两种相关约束:主键和外键
1.JOIN 子句:用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段--即返回共同的字段
2.触发器的作用:它可以强化约束,来维护数据的完整性和一致性;可以跟踪数据库内的操作,从而不允许未经许可的更新和变化;可以联级运算
触发器被用来限制数据库表格里的字段能够接受的值,但是这种办法要求触发器在表格里被定义,这可能会在某些情况下影响到
因此,微软建议使用Check限制而不是其他的方式来限制域的完整性
3.事务:为了确保要么执行,要么不执行,就可以使用事务。要将有组语句作为事务考虑,就需要通过ACID测试,即原子性,一致性,隔离性和持久性
4.比较truncate和delete 命令
解答:两者都可以用来删除表中所有的记录
区别:truncate是DDL操作,它移动HWK,不需要 rollback segment 而Delete是DML操作, 需要rollback segment 且花费较长时间