数据库基础(面试常见题)一、数据库基础1.数据抽象:物理抽象、概念抽象、视图级抽象,内模式、模式、外模式2.SQL语言包括数据定义、数据操纵(DataManipulation),数据控制(DataControl)数据定义:CreateTable,AlterTable,DropTable,Craete/DropIndex等数据操纵:Select,insert,update,delete,数据控制:grant,revoke3.SQL常用命令:CREATETABLEStudent(IDNUMBERPRIMARYKEY,NAMEVARCHAR2(50)NOTNULL);//建表CREATEVIEWview_nameASSelect*FROMTable_name;//建视图CreateUNIQUEINDEXindex_nameONTableName(col_name);//建索引INSERTINTOtablename{column1,column2,…}values(exp1,exp2,…);//插入INSERTINTOViewname{column1,column2,…}values(exp1,exp2,…);//插入视图实际影响表UPDATEtablenameSETname=’zang3’condition;//更新数据DELETEFROMTablenameWHEREcondition;//删除GRANT(Select,delete,…)ON(对象)TOUSER_NAME[WITHGRANTOPTION];//授权REVOKE(权限表)ON(对象)FROMUSER_NAME[WITHREVOKEOPTION]//撤权列出工作人员及其领导的名字:SelectE.NAME,S.NAMEFROMEMPLOYEEESWHEREE.SUPERName=S.Name4.视图:5.完整性约束:实体完整性、参照完整性、顾客定义完整性6.第三范式:1NF:每个属性是不可分的。2NF:若关系R是1NF,且每个非主属性都完全函数依赖于R的键。例SLC(SID#,CourceID#,SNAME,Grade),则不是2NF;3NF:若R是2NF,且它的任何非键属性都不传递依赖于任何候选键。7.ER(实体/联络)模型8.索引作用9.事务:是一系列的数据库操作,是数据库应用的基本逻辑单位。事务性质:原子性、原子性。即不可分割性,事务要么所有被执行,要么就所有不被执行。一致性或可串性。事务的执行使得数据库从一种对的状态转换成另一种对的状态隔离性。在事务对的提交之前,不容许把该事务对数据的任何变化提供应任何其他事务,持久性。事务对的提交后,其成果将永久保留在数据库中,虽然在事务提交后有了其他故障,事务的处理成果也会得到保留。10.锁:共享锁、互斥锁两段锁协议:阶段1:加锁阶段阶段2:解锁阶段11.死锁及处理:事务循环等待数据锁,则会死锁。死锁处理:防止死锁协议,死锁恢复机制12.存储过程:存储过程就是编译好了的某些sql语句。1.存储过程由于SQL语句已经预编绎过了,因此运行的速度比较快。2.可保证数据的安全性和完整性。通过存储过程可以使没有权限的顾客在控制之下间接地存取数据库,从而保证数据的安全。通过存储过程可以使有关的动作在一起发生,从而可以维护数据库的完整性。3.可以减少网络的通信量。存储过程重要是在服务器上运行,减少对客户机的压力。4:存储过程可以接受参数、输出参数、返回单个或多种成果集以及返回值。可以向程序返回错误原因5:存储过程可以包括程序流、逻辑以及对数据库的查询。同步可以实体封装和隐藏了数据逻辑。13.触发器:当满足触发器条件,则系统自动执行触发器的触发体。触发时间:有before,after.触发事件:有insert,update,delete三种。触发类型:有行触发、语句触发14.内联接,外联接区别?内连接是保证两个表中所有的行都要满足连接条件,而外连接则否则。在外连接中,某些不满条件的列也会显示出来,也就是说,只限制其中一种表的行,而不限制另一种表的行。分左连接、右连接、全连接三种15SQL语句-创立索引createclusteredindexriqi_persononperson(date)------在person表的date字段上面创立名为riqi_person的【汇集索引】createnonclusteredindexriqi_persononperson(date)------在person表的date字段上面创立名为riqi_person的【非汇集索引】createclusteredindexdate_persononperson(date,id)------在person表的date,age字段上面创立名为riqi_person的【复合汇集索引】createnonclusteredindexdate_persononperson(date,age)------在person表的date,age字段上面创立名为riqi_person的【复合非汇集索引】语法:CREATE[索引类型]INDEX索引名称ON表名(列名)WITHFILLFACTOR=填充因子值0~100GOUSE库名GOIFEXISTS(SELECT*FROMSYSINDEXESWHERENAME='IX_TEST_TNAME')--检测与否已经存在IX_TEST_TNAME索引DROPINDEXTEST....