关闭

【面试收货】数据库部分

133人阅读 评论(0) 收藏 举报
分类:

1.关于Oracle中left join 俩种写法

select * from a,b where a.id=b.id(+);--该写法的执行效率高
select * from a left join b on a.id=b.id;

不熟悉Oracle,所以本问题有待实验。


2.数据库范式

参考博客:http://www.cnblogs.com/linjiqin/archive/2012/04/01/2428695.html
第一范式:具有原子性,所有字段值都是不可分解的原子值。

      如果系统经常会访问“地址”属性中的“城市”部分,那么就非要将“地址”这个属性重新拆分为省份、城市、详细地址等多个部分进行存储,这样在对地址中某一部分操作的时候将非常方便。


第二范式:确保表中的每列都和主键相关在一个数据库表中,一个表中只能保存一种数据,不可以把多种数据保存在同一张数据库表中。

下图不符合第二范式

下图满足第二范式


第三范式:确保每列都和主键列直接相关,而不是间接相关。


3.解释下DML与DDL

参考博客:http://blog.csdn.net/tomatofly/article/details/5949070

主要的区别是DML是显示提交,能回滚. DDL是隐式提交,不能回滚.


1. 数据查询语言DQL
数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE
子句组成的查询块:
SELECT <字段名表>
FROM <表或视图名>
WHERE <查询条件>

2 .数据操纵语言DML
数据操纵语言DML主要有三种形式:
1) 插入:INSERT
2) 更新:UPDATE
3) 删除:DELETE

3. 数据定义语言DDL
数据定义语言DDL用来创建数据库中的各种对象-----表、视图、
索引、同义词、聚簇等如:
CREATE TABLE/VIEW/INDEX/SYN/CLUSTER
表 视图 索引 同义词 簇

DDL操作是隐性提交的!不能rollback 


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:28702次
    • 积分:1424
    • 等级:
    • 排名:千里之外
    • 原创:116篇
    • 转载:10篇
    • 译文:0篇
    • 评论:1条