首页 > 代码库 > 数据库与SQL语言<4>
数据库与SQL语言<4>
s数据库面试主要包含范式、事务、存储过程、SQL语言,以及索引等诸多方面。
1.数据库理论
第一范式:关系模式R的所有属性的值域中每一个值都是不可再分解的值,则称R属于第一范式。
第二范式:如果关系型数据库属于第一范式,并且R中每一个非主属性完全函数依赖于R的某个候选键,则称第二范式。
第三范式:如果关系型数据库是第二范式,且每个非主属性每个非主属性都不传递依赖于R的候选键,则称R的第三范式。
BC范式:关系模式属于第一范式,且每个属性都不传递依赖于R的候选键。
第四范式:R是一个关系模式,D是R上的多值依赖集合。如果D中成立非平凡的多值依赖X->->Y时,X必是R的超键。
数据库事务:作为单个逻辑工作单元执行的一系列操作,这些单元要么全做要么全不做,是不可分割的工作单元。(原子性、一致性、独立性、持久性)
游标作用:定位结果集的行。
事前触发(事案件发生前触发)、事后触发、语句级触发(可以在语句执行前或者后执行)、行级触发(触发器影响的每一行触发)
SQL注入式攻击就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令。
2.SQL语言
select *from ppp where num<=all(select num from ppp) ------------找出表ppp中num最小的对应数据
selct top 1 num from ppp order by num
select *from ppp where num=(select Min(num) from ppp)
select * from ppp where num in(select num from ppp group by num having(count(num)>1))-------------选择ppp中num重复的记录
复制表(只复制结构,源表名:A,新表名:B)-----------select *into B from A where 1=0
拷贝表(拷贝数据,源表名:A,新表名:B)-----------select *into B from A
多表联查---------select *from A,B.. where 关联条件
临时表创建:create table #Temp(字段1 类型,字段2 类型,...) ----------临时表要在表名前面加“#”
当同时含有where子句、group by 子句 、having子句及聚集函数时,执行顺序如下:
--执行where子句查找符合条件的数据;
--使用group by 子句对数据进行分组;对group by 子句形成的组运行聚集函数计算每一组的值;最后用having 子句去掉不符合条件的组。
--having 子句中的每一个元素也必须出现在select列表中。有些数据库例外,如oracle.
--having子句和where子句都可以用来设定限制条件以使查询结果满足一定的条件限制。
--having子句限制的是组,而不是行。where子句中不能使用聚集函数,而having子句中可以。
order by 在所有关键字的后面。
数据库语言(DML、DDL、DCL、DQL、TCL)
数据库与SQL语言<4>