
SQL 面试题
SQL 理论题(简要阐述)
1、 触发器的作用?
触发器 有数据库级触发器,ddl 和 dml 触发器,用于 当某个事件触发之后 执行一系列操作
2、什么是存储过程?用什么来调用?
存储过程 是数据库中的 编程语言,是 sql 语言的扩展, 可以更方便的处理业务逻辑。
存储过程 可以用 数据库自带 job,linux crontab 或者 etl 调度工具来调用
3、索引的作用?和它的优点缺点是什么?
索引是用来 快速查找少量数据的
优点:索引可以提高 查询速度 缺点:索引会降低 DML 性能
4、什么叫视图?游标是什么?
视图本身就是一封装了一条 select 查询语句,视图本身不存储数据,可以用来做数据的权限控
制,以及底层数据的访问封装
游标是 plsql 数据处理时,当一条查询返回多条数据时,可以将查询结果封装到游标中,通过游
标进行循环处理查询返回的多条数据
Sql 操作
1、根据提供的表数据,查询显示对应需要的结果。
Student(S#,Sname,Sage,Ssex) 学生表 S#:学号;Sname:姓名;Sage:年龄;Ssex:性别
Course(C#,Cname,T#) 课程表 C#,课程编号;Cname:课程名字;T#:教师编号
SC(S#,C#,score) 成绩表 S#:学号;C#,课程编号;score:成绩
Teacher(T#,Tname) 教师表 T#:教师编号; Tname:教师名字
问题:
1)查询“001”课程比“002”课程成绩高的所有学生的学号;
select a.s# from
(select * from SC a where c#='001') a,(select * from SC a where c#='002') b
where a.s#=b.s# and a.score>b.score order by 1
2)查询平均成绩大于 60 分的同学的学号和平均成绩;
select s#,avg(score) from SC group by s# having avg(score)>60;
评论