1. 触发器的作用?
触发器是一个特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致 性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另 一个表的数据操作,而该操作又会导致该表触发器被触发。
2. 什么是存储过程?用什么来调用? 存储过程是一个预编译的 SQL 语句,优点是允许模块化的设计,就是说只需创建一次,以后在程序中就可以调用 多次。如果某次操作需要执行多次 SQL,使用存储过程比单纯 SQL 语句执行要快。可以用一个“execute 存储过程 名 参数”命令来调用存储过程。
3. 索引的作用?和它的优点缺点是什么?。
索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不 需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是 它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。
4. 主键和索引的区别?
1.主键时为了标识数据库记录唯一性,不允许记录重复,且键值不能为空,主键也是一个特殊索引;
2.数据表中只允许有一个主键,但是可以有多个索引;
3.使用主键数据库会自动创建主索引,也可以在非主键上创建索引,方便查询效率;
4.索引可以提高查询速度,它就相当于字典的目录,可以通过它很快查询到想要的结果,而不需要进行全表扫描;
5.唯一索引则标识该索引值唯一,可以由一个或几个字段组成,一个表可以有多个唯一索引。
5. 什么是内存泄漏?
一般我们所说的内存泄漏指的是堆内存的泄漏。当应用程序用关键字 new 等创建对象时,就从堆中为它分配一块内 存,使用完后由于某种原因程序未释放或无法释放,造成系统内存的浪费。导致程序运行速度减慢甚至系统崩溃等 严重后果。
6. 维护数据库的完整性和一致性,你喜欢用触发器还是自写业务逻辑?为什么?
我是这样做的,尽可能使用约束,如 check,主键,外键,非空字段等来约束,这样做效率最高,也最方便。其次是 使用触发器,这种方法可以保证,无论什么业务系统访问数据库都可以保证数据的完整新和一致性。最后考虑的是 自写业务逻辑,但这样做麻烦,编程复杂,效率低下。
7. 什么是事务?
事务就是被绑定在一起作为一个逻辑工作单元的 SQL 语句组,如果任何一个语句操作失败那么整个操作就被失败, 进而回滚到操作前状态,或者是上个节点。为了确保要么执行,要么不执行,就可以使用事务。要将一组语句作为 事务考虑,就需要通过 ACID 测试,即原子性,一致性,隔离性和持久性。
8. 什么是锁?
在所有的 DBMS 中,锁是实现事务的关键,锁可以保证事务的完整性和并发性。与现实生活中锁一样,它可以使某 些数据的拥有者,在某段时间内不能使用某些数据或数据结构。当然锁还分级别的。
9. 什么叫视图?
视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增,改,查,操作,视图通常是由一个表或者多 个表的行或列的子集。它使得我们获取数据更容易,相比多表查询。
10. 视图创建和使用语法?
1.首先判断是否存在 if exists (select * from sysobjects where name = '视图名') drop view View_EdsProd Go
2. 创建视图 create view View_EdsProd as select * from Tab_EdsProd where Mid>1(条件) go
3. 使用视图 select *from View_EdsProd