|
|
1
: u4 @2 L) ^1 H+ k7 }现有表bill和表payment结构如下,两表通过pay_id关联:
0 d% w5 f0 l& c' x. Tbill表――bill_id是帐单标识,charge为帐单金额,pay_id为付款编号,PK:bill_id* L: m2 O) Y5 h r" Z1 z# N
bill_id INTEGER! f% G) |$ ?; p; O& r
charge INTEGER
# |9 f. l& m! v, Q; p' _/ F zpay_id INTEGER
& n8 V- ~; s0 b: K0 U0 W7 j% O/ E" w+ ~. K4 G! p
payment表――pay_id为付款编号,charge为付款金额,PK:pay_id
( T# m1 I9 d5 b; h$ X. apay_id INTEGER6 e6 z a) n# Z' w
charge INTEGER8 J3 l4 w. r/ V7 \+ a
* Z _& B! r9 O* S8 t* [* v要求更新payment使charge=bill表中同一pay_id的charge之和。
O, I( P6 x( S# o: S! Y9 c% Y2 V2 W, ?' H3 y
2
# V, Z- `) S# h1 G* }起始地 目的地 距离(公里)
7 ]$ x) t" H' b2 j* }A B 1000
3 P' ^' k3 q, v& {2 b& S; K! y4 bA C 1100 E( K' Y! }3 V7 x. ~$ h
A D 900
1 g5 {$ h, X+ a2 V3 hA E 400
! A! j6 `' ~7 b1 `1 aB D 3007 t: s! i/ p. X; M
D F 600
' y1 \2 M- G; m% G, R2 H& O% sE A 400
1 [6 ~, W0 @: k: \6 U' h7 bF G 1000
4 l5 k7 T2 b/ yC B 600/ h& t4 N+ {. O2 N
请用SQL语句或一段代码写出从A出发,可达到的目的地(包括间接方式)。$ J# w& `4 v8 A8 i/ N% E+ \
5 ? o( g0 u1 p" q! p; ?
3: \8 X# E9 |4 d A
表A定义如下:& x& L0 D2 W1 L5 q5 w3 v- A
属性 类型 备注4 f( t+ M& j% |$ _' A: ]6 g
Id Integer PK
% W9 [ r9 C/ C$ R; U; k/ PName Varchar(30)
/ {2 U6 B& T+ u' o; E3 o0 @) AState char(3)5 d- J( o- }) i
表A中现有1000万条记录,如果客户端要通过分页的方式从表A中取数据,其中每页20条. h* ?6 |( D3 |$ p2 P
记录,有几种方法?描述每种方法如何处理,有什么优缺点?用SQL写出实现代码。
& B6 {3 ~- X7 b4 E7 ]5 P6 @3 L6 m0 x
4$ z! u& w* [, y3 d& J
表A定义如下:
: e1 ?$ T! }4 E- K1 Y* y( s属性 类型0 g1 C: g3 Y ]- P
Year Integer
$ ?3 r" \# `9 G2 `" w/ [) x4 FQuarter Varchar(30)/ K. K6 D/ B) `( W- J( _: x0 J' {
Amount float% m( F( q. F. C
l* Q1 O1 W4 e j0 C0 {) _
Year Quarter Amount# p$ a4 K( x5 e. u1 ^# d$ ?
2000 1 1.18 O4 c( F1 r$ z+ }9 l9 I9 ]8 U& u4 x; F
2000 2 1.22 m7 W: Q0 m7 V6 @% P, a! K4 O) b0 w0 L
2000 3 1.3! X- y( d# L# W$ \( S( B* P' Q9 e
2000 4 1.49 }0 Z0 @6 i4 l5 n
2001 1 2.1
0 U. O* Z) S: n2001 2 2.2) ?9 {+ [8 {# f9 E
2001 3 2.3
. @6 \4 `( i) \$ M5 }% J9 i2001 4 2.4
+ a2 J, y- ^5 g; U/ y y其中每行表表示一个季度的数据。
/ |% Q! }' d: r; f+ \2 O
& o6 ~- V# s" D如果处理表A中的数据,得到如下的结果。" I2 V1 ~* o' \- X* c' ~$ g
Year Quarter1 Quarter2 Quarter3 Quarter4
e6 t h g, i' ^6 V3 s0 `) K2000 1.1 1.2 1.3 1.4
/ P# w2 b$ m+ }4 Z7 @, j2001 2.1 2.2 2.3 2.4
7 Y9 q2 f) G" X: b' @请用SQL写一段代码实现。 |
|