`
行者买刀
  • 浏览: 194192 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Sql常见面试题(总结)

    博客分类:
  • SQL
阅读更多

Sql常见面试题(总结)

1.用一条SQL语句 查询出每门课都大于80分的学生姓名 

name   kecheng   fenshu
张三     语文       81
张三     数学
       75
李四     语文
       76
李四     数学
       90
王五     语文
       81
王五     数学
       100
王五     英语
       90

A: select distinct name from table  where  name not in (select distinct name from table where fenshu<=80)

2.
学生表 如下:
自动编号   学号   姓名 课程编号 课程名称 分数

1        2005001 
张三  0001      数学    69
2        2005002 
李四  0001      数学
    89
3        2005001 
张三  0001      数学
    69
删除除了自动编号不同,其他都相同的学生冗余信息


A: delete tablename where
自动编号 not in(select min(自动编号) from tablename group by 学号,姓名,课程编号,课程名称,分数)

一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球对,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合.
你先按你自己的想法做一下,看结果有我的这个简单吗?

答:select a.name, b.name
from team a, team b
where a.name < b.name

 

请用SQL语句实现:从TestDB数据表中查询出所有月份的发生额都比101科目相应月份的发生额高的科目。请注意:TestDB中有很多科目,都有112月份的发生额。
AccID
:科目代码,Occmonth:发生额月份,DebitOccur:发生额。
数据库名:JcyAudit,数据集:Select * from TestDB

答:select a.*
from TestDB a
,(select Occmonth,max(DebitOccur) Debit101ccur from TestDB where AccID='101' group by Occmonth) b
where a.Occmonth=b.Occmonth and a.DebitOccur>b.Debit101ccur

************************************************************************************

面试题:怎么把这样一个表儿
year  month amount
1991   1     1.1
1991   2     1.2
1991   3     1.3
1991   4     1.4
1992   1     2.1
1992   2     2.2
1992   3     2.3
1992   4     2.4
查成这样一个结果
year m1  m2  m3  m4
1991 1.1 1.2 1.3 1.4
1992 2.1 2.2 2.3 2.4

答案一、
select year,
(select amount from  aaa m where month=1  and m.year=aaa.year) as m1,
(select amount from  aaa m where month=2  and m.year=aaa.year) as m2,
(select amount from  aaa m where month=3  and m.year=aaa.year) as m3,
(select amount from  aaa m where month=4  and m.year=aaa.year) as m4
from aaa  group by year

 

这个是ORACLE  中做的:
select * from (select name, year b1, lead(year) over
(partition by name order by year) b2, lead(m,2) over(partition by name order by year) b3,rank()over(
partition by name order by year) rk from t) where rk=1;

************************************************************************************

精妙的SQL语句!
精妙SQL语句  
作者:不详 发文时间:
2003.05.29 10:55:05

说明:复制表(只复制结构,源表名:a 新表名:
b)

SQL: select * into b from a where 1<>1

说明:拷贝表(拷贝数据,源表名:a 目标表名:
b)

SQL: insert into b(a, b, c) select d,e,f from b;

说明:显示文章、提交人和最后回复时间


SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b

说明:外连接查询(表名1a 表名2
b)

SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c

说明:日程安排提前五分钟提醒


SQL: select * from
日程安排 where datediff('minute',f开始时间
,getdate())>5

说明:两张关联表,删除主表中已经在副表中没有的信息


SQL:

delete from info where not exists ( select * from infobz where info.infid=infobz.infid )

说明:
--

SQL:

SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE

FROM TABLE1,

(SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE

FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND

FROM TABLE2

WHERE TO_CHAR(UPD_DATE,'YYYY/MM') = TO_CHAR(SYSDATE, 'YYYY/MM')) X,

(SELECT NUM, UPD_DATE, STOCK_ONHAND

FROM TABLE2

WHERE TO_CHAR(UPD_DATE,'YYYY/MM') =

TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 'YYYY/MM') ¦¦ '/01','YYYY/MM/DD') - 1, 'YYYY/MM') ) Y,

WHERE X.NUM = Y.NUM
+


AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) <> X.STOCK_ONHAND ) B

WHERE A.NUM = B.NUM

说明:
--

SQL:

select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and
系名称='"&strdepartmentname&"' and 专业名称='"&strprofessionname&"' order by 性别,生源地,高考总成绩


说明:


从数据库中去一年的各单位电话费统计(电话费定额贺电化肥清单两个表来源)


SQL:

SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy') AS telyear,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '01', a.factration)) AS JAN,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '02', a.factration)) AS FRI,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '03', a.factration)) AS MAR,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '04', a.factration)) AS APR,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '05', a.factration)) AS MAY,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '06', a.factration)) AS JUE,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '07', a.factration)) AS JUL,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '08', a.factration)) AS AGU,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '09', a.factration)) AS SEP,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '10', a.factration)) AS OCT,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '11', a.factration)) AS NOV,

SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '12', a.factration)) AS DEC

FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate, b.factration

FROM TELFEESTAND a, TELFEE b

WHERE a.tel = b.telfax) a

GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy')

说明:四表联查问题:


SQL: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....

说明:得到表中最小的未使用的ID


SQL:

SELECT (CASE WHEN EXISTS(SELECT * FROM Handle b WHERE b.HandleID = 1) THEN MIN(HandleID) + 1 ELSE 1 END) as HandleID

FROM Handle

WHERE NOT HandleID IN (SELECT a.HandleID - 1 FROM Handle a)

 

*******************************************************************************

有两个表AB,均有keyvalue两个字段,如果BkeyA中也有,就把Bvalue换为A中对应的value
这道题的SQL语句怎么写?

update   b   set   b.value=(select   a.value   from   a   where   a.key=b.key)   where   b.id   in(select   b.id   from   b,a   where   b.key=a.key);

***************************************************************************

高级sql面试题

原表:
courseid coursename score
-------------------------------------
1 java 70
2 oracle 90
3 xml 40
4 jsp 30
5 servlet 80
-------------------------------------
为了便于阅读,查询此表后的结果显式如下(及格分数为60):
courseid coursename score mark
---------------------------------------------------
1 java 70 pass
2 oracle 90 pass
3 xml 40 fail
4 jsp 30 fail
5 servlet 80 pass
---------------------------------------------------
写出此查询语句

没有装ORACLE,没试过
select courseid, coursename ,score ,decode
sign(score-60),-1,'fail','pass') as mark from course

完全正确

SQL> desc course_v
Name Null? Type
----------------------------------------- -------- ----------------------------
COURSEID NUMBER
COURSENAME VARCHAR2(10)
SCORE NUMBER

SQL> select * from course_v;

COURSEID COURSENAME SCORE
---------- ---------- ----------
1 java 70
2 oracle 90
3 xml 40
4 jsp 30
5 servlet 80

SQL> select courseid, coursename ,score ,decode(sign(score-60),-1,'fail','pass') as mark from course_v;

COURSEID COURSENAME SCORE MARK
---------- ---------- ---------- ----
1 java 70 pass
2 oracle 90 pass
3 xml 40 fail
4 jsp 30 fail
5 servlet 80 pass

*******************************************************************************

原表:

id proid proname
1 1 M
1 2 F
2 1 N
2 2 G
3 1 B
3 2 A
查询后的表:

id pro1 pro2
1 M F
2 N G
3 B A
写出查询语句

解决方案

sql
求解
a
a1 a2
记录 1 a
1 b
2 x
2 y
2 z
select能选成以下结果吗?
1 ab
2 xyz
使用pl/sql代码实现,但要求你组合后的长度不能超出oracle varchar2长度的限制。
下面是一个例子
create or replace type strings_table is table of varchar2(20);
/
create or replace function merge (pv in strings_table) return varchar2
is
ls varchar2(4000);
begin
for i in 1..pv.count loop
ls := ls || pv(i);
end loop;
return ls;
end;
/
create table t (id number,name varchar2(10));
insert into t values(1,'Joan');
insert into t values(1,'Jack');
insert into t values(1,'Tom');
insert into t values(2,'Rose');
insert into t values(2,'Jenny');

column names format a80;
select t0.id,merge(cast(multiset(select name from t where t.id = t0.id) as strings_table)) names
from (select distinct id from t) t0;

drop type strings_table;
drop function merge;
drop table t;




sql

Well if you have a thoretical maximum, which I would assume you would given the legibility of listing hundreds of employees in the way you describe then yes. But the SQL needs to use the LAG function for each employee, hence a hundred emps a hundred LAGs, so kind of bulky.

This example uses a max of 6, and would need more cut n pasting to do more than that.

SQL> select deptno, dname, emps
2 from (
3 select d.deptno, d.dname, rtrim(e.ename ||', '||
4 lead(e.ename,1) over (partition by d.deptno
5 order by e.ename) ||', '||
6 lead(e.ename,2) over (partition by d.deptno
7 order by e.ename) ||', '||
8 lead(e.ename,3) over (partition by d.deptno
9 order by e.ename) ||', '||
10 lead(e.ename,4) over (partition by d.deptno
11 order by e.ename) ||', '||
12 lead(e.ename,5) over (partition by d.deptno
13 order by e.ename),', ') emps,
14 row_number () over (partition by d.deptno
15 order by e.ename) x
16 from emp e, dept d
17 where d.deptno = e.deptno
18 )
19 where x = 1
20 /

DEPTNO DNAME EMPS
------- ----------- ------------------------------------------
10 ACCOUNTING CLARK, KING, MILLER
20 RESEARCH ADAMS, FORD, JONES, ROONEY, SCOTT, SMITH
30 SALES ALLEN, BLAKE, JAMES, MARTIN, TURNER, WARD

also
create function get_a2;
create or replace function get_a2( tmp_a1 number)
return varchar2
is
Col_a2 varchar2(4000);
begin
Col_a2:='';
for cur in (select a2 from unite_a where a1=tmp_a1)
loop
Col_a2=Col_a2||cur.a2;
end loop;
return Col_a2;
end get_a2;

select distinct a1 ,get_a2(a1) from unite_a
1 ABC
2 EFG
3 KMN

*******************************************************************************

一个SQL 面试题

去年应聘一个职位未果,其间被考了一个看似简单的题,但我没有找到好的大案.
不知各位大虾有无好的解法
?


题为
:
有两个表
, t1, t2,
Table t1:

SELLER | NON_SELLER
----- -----

A B
A C
A D
B A
B C
B D
C A
C B
C D
D A
D B
D C


Table t2:

SELLER | COUPON | BAL
----- --------- ---------
A 9 100
B 9
200
C 9 300
D 9
400
A 9.5 100
B 9.5
20
A 10 80



要求用SELECT 语句列出如下结果:------ASUM(BAL)B,C,D的和,BSUM(BAL)A,C,D的和.......
且用的方法不要增加数据库负担,如用临时表等
.

NON-SELLER| COUPON | SUM(BAL) ------- --------
A 9 900
B 9
800
C 9 700
D 9
600
A 9.5 20
B 9.5
100
C 9.5 120
D 9.5
120
A 10 0
B 10
80
C 10 80
D 10 80

关于论坛上那个SQL微软面试题

问题:

一百个账户各有100$,某个账户某天如有支出则添加一条新记录,记录其余额。一百天后,请输出每天所有账户的余额信息
 

这个问题的难点在于每个用户在某天可能有多条纪录,也可能一条纪录也没有(不包括第一天)

返回的记录集是一个100*100个用户的纪录集

下面是我的思路:

1.
创建表并插入测试数据:我们要求username1-100
CREATE TABLE [dbo].[TABLE2] (
[username] [varchar] (50) NOT NULL , --
用户名

[outdate] [datetime] NOT NULL , --
日期
[cash] [float] NOT NULL --
余额
) ON [PRIMARY

declare @i int
set @i=1
while @i<=100
  begin
    insert table2 values(convert(varchar(50),@i),'2001-10-1',100)
    insert table2 values(convert(varchar(50),@i),'2001-11-1',50)
    set @i=@i+1
  end
insert table2 values(convert(varchar(50),@i),'2001-10-1',90)

select * from table2 order by outdate,convert(int,username)

2.
组合查询语句:
a.
我们必须返回一个从第一天开始到100天的纪录集:
如:2001-10-1(这个日期是任意的)到 2002-1-8
由于第一天是任意一天,所以我们需要下面的SQL语句:

select top 100 dateadd(d,convert(int,username)-1,min(outdate)) as outdate
from table2
group by username
order by convert(int,username)
这里的奥妙在于:
convert(int,username)-1
(记得我们指定用户名从1-100 :-))
group by username,min(outdate):
第一天就可能每个用户有多个纪录。

返回的结果:
outdate                                               
------------------------------------------------------
2001-10-01 00:00:00.000
.........
2002-01-08 00:00:00.000

b.
返回一个所有用户名的纪录集:
select distinct username from table2
返回结果:
username                                         
--------------------------------------------------
1
10
100
......
99

c.
返回一个100天记录集和100个用户记录集的笛卡尔集合:
select * from
(
select top 100 dateadd(d,convert(int,username)-1,min(outdate)) as outdate
from table2
group by username
order by convert(int,username)

) as A
CROSS join
(
select distinct username from table2
) as B
order by outdate,convert(int,username)
返回结果100*100条纪录:
outdate                            username
2001-10-01 00:00:00.000            1
......
2002-01-08 00:00:00.000            100

d.
返回当前所有用户在数据库的有的纪录:
select outdate,username,min(cash) as cash from table2
group by outdate,username

order by outdate,convert(int,username)
返回纪录:
outdate                            username    cash
2001-10-01 00:00:00.000            1          90
......
2002-01-08 00:00:00.000            100        50

e.
c中返回的笛卡尔集和d中返回的纪录做left join:
select C.outdate,C.username,
D.cash
from
(
select * from
(
select top 100 dateadd(d,convert(int,username)-1,min(outdate)) as outdate
from table2
group by username
order by convert(int,username)
) as A
CROSS join
(
select distinct username from table2
) as B
) as C
left join
(
select outdate,username,min(cash) as cash from table2
group by outdate,username
) as D
on(C.username=D.username and datediff(d,C.outdate,D.outdate)=0)

order by C.outdate,convert(int,C.username)
注意:用户在当天如果没有纪录,cash字段返回NULL,否则cash返回每个用户当天的余额

outdate                            username    cash
2001-10-01 00:00:00.000            1          90
2001-10-01 00:00:00.000            2          100
......
2001-10-02 00:00:00.000            1          90

2001-10-02 00:00:00.000            2          NULL  <--注意这里
......

2002-01-08 00:00:00.000            100       
50

f.
好了,现在我们最后要做的就是,如果cashNULL,我们要返回小于当前纪录日期的第一个用户余额(由于我们使用order by cash,所以返回top 1纪录即可,使用min应该也可以),这个余额即为当前的余额:
case isnull(D.cash,0)
when 0 then
(
select top 1 cash from table2 where table2.username=C.username
and datediff(d,C.outdate,table2.outdate)<0
order by table2.cash
)
else D.cash
end as cash

g.
最后组合的完整语句就是
select C.outdate,C.username,
case isnull(D.cash,0)
when 0 then
(
select top 1 cash from table2 where table2.username=C.username
and datediff(d,C.outdate,table2.outdate)<0
order by table2.cash
)
else D.cash
end as cash
from
(
select * from
(
select top 100 dateadd(d,convert(int,username)-1,min(outdate)) as outdate
from table2
group by username
order by convert(int,username)
) as A
CROSS join
(
select distinct username from table2
) as B
) as C
left join
(
select outdate,username,min(cash) as cash from table2
group by outdate,username
) as D
on(C.username=D.username and datediff(d,C.outdate,D.outdate)=0)

order by C.outdate,convert(int,C.username)

返回结果:
outdate                                 username        cash
2001-10-01 00:00:00.000    1                    90
2001-10-01 00:00:00.000    2                   100
......
2002-01-08 00:00:00.000    100                50

***********************************************************************************

取出sql表中第3140的记录(以自动增长ID为主键)

*从数据表中取出第n条到第m条的记录*/

declare @m int
declare @n int
declare @sql varchar(800)
set @m=40
set @n=31
set @sql='select top '+str(@m-@n+1) + '* from idetail where autoid not in(
select top '+ str(@n-1) + 'autoid from idetail)'
exec(@sql)

 

 

select top 10 * from t where id not in (select top 30 id from t order by id ) orde by id

--------------------------------------------------------------------------------

select top 10 * from t where id in (select top 40 id from t order by id) order by id desc

 

*******************************************************************************

一道面试题,sql语句

有表a存储二叉树的节点,要用一条sql语句查出所有节点及节点所在的层.
a
c1 c2 A ----------1
---- ---- / \
A B B C --------2
A C / / \

B D D N E ------3
C E / \ \

D F F K I ---4
E I
D K
C N


所要得到的结果如下

jd cs
----- ----
A 1
B 2
C 2

D 3
N 3
E 3
F 4

K 4
I 4
有高手指导一下,我只能用pl/sql写出来,请教用一条sql语句的写法

SQL> select c2, level + 1 lv
2 from test start
3 with c1 = 'A'
4 connect by c1 = prior c2
5 union
6 select 'A', 1 from dual
7 order by lv;

C2 LV
-- ----------
A 1
B 2
C 2

D 3
E 3
N 3
F 4

I 4
K 4

已选择9行。

分享到:
评论
2 楼 zx147852369 2011-04-06  
回复一楼,上面语句,子查询就查出分数小于80的名称(distinct去掉重复的名称),然后not in 就是查询原来表中的名称 不在 前面子查询里面,意思的明白剩下的就是大于的名单了。
1 楼 gstripe 2010-04-20  
select distinct name from table  where  name not in (select distinct name from table where fenshu<=80)

?!?!?请教一下这个为何是这样?

相关推荐

    Sql常见面试题(总结)

    ### SQL常见面试题总结 #### 一、ROWNUM 使用技巧 **题目背景:** ROWNUM 是一个伪列,用于返回表中行的编号。它常用于限制查询结果的行数,例如在分页查询中。 **示例代码:** ```sql -- 示例1:查询最高薪水的...

    SQL常见面试题-程序员面试总结出来的宝贵经验

    SQL常见面试题 SQL 是 Structured Query Language 的缩写,作为一种标准的数据库语言,广泛应用于关系数据库管理系统中。在面试中, SQL 问题是必考题之一,本文总结了常见的 SQL 面试题,旨在帮助即将找工作的同学...

    2022年SQL常见面试题.doc

    本文档总结了2022年SQL常见面试题,涵盖了SQL语句的基本知识点、数据库设计和高级操作等方面的题目。下面是对每个题目的详细解释和知识点总结: 一.SQL语句基础知识点 1. 用一条SQL语句查询出每门课都不小于80分的...

    sql面试题,JAVA常见面试题120道

    在准备Java和SQL面试时,理解并掌握这两个领域的核心概念是至关重要的。...同时,文档“java面试常见问题 120道.doc”和压缩包中的“sql试题.rar”将提供具体的题目和解答,进一步巩固你的理解和应用能力。

    Mybatis 常见面试题总结及答案

    mybatis面试题 Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理...本资源包括了Mybatis 常见面试题资源,内容比较丰富,有需要的朋友可以下载。

    sql面试题总结大全

    SQL面试题总结大全 本文总结了常见的SQL面试题,涵盖了多方面的知识点,包括查询、删除、插入、更新等操作,并提供了详细的解释和示例代码。 查询 1. 查询每门课都大于80分的学生姓名 使用NOT IN语句可以实现该...

    sql 面试题总结 常用的sql 语句

    SQL 论坛面试题总结 本文总结了 SQL 面试题的常见问题,涵盖了 SELECT 语句、数据查询、数据删除、数据复制、数据统计等多方面的知识点。通过这些问题,可以帮助读者更好地理解 SQL 语言的使用和应用。 一、SELECT...

    sql 面试题总结一

    以下是对"sql 面试题总结一"的详细解析,涵盖了SQL的基础、进阶以及面试中常见的问题。 1. SQL基础概念: - SQL(Structured Query Language)是用于管理关系数据库的标准语言。 - 数据库:存储数据的结构化集合...

    MyBatis 常见面试题总结.docx

    MyBatis 面试题总结 MyBatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。程序员直接编写原...

    MyBatis 常见面试题总结.zip

    以下是对MyBatis常见面试题的详细解读,帮助你深入了解并掌握这个框架的核心知识点。 1. **MyBatis是什么?** MyBatis是一个优秀的SQL映射框架,它简化了数据库操作,通过XML或注解方式将Java对象和SQL语句映射,...

    数据库常见面试题型总结_数据库语句面试题

    数据库常见面试题型总结_数据库语句面试题 数据库常见面试题型总结是数据库方面常见面试题型的总结,涵盖了数据库语句、SQL 优化、Web 相关知识点等。以下是对标题和描述中所说的知识点的详细说明: 一、IN 和 ...

    SQL经典面试题及答案

    根据提供的标题“SQL经典面试题及答案”以及描述“SQL经典面试题及答案,非常经典的试题,很高兴与大家分享”,我们可以推断出这份资料是关于SQL的一些常见面试题目及其解答。虽然给定的部分内容存在较多的乱码和不...

    MySQL常见面试题总结

    SQL,全称Structured Query Language,是用于管理关系数据库的标准语言,包括创建数据库对象、操作数据、分析数据等功能,适用于各种场景,从小型应用到大数据处理。 MySQL作为一款流行的SQL数据库,其主要优点包括...

    SQL面试题目-sqlServer

    在这篇文章中,我们将总结一些常见的 SQL Server 面试题目,并提供相应的答案和解释。这些题目涵盖了基本的 SQL 语句、数据处理、数据分析等方面的知识。 题目 1: 用一条 SQL 语句查询出每门课都大于 80 分的学生...

    【整理】数据库面试题索引sql优化+数据库SQL优化总结之百万级数据库优化

    首先,我们来看看"数据库面试题索引sql优化.pdf"可能涵盖的内容。 1. **SQL基础与语法**:面试通常会涉及到SQL的基本概念,如SELECT语句、JOIN操作、子查询、聚合函数(COUNT、SUM、AVG等)、WHERE和HAVING子句的...

    java工程师大型企业常见面试题总结.docx

    "Java工程师大型企业常见面试题总结" 在 Java 工程师面试中,常见的问题包括 Redis 内存溢出和宕机状态的处理、Spring 注解开发的配置、数据库优化等。下面对这些问题进行详细的解释。 Redis 内存溢出和宕机状态的...

    经典SQL面试题总结.doc

    ### 经典SQL面试题解析 #### 题目背景 在给定的文档中,提到了四个主要的关系型数据库表:学生表(Student)、课程表(Course)、成绩表(SC)以及教师表(Teacher)。这些表通过不同的字段相互关联,构成了一个小型的教育...

    Sql面试题大全

    ### SQL面试题解析 #### 一、数据库部分 ##### 1. 根据部门号从高到低,工资从低到高列出每个员工的信息 **题目解析:** 此题考查了SQL中的`ORDER BY`子句,特别是多字段排序的能力。`ORDER BY`允许我们按照一个...

    oracle,sql面试题

    本文档总结了 Oracle SQL 面试题中的常见知识点,涵盖了 SQL 语句编写、表操作、数据查询、数据分析等方面的内容。 一、SQL 语句编写 1. 查询每门课都大于 80 分的学生姓名: 可以使用以下 SQL 语句实现: ```...

    SQL 数据库面试题__最主要文档_好好总结看看.pdf

    根据提供的文件信息,该文档是关于SQL数据库面试题的总结,内容涉及了SQL基础查询、连接查询、子查询、聚合函数等知识点。以下是对文档中提及知识点的详细解析: 1. 基础查询 - 文档中展示了如何使用基础SQL查询来...

Global site tag (gtag.js) - Google Analytics