|
|
1
! S- j: T& |" G3 b现有表bill和表payment结构如下,两表通过pay_id关联:
, h* }% c# c0 n d: O: v' @bill表――bill_id是帐单标识,charge为帐单金额,pay_id为付款编号,PK:bill_id1 P Q/ v% x7 K; U
bill_id INTEGER- a; M5 E8 c8 h* i% k" U8 x
charge INTEGER2 E6 I+ A# t' j1 Z5 C: H
pay_id INTEGER! k7 ?- b; T. }8 |) z+ s
6 d4 b+ z. O3 [; t6 V7 H
payment表――pay_id为付款编号,charge为付款金额,PK:pay_id/ h7 ]3 u$ O% n
pay_id INTEGER
- ]' \/ f6 E& J) v, b7 xcharge INTEGER
/ v/ }7 K! l% Y9 p
# s/ c* }! k! p7 c要求更新payment使charge=bill表中同一pay_id的charge之和。4 b$ o# p" B0 L. ~" z
) \$ V _7 s* V, F$ K3 h
2& s1 ?; V7 s& g) }' J. N9 H7 Y
起始地 目的地 距离(公里)- }- z# J: K+ n5 k" g# H" g
A B 1000. `: U9 w/ [- B$ [" k( W& H
A C 1100
8 p2 X0 s/ H$ Q9 gA D 900( M$ l/ \& I+ @" G6 `
A E 400 X+ x3 D1 V' ^- Z2 g# f" H
B D 300" g% t+ w' ]5 B5 X. \
D F 600
$ R/ \) c/ e" l) q2 d5 x' X1 yE A 400' R; j) ?6 W& I. V
F G 1000
$ G7 H+ Z+ M$ O& }& V% f! MC B 6004 r Q- k; b4 @
请用SQL语句或一段代码写出从A出发,可达到的目的地(包括间接方式)。/ R& }( C9 f% T. f u
* X) O$ I& y R0 ~; D3
D3 ^" O+ b5 O! n表A定义如下:
( w6 x4 z+ e. E9 N9 R$ ]属性 类型 备注$ |& Q/ [; y! O: o( \
Id Integer PK
1 M* l0 r4 i* b7 y9 W2 IName Varchar(30)2 {" }9 O0 F9 b# S9 p+ L, p' t0 B
State char(3)
- m% e6 p& `4 h7 T% N8 Q表A中现有1000万条记录,如果客户端要通过分页的方式从表A中取数据,其中每页20条5 n" v$ X3 W% r2 A
记录,有几种方法?描述每种方法如何处理,有什么优缺点?用SQL写出实现代码。
3 o% D5 k0 U6 ] j2 r; M; O, ^9 f8 f n: b, }3 C# O3 G! Y& `
4
! V& B t3 C& w; x/ G/ P, c( t9 k表A定义如下:
( J4 b: y, X; i# c, F属性 类型
$ `; J0 _- N) f9 u E2 dYear Integer7 c( I- H9 p) K. X
Quarter Varchar(30)
0 ^, X# U6 f, hAmount float
* w F! [; i4 n. Q' i
9 J7 r9 s3 ] e/ p8 _Year Quarter Amount
% g6 x; C3 G+ E6 c8 m! I2000 1 1.15 E9 j6 {! n( { P$ @7 j2 G5 g
2000 2 1.2. d1 t4 q6 v4 H/ t# `5 G
2000 3 1.3
5 k# W9 z4 A1 H( q2000 4 1.4; {/ {5 m$ m7 t8 d |, Q0 g* E$ @5 q
2001 1 2.1% ~& r0 t; ]( n7 X3 k2 X d
2001 2 2.2
& n" }. _7 ~! j6 Y8 o7 V2001 3 2.3* n' A- z0 r- |7 b5 K- w
2001 4 2.4
7 b) r5 A& w0 z! }( p* e6 A其中每行表表示一个季度的数据。
: z& Z @, H4 a" _- A3 ?
+ W. Y, m1 O3 n2 L% t如果处理表A中的数据,得到如下的结果。
/ `5 Z) [1 A( r! P, U2 o% d3 nYear Quarter1 Quarter2 Quarter3 Quarter4
+ ], X" [; I. n0 C/ \) Q& J$ T, k2000 1.1 1.2 1.3 1.4+ g& Y, ^' T# x: ^. l
2001 2.1 2.2 2.3 2.4
, U, f$ c$ d: Z8 v. X7 h请用SQL写一段代码实现。 |
|