数据库基础知识

主键和外键之间的区别?

答:主键用于唯一标识一个数据表里的元组(一行数据),唯一且不能为空。外键用于与其他表格建立联系用,外键是另一个表的主键。

为什么不支持外键与级联?

答:如果使用外键,在执行delete update等操作的时候,需要检查有没有外键约束,这会增加工作任务与维护的代价;此外,分库分表时,一般会不支持外键。有一个是想保持数据完整性,一个是不一定能保证数据兼容性(两个库一个是MySQL一个是Oracle)。

drop、truncate、delete之间的区别?

答:drop是把整张表删掉,truncate是清空表中的数据但表结构还在,属于数据定义语言(DDL),会马上生效,不会放入rollback  segment 中。delete是带条件删除符合要求的行数据,是数据库操作语言(DML)。

SQL语法要点:不区分大小写,多条SQL语句要用:隔开;处理时,空格会被忽略。

SQL分类:

DDL:数据定义语言,负责定义数据结构,代表性的是create、drop、alter

DML:数据操作语言,用于数据库操作,主要的是select、insert、delete等,也被称为CRUD(增删改查)。

TCL:事务控制语言,控制数据库中的事务,如事务开启和回滚等,比如rollback、commit。

DCL:数据控制语言,主要是用来分配权限的。

having  VS  where

where:对原始数据进行过滤,通常用于groupby之前,不能对聚合函数进行过滤,如 AVG(),COUNT()等。

having:对groupby的子句进行过滤,可以对聚合函数过滤,一般在groupby句子之后。且having和where可以在一个SQL中使用。

on  VS  where:

表连接时,会根据连接的条件生成一张新的临时表,on就是连接条件的。而where是指在生成的临时表的基础上对数据进行过滤。就是说SQL会根据on条件生成一张临时表,然后用where对临时表上的数据进行过滤。

连接类型:

内连接(inner jion):只有两个表中都有的数据才会被返回。如果是join的话,默认就是内连接。

左外连接(left jion):返回左表中的所有数据,以及右表中与之匹配的数据。

右外连接(right jion):返回右表中的所有数据,以及左表中与之匹配的数据。

全外连接(full jion):返回两个表中的数据,如果其中一个缺失的用null来替代。

self join :自己跟自己连接做查询,其中一个肯定要取别名才能连接。

隐式内连接:没有inner join 关键字,而是用where来判断连接。

SQL面试总结:这部分在面经里面看吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值