1、在使用 left join 时,on 和 where 条件的区别
1、on 条件是在生成临时表时使用的条件,它不管 on 中的条件是否为真,都会返回左边表中的记录。
2、where 条件是在临时表生成好后,再对临时表进行过滤的条件。
2、truncate、delete 与 drop 区别
相同点
1、truncate和不带where条件的delete、以及drop都会删除表内数据。
2、drop、truncate都是 DDL 语句,执行后会自动提交。
不同点
1、truncate和delete只删除数据不删除表结构,drop将删除表的结构被依赖的约束、触发器、索引。
2、一般来说,执行速度:drop>truncate>delete。
3、怎么取前 10 条数据
1、oracle – rownum
2、mysql – limit
4、什么是内连接、外连接、全连接、笛卡尔积
连接 | 描述 |
---|---|
内连接(inner join) | 返回满足条件的数据。 |
外连接(left\right join) | 除显示两表满足匹配关系的记录,还返回左边或者右边全部。 |
全连接(full join) | 返回左表和右表所有数据。 |
笛卡尔积(cross join) | 显示两张表所有记录一一对应,没有匹配关系进行筛选。 |
5、主键与唯一索引的区别
1、主键不允许空值,唯一索引允许空值。
2、主键只允许一个,唯一索引允许多个。
3、主键产生唯一的聚集索引,唯一索引产生唯一的非聚集索引。
6、为什么使用视图
我们在使用查询时,在很多时候我们要使用聚合函数,同时还要显示其它字段的信息,可能还会需要关联到其它表,这时写的语句可能会很长,如果这个动作频繁发生的话,我们可以创建视图。
1、数据库视图可以简化复杂的查询。
2、数据库视图有助于限制对特定用户的数据访问。