笔试环节:
1.Oracle有几种备份方式?(这个是完全不知道哎)
(1)导出/导入(EXP/IMP)。
(2)热备份。
(3)冷备份。
2.存储过程和函数的区别?
1)一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。存储过程,功能强大,可以执行包括修改表等一系列数据库操作;用户定义函数不能用于执行一组修改全局数据库状态的操作。
2)对于存储过程来说可以返回参数,如记录集,而函数只能返回值或者表对象。函数只能返回一个变量;而存储过程可以返回多个。存储过程的参数可以有IN,OUT,INOUT三种类型,而函数只能有IN类~~存储过程声明时不需要返回类型,而函数声明时需要描述返回类型,且函数体中必须包含一个有效的RETURN语句。
3)存储过程,可以使用非确定函数,不允许在用户定义函数主体中内置非确定函数。
4)存储过程一般是作为一个独立的部分来执行( EXECUTE 语句执行),而函数可以作为查询语句的一个部分来调用(SELECT调用),由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。 SQL语句中不可用存储过程,而可以使用函数。
3.说出一下聚合函数的含义:avg,sum,max,min,count,count()?
avg()求平均值函数;
sum()求和函数;
max()求最大值函数;
min()求最小值函数;
count()计算指定列的行数;
count()计算所有行数;
4.查询A表中存在ID重复三次以上的记录,完整的查询语句?
select * from A where id in(select id from A group by id having count(id)>3);
5.编写SQL语句
1)创建一张学生表,包含以下信息,学号、姓名、年龄、性别、家庭住址、电话号码;
drop table if exists student;
create table student(
stuid Integer(20) not null primary key,
name varchar(20) not null,
age Integer(11),
sex char(4),
address varchar(30),
tel INTEGER(11)
) ENGINE=InnoDB Default charset=utf8;
- 修改学生表的结构,添加一列信息,学历
alter table student add edu varchar(30);
- 修改学生表的结构,删除一列信息,家庭住址
alter table student drop address;
- 向学生表添加如下信息:
学号 姓名 年龄 性别 联系电话 学历
1 A 22 男 122 小学
2 B 21 男 119 中学
3 C 23 男 110 高中
4 D 18 女 114 大学
insert into student values(1,'A',22,'男',122,'小学'),(2,'B',21,'男',119,'中学'),(3,'C',23,'男',110,'高中'),
(4,'D',18,'女',114,'大学');
- 修改学生表的数据,将电话号码以11开头的学员的学历改为“大专”
update student set edu='大专' where tel kike '11%';
- 删除学生表的数据,姓名以C开头,性别为’男’的记录删除
delete from student where name like 'C%' and sex='男';
- 查询学生表的数据,将所有年龄小于22岁的,学历为“大专”的,学生的姓名和学号显示出来
select name,stuid from student where age<22 and edu='大专';
- 查询学生表的数据,查询所有信息,列出前3条记录
select* from student limit 3;
- 查询出所有学生的姓名,性别,年龄降序排列
SELECT name,sex,age FROM student ORDER BY age desc;
- 按照性别分组查询所有的平均年龄
select sex,avg(age) from student group by sex;
6.用一条SQL语句查询出每门课程都大于80分的学生姓名。
name course score
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90
select distinct name from score where name not
in (select distinct name from student where score<=80);```
7.学生表如下:
删除除了自动编号不同,其他都相同的学生冗余信息
```sql
delete from student where id not in (select student.id from(select min(id) as id from students group by name,sex,score,subject) student);
8.有一张表,里面与三个字段:语文、数学、英语。其中有三条记录分别为语文70,数学80,英语58,请用一条SQL语句查询出这三条记录,并按照以下格式表示:
语文 数学 英语
及格 优秀 不及格
select
(
case when 语文>=80 then '优秀'
when 语文>=60 then '及格'
else '不及格'
) as '语文',
(
case when 数学>=80 then '优秀'
when 数学>=60 then '及格'
else '不及格'
) as '数学',
(
case when 英语>=80 then '优秀'
when 英语>=60 then '及格'
else '不及格'
) as '英语',
from table;
面试环节
1、自我介绍。
2、为什么不从事数据开发,数据开发和数据库工程师有什么区别?
3、你认为你有什么优点竞争这个岗位?
4、常用的数据库有哪些?
5、跟客户沟通过程中,你应该做到哪些?
还有的就想不起来了,我这健忘的脑子……
最后是反问环节(这个自行提问了)。

本文记录了一次笔试和面试的经历,涉及Oracle备份方式、存储过程与函数的区别、SQL聚合函数、复杂查询语句等内容。面试环节包括自我介绍、岗位理解、个人优势以及数据库相关问题的讨论。
279

被折叠的 条评论
为什么被折叠?



