常见sql语句面试题,sql面试题基本语句

http://www.itjxue.com  2023-01-05 00:02  来源:未知  点击次数: 

sql面试题

1、忍不住想说一句,因为第一题中的字段类型是 【日期型】,而各种数据库操作日期型数据有不同的方法,没有一种共通的方法,所以脱离了数据库而言没有一种共通的sql。

2、select ID,NAME,ADDRESS,PHONE,LOGDATE from T

where ID in( select ID from T group by NAME having count(*)1)

order by NAME;

3、delete from T where ID not in

(select min(id) from T group by name);

4、update T

set T.ADDRESS=(select E.ADDRESS from E where E.NAME=T.NAME),

T.PHONE=(select E.PHONE from E where E.NAME=T.NAME);

5、这个不同的数据库也有不同的处理方法,不能脱离数据库谈了。

如:SqlServer或者access可以使用 top

oracle可以使用 rownum 等

---

以上,希望对你有所帮助。

SQL语句面试题

--?查询所有同学的学号、姓名、选课数、总成绩;

select?S.Sid,Sname,选课数=COUNT(Cid),总成绩=SUM(Score)

???from?Student?S?join?Sc?on?S.Sid=sc.Sid

??group?by?S.Sid,Sname

--?查询学过“叶萍”老师所教的所有课程的同学学号、姓名;

select?S.Sid,Sname

from?Student?S?join?Sc?on?S.Sid=Sc.Sid

????join?Course?C?on?C.Cid=Sc.Cid

join?teacher?T?on?T.Tid=C.Tid

where?Tname='叶萍'

??group?by?S.Sid,Sname

??????having?COUNT(distinct?C.Cid)=(select?COUNT(Cid)?from?Course?join?teacher?on?Course.Tid=teacher.Tid?where?Tname='叶萍')

--?查询课程编号"002"的成绩比课程编号“001”课程低的所有同学的学号、姓名

select?Sid,Sname

from?Student

where?Sid?in(select?A.Sid

from?Sc?A?join?Sc?B?on?A.Sid=B.Sid

where?A.Cid=1?AND?B.Cid=2?AND?A.ScoreB.Score)

--?按平均成绩高到低显示所有学生的?"数学"、"物理"两门课程的成绩,以下形式显示:学生ID,数学,物理,平均分

select?Sid,数学=max(case?when?Cname='数学'?then?Score?end),物理=max(case?when?Cname='物理'?then?Score?end),

平均分=(max(case?when?Cname='数学'?then?Score?end)+max(case?when?Cname='物理'?then?Score?end))/2

from?Sc?join?Course?C?on?Sc.Cid=C.Cid

??where?Cname?in('数学','物理')

group?by?Sid

sql语句 面试题

首先创造三个表:

学生表

create table student

{

student_id varchar2(10) not null,

student_name varchar2(50) null

};

课程表

create table course

{

course_id varchar(10) not null,

course_name varchar(100) null

};

分数表

create table score

{

student_id varchar2(10) not null,

course_id varchar2(10) not null,

course_score number(3,1) null

};

答案1:

SELECT st.student_id,st.student_name,re.course_num

FROM student st,

(SELECT sc.student_id,count(sc.student_id) course_num

FROM score sc

WHERE sc.course_score 60 or sc.course_score = 60

GROUP BY sc.student_id ) re

WHERE st.student_id = re.student_id;

答案2:

SELECT st.student_id,st.student_name

FROM student st,

(SELECT sc.student_id

FROM course co,score sc

WHERE co.course_id = sc.course_id AND course_name = '语文'

GROUP BY sc.student_id) re

WHERE st.student_id = re.student_id AND st.student_name LIKE '张%';

答案3:

SELECT st.student_id,st.student_name

FROM student st,

(SELECT sc.student_id

FROM course co,score sc

WHERE co.course_id = sc.course_id AND co.course_name = '语文' AND co.course_name = '音乐'

GROUP BY sc.student_id) re

WHERE st.student_id = re.student_id;

后三道题有点麻烦,有时间再给你解答,以上都是用Oracle专用的SQL语句查询结果集的。

(责任编辑:IT教学网)

更多

推荐mac苹果系统文章