|
1
, Z& }) A! e9 C9 g9 x& }现有表bill和表payment结构如下,两表通过pay_id关联:; v/ k2 R3 q$ _# U. Y+ O
bill表――bill_id是帐单标识,charge为帐单金额,pay_id为付款编号,PK:bill_id; D; j) N# m5 h# z3 H s
bill_id INTEGER
% ]& X/ e6 i3 K/ i7 y0 \8 k) E3 _4 u6 mcharge INTEGER
7 ^ _! x* _# k/ xpay_id INTEGER
% @# C: [% @5 Z" S! k
. ^% U; i& Y1 O' L1 Y4 {0 O q7 Fpayment表――pay_id为付款编号,charge为付款金额,PK:pay_id
3 Y% ]0 P- `/ s @/ _6 S3 t( Wpay_id INTEGER
+ R7 {8 n! a# ccharge INTEGER
& J' M; Y4 f. m2 ~' ]9 R/ ?3 `0 D
要求更新payment使charge=bill表中同一pay_id的charge之和。! w% Z: c6 Z3 e: X
# u" \: W' M8 n- U+ ?29 U, c" U' k" f1 `. u1 Q1 c6 D5 D
起始地 目的地 距离(公里)9 a7 v5 F$ V) _5 Y9 ~& ~9 c* S
A B 1000# a. N# G9 G7 h4 e y
A C 1100
+ d& P/ i& I6 V; {5 P4 o+ S. j4 rA D 900
) h) Y/ V, c7 W/ B- ~/ g, ~A E 400
) ` a9 [+ n$ s' _8 }' M+ TB D 300
9 y+ F* }8 A* Q# G" YD F 600# q" ^; t* @; B" A* {8 p) m
E A 400
/ s; s. u* _$ R, I6 G' x; K9 IF G 1000
' @. w8 U0 k- W$ c: wC B 600
! p' [. T" v5 S' Y: I* g; {% M请用SQL语句或一段代码写出从A出发,可达到的目的地(包括间接方式)。
( K4 T3 R$ U: g9 S' h; r4 v
, D' v0 o3 O5 _ ?5 ]9 w) V4 F% B. l3
& g3 t6 [- x; {. I) W3 f表A定义如下:
0 [ V5 D% G/ P0 y$ b- w属性 类型 备注' m2 _. w3 `& F/ j
Id Integer PK7 w7 f) H q. v" t. i
Name Varchar(30): G. K! K+ u* N1 f
State char(3)
# s0 k$ H; j M6 o表A中现有1000万条记录,如果客户端要通过分页的方式从表A中取数据,其中每页20条
; P4 O' U* f: ]% Z6 I记录,有几种方法?描述每种方法如何处理,有什么优缺点?用SQL写出实现代码。
, B( W c$ K% j2 ~( O2 k
5 `0 @6 I! q. v8 I+ ~; |4
* u& h/ n6 A7 i表A定义如下:; @$ F& T8 ?* q/ z; O+ t) B6 O& ~! ?
属性 类型$ R) g: R) w3 ^* k2 [) a( J" W: k
Year Integer
; Y- V3 ~0 z* v- q' r4 q/ TQuarter Varchar(30)
/ F$ L- { m2 `: ]% m- K9 nAmount float
4 L; L$ m; s8 [/ e6 C3 Z& P9 Y a- F% l3 K4 ]
Year Quarter Amount3 n* }: p0 I0 ^ f0 O L6 {
2000 1 1.1
) u- P) R/ v3 ^6 k* W! j' a2000 2 1.26 C* L$ ]% C( u, B1 y
2000 3 1.3, c9 T. k8 M3 Y
2000 4 1.40 h/ Q7 f& O% o+ \, o( N6 G! k ?
2001 1 2.1
- L& q- Z: P! D( n" o2001 2 2.2+ A! T6 ~% Z7 u% q: t. F8 D a! |4 s
2001 3 2.37 f2 c+ G) H! Z
2001 4 2.4
; f" F; s' S- ^7 x! P3 _2 h6 W( L其中每行表表示一个季度的数据。! O: K) [' T2 @1 p; W
6 P$ }/ K6 I0 ~* V+ o9 o, X! B如果处理表A中的数据,得到如下的结果。
2 N4 {' O$ x; l9 F2 w) SYear Quarter1 Quarter2 Quarter3 Quarter43 W* j4 l- ]( v! S, d1 Y
2000 1.1 1.2 1.3 1.4
) J- B& E5 o7 F$ F+ j0 D, j' ]& r+ R2001 2.1 2.2 2.3 2.4; ~2 y2 |3 u% ?% {
请用SQL写一段代码实现。 |
|