作为DBA熟悉Linux和SQL语句是基本功,面试除了深入了解数据库系统之后。基本功是首要条件,一下是一下sql基础测试题
Part1
1.将字符串ABCDE和FF串在一起,回传字符串
2.取ABCDEFG的字符长度
3.将FGHIJ变小写
4.将ABCDE中的B以C取代
5.将eeffdg变大写
6. 5/2取余数
7. 1.1246,第三位后四舍五入
8. 1.1234,第二位后无条件舍去
9. 取出系统日当月的最后一天
10. 将系统日以月为单位做四舍五入
11. 把今天的系统日期用以下的FORMAT ‘YY-MM-DD’呈现
12. 用一个指令,取出C和R谁最大
13. 用一个指令,取出C和R谁最小
14. 用一个指令取出,当某个栏位一和栏位二数值相等时,回传NULL,否则回传栏位一的值
15. 用一个指令取出,当某个栏位为NULL时,回传B,否则回传C
16. 用一个指令,让12345数字栏位冠上$字号
17. 用一个指令取出,当某一个栏位为NULL时,回传NULL字符串,否则回传该栏位值
18. 分别写出,去除左空白、去除右空白、去除左/右空白三个指令
19. 取出B字符存在ABCD字符中的第几个字符
20.取出ABC-D123EF字符串中,’-’符号后面的字符串,不含’-’符号
Part2
1、创建一个学生表,表名为t_student,包含信息:学号(主键),姓名(非空),性别,出生日期,年龄。
2、创建一个成绩表,表名t_score,包含字段:学生学号,学年,语文成绩,数学成绩,英语成绩,平均分,总分。其中学生学号,学年为主键;分数默认0分,平均分保留两位小数,其它保留到整数。
3、向t_student,t_score分别插入3条以上的数据。其中t_score表中的学号一定要存在于t_strdent中;t_score表中的平均分,总分暂不插入数据。
4、查找t_student表,找出姓名第2个字为‘小’的学生。按学号升序排序。
5、查找t_student表,找出年龄20~25之间(含)的学生,如果年龄栏位为空,也算在该范围内。
6、用一条指令求出t_score表中的平均分、总分,更新到相应栏位。
7、找出平均分<60分的学生。栏位要求有:学号,姓名,性别,语文成绩,数学成绩,英语成绩,平均分,总分。
8、对t_score表用一条指令统计每个学年的考试人数。
9、对t_score表用一条指令,统计出每个学年所有学生的语文平均分,找出语文平均分>80分的学年度,按学年降序排序。
10、查找t_student表所有学生的考试成绩,如果没有对应考试成绩用空值补充。
11、用一条指令找出语数英三科成绩有不及格(<60)的学生的基本信息,要求用subquery实现。
12、有一部门表t_dept,包含三个栏位dept_no(部门号),dept_name(部门名词),top_dept_no(上级部门号),用一条指令查找出部门号,部门名称,上级部门号,上级部门名称。
13、建立一个Sequence。说明什么情况下用currval指令取值?什么情况下用nextval指令取值?
14、查找t_student表所有学生资料,返回结果存放到一个cursor中。