十一、已知客户表a(id name address) 登陆流水表b(id time) 购物流水表c(id time productid productnum)
8 k6 {/ l( B2 M4 C(1)求每个客户的最新登陆时间time,姓名name,客户id?
5 v" ?5 h( B7 {/ K4 s(2)查最新登陆并且已经购买商品的客户id,name,登陆的时间time(一条sql语句) (难), H: ]# t1 d" G6 p) [
(1)求每个客户的最新登陆时间time,姓名name,客户id
3 F. X0 M4 h* h; Q. Q/ y" |# T. Wselect a.id,a.name,d.time as time6 v. O7 K! U5 p+ [& G
from a left join (select id,max(time) as time from b group by id) d
8 z; i) V& k7 \9 q0 r/ `on a.id =d.id ;
. ^' @' s6 S6 J& {(2) 查最新登陆并且已经购买商品的客户id,name,登陆的时间time: [2 i* m' z+ `# m# t) K7 S' T
select a.id,a.name,d.time as time6 G; f! k* r; |4 i* `
from a,(select id,max(time) as time from b group by id) d 7 u' P$ ~6 D9 k0 l/ R# T# P( r
where a.id =d.id , ~" C4 G+ X2 j4 ?. K' I
and exists (select * from c where id = a.id);
5 i+ r/ {" f; c' p5 E0 K十二、已知学生表student中有班级classid,学号id,成绩grade
- s4 u9 G8 {! I(1)计算各个班的平均成绩
0 {$ a2 Z7 A/ ^. Y, m(2)查找比该班平均成绩高的学生的班级classid,学号id,成绩grade (难)6 y, B: T0 ?4 V" x
(1)计算各个班的平均成绩 0 x7 F9 R1 J) _8 h
select classid,avg(grade) from student group by classid;* m# {. |( `! U0 G
(2) 查找比该班平均成绩高的学生的班级classid,学号id,成绩grade) W9 ? [) M6 F% i: W) p; U8 T
select classid, id, grade $ x0 c* U! @0 U( ?! x0 q! ?3 h
from (select classid,id,grade," E) H+ C2 `; H# B2 n: @
avg(grade) over (partition by classid order by classid, id) as avg_grade - n) [$ {' C, m, o3 N
from student ) / |; F- D0 ]" }6 m" b( t4 c
where grade > avg_grade;* v8 `3 b3 X; A0 a, l+ u" j+ y& n
十三、绑定变量是什么?绑定变量有什么优缺点? (中等)
. u w! O Y/ q. u6 M绑定变量是相对文本变量来讲的,所谓文本变量是指在SQL直接书写查询条件,这样的SQL在不同条件下需要反复解析,绑定变量是指使用变量来代替直接书写条件,查询bind value在运行时传递,然后绑定执行。优点是减少硬解析,降低CPU的争用,节省shared_pool ;缺点是不能使用histogram,sql优化比较困难。; |2 e5 @7 z7 h( t, Y
十四、请叙述事务的概念及其性质。(难)/ w, r& Y; e D
事务是一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位,是数据库环境中的逻辑工作单位,相当于操作系统环境中的“进程”概念。事务以BEGIN TRANSACTION 语句开始,以COMMIT语句或ROLLBACK语句结束。+ |) g8 H1 B! \- }( ^/ B
事务必须有四个性质:) G/ A/ `% A8 m. J5 ]
(1) 原子性:一个事务中所有对数据库操作是一个不可分割的操作序列。事务要么完事地被全部执行,要么什么也不做。& ~: y; P2 F! n# N
(2) 一致性:一个事务独立执行的结果将保证数据库的一致性,即数据不会因事务的执行而遭受破坏。
) g2 O% q+ m1 _0 h3 D(3) 隔离性:在并发事务被执行时,系统应保证与这些事务先后单独执行时的结果一样,此时达到了隔离性要求。
+ ]( F1 K8 b8 }0 A7 G(4) 持久性:一个事务一旦完成全部操作后,它对数据库的所有更新应永久地反映在数据库中。1 K9 z4 k. d$ x3 Q
十五、请叙述锁定的概念及其优点。(中等)8 \ Q3 ~: r+ z8 X; s
锁定是数据库用来控制共享资源并发访问的机制。
7 u$ H, E0 u6 ^' ] ?6 i+ G j锁定的优点:# X8 W2 c' m& Z4 a. B) e' Z
(1) 一致性:一次只允许一个用户修改数据,从而提供统一的数据。
. [% E, h( b. s5 ]# o(2) 完整性:向所有用户提供正确的数据。如果一个用户进行了更改并保存,那么所做的更改反映给所有用户。
1 s# U1 R+ `6 c! t. g d(3) 并发性:允许多个用户访问同一数据。 |