面试数据库相关

1.有如下数据,怎么查询显示结果为 张三, 北京 河北, 12:00

name      address     arrive_time 
张三       北京        10:00  
张三       河北        12:00  

SELECT name, GROUP_CONCAT(DISTINCT address SEPARATOR ' ') AS address, max(arrive_time) AS arrive_time
FROM mytable
GROUP BY name;

2.如何查询重复数据?

SELECT * FROM student GROUP BY name HAVING count(name ) > 1

3.查询结果如何去重?

distinct关键字或者group by

4.Oracle数据库分页查询

select a1.* 
from (select student.*,rownum rn from student where rownum <=5) a1 
where rn >=3;

5.delete、truncate、drop都是删除语句,他们的区别是什么

在速度上,一般来说,drop> truncate > delete
delete用于删除部分数据
truncate 删除整个表然后重新创建这个表(相当于清空了表数据)
drop 摧毁整个表

6.数据库主键和外键作用
7.where和having的区别
8.union和union all的区别
9.数据库事务正确执行的四个基本要素是什么
10.有如下数据,查询出每门课都大于80分的学生姓名

name    class    score
蔡徐坤    语文    80
蔡徐坤    英语    55
吴亦凡    语文    100
吴亦凡    英语    90
邓紫棋    英语    85
邓紫棋    数学    70
邓紫棋    语文    95

select name from table group by name having min(score)>80

11.数据库优化策略

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理