Apostila_sg1

350
Banco de Dados Oracl e 10g : Fundamento s de SQL I Volume I Guia do Al uno D17108BP10 Produção 1.0 Junho 2004 D39572

Transcript of Apostila_sg1

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 1/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 2/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 3/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 4/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 5/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 6/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 7/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 8/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 9/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 10/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 11/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 12/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 13/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 14/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 15/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 16/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 17/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 18/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 19/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 20/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 21/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 22/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 23/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 24/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 25/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 26/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 27/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 28/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 29/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 30/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 31/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 32/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 33/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 34/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 35/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 36/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 37/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 38/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 39/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 40/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 41/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 42/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 43/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 44/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 45/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 46/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 47/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 48/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 49/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 50/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 51/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 52/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 53/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 54/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 55/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 56/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 57/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 58/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 59/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 60/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 61/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 62/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 63/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 64/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 65/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 66/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 67/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 68/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 69/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 70/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 71/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 72/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 73/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 74/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 75/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 76/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 77/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 78/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 79/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 80/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 81/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 82/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 83/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 84/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 85/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 86/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 87/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 88/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 89/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 90/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 91/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 92/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 93/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 94/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 95/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 96/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 97/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 98/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 99/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 100/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 101/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 102/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 103/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 104/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 105/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 106/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 107/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 108/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 109/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 110/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 111/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 112/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 113/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 114/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 115/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 116/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 117/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 118/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 119/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 120/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 121/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 122/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 123/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 124/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 125/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 126/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 127/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 128/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 129/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 130/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 131/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 132/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 133/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 134/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 135/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 136/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 137/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 138/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 139/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 140/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 141/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 142/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 143/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 144/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 145/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 146/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 147/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 148/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 149/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 150/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 151/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 152/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 153/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 154/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 155/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 156/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 157/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 158/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 159/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 160/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 161/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 162/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 163/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 164/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 165/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 166/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 167/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 168/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 169/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 170/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 171/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 172/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 173/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 174/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 175/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 176/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 177/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 178/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 179/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 180/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 181/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 182/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 183/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 184/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 185/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 186/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 187/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 188/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 189/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 190/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 191/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 192/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 193/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 194/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 195/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 196/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 197/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 198/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 199/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 200/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 201/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 202/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 203/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 204/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 205/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 206/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 207/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 208/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 209/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 210/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 211/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 212/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 213/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 214/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 215/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 216/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 217/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 218/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 219/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 220/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 221/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 222/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 223/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 224/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 225/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 226/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 227/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 228/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 229/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 230/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 231/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 232/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 233/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 234/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 235/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 236/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 237/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 238/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 239/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 240/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 241/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 242/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 243/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 244/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 245/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 246/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 247/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 248/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 249/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 250/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 251/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 252/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 253/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 254/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 255/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 256/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 257/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 258/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 259/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 260/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 261/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 262/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 263/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 264/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 265/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 266/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 267/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 268/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 269/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 270/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 271/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 272/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 273/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 274/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 275/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 276/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 277/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 278/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 279/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 280/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 281/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 282/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 283/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 284/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 285/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 286/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 287/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 288/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 289/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 290/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 291/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 292/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 293/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 294/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 295/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 296/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 297/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 298/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 299/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 300/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 301/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 302/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 303/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 304/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 305/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 306/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 307/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 308/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 309/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 310/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 311/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 312/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 313/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 314/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 315/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 316/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-10

Copyright © 2004, Oracle. Todos os direitos reservados.

INSERT INTO departments(department_id, department_name, location_id)

VALUES (&department_id, '&department_name',&location);

Criando um Script

• Use a variável de substituição & em uma instrução

SQL para solicitar valores.• & é um marcador de espaço para o valor da variável.

1 row created.

Criando um Script para Manipular DadosÉ possível salvar comandos com variáveis de substituição em um arquivo e executar oscomandos no arquivo. O exemplo do slide registra informações de um departamento natabelaDEPARTMENTS .Ao executar o arquivo de script, você será solicitado a especificar informações para asvariáveis de substituição&. Os valores especificados serão aplicados à instrução. Isso permite executar várias vezes o mesmo arquivo de script, mas fornecer um conjunto devalores diferente a cada execução.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 317/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-11

Copyright © 2004, Oracle. Todos os direitos reservados.

Copiando Linhas de Outra Tabela

• Crie a instrução INSERT com uma subconsulta:

• Não use a cláusula VALUES .• Estabeleça uma correspondência entre o número de

colunas na cláusula INSERT e o número de colunas

na subconsulta.

INSERT INTO sales_reps(id, name, salary, commission_pct)SELECT employee_id, last_name, salary, commission_pctFROM employees

WHERE job_id LIKE '%REP%';

4 rows created.

Copiando Linhas de Outra TabelaÉ possível usar a instruçãoINSERT para adicionar linhas a uma tabela cujos valores são provenientes de tabelas existentes. No lugar da cláusulaVALUES , use uma subconsulta.Sintaxe

INSERT INTO table [ column (, column ) ] subquery ;

Na sintaxe:table é o nome da tabelacolumn é o nome da coluna da tabela a ser preenchidasubquery é a subconsulta que retorna linhas para a tabela

O número de colunas e os respectivos tipos de dados na lista de colunas da cláusula

INSERT devem corresponder ao número de valores e aos respectivos tipos de dados nasubconsulta. Para criar uma cópia das linhas de uma tabela, useSELECT * na subconsulta:INSERT INTO copy_emp

SELECT *FROM employees;

Para obter mais informações, consulte "SELECT " (seção "subqueries") no manualOracle Database SQL Reference .

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 318/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-12

Copyright © 2004, Oracle. Todos os direitos reservados.

Alterando os Dados de uma Tabela

EMPLOYEES

Atualize as linhas da tabela EMPLOYEES:

Alterando os Dados de uma TabelaO slide mostra a alteração do número de departamento dos funcionários do departamento 6 para o departamento 30.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 319/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-13

Copyright © 2004, Oracle. Todos os direitos reservados.

Sintaxe da Instrução UPDATE

• Modifique as linhas existentes com a instruçãoUPDATE:

• Atualize mais de uma linha por vez (se necessário).

UPDATE table SET column = value [, column = value, ... ][WHERE condition ];

Atualizando LinhasÉ possível modificar linhas existentes com a instruçãoUPDATE . Na sintaxe:

table é o nome da tabelacolumn é o nome da coluna da tabela a ser preenchidavalue é o valor correspondente ou a subconsulta da colunacondition identifica as linhas a serem atualizadas e é composta de nomes

de colunas, expressões, constantes, subconsultas e operadoresde comparação

Para confirmar a operação de atualização, consulte a tabela para exibir as linhas atualizadaPara obter mais informações, consulte "UPDATE " no manualOracle Database SQL

Reference .Observação: Em geral, use a chave primária para identificar uma única linha. O uso deoutras colunas pode resultar na atualização inesperada de várias linhas. Por exemplo,identificar uma única linha da tabelaEMPLOYEES por nome é perigoso, pois mais de umfuncionário pode ter o mesmo nome.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 320/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-14

Copyright © 2004, Oracle. Todos os direitos reservados.

Atualizando Linhas em uma Tabela

• Uma ou mais linhas específicas são modificadasquando a cláusula WHERE é especificada:

• Se você omitir a cláusula WHERE, todas as linhas databela serão modificadas:

UPDATE employeesSET department_id = 70

WHERE employee_id = 113;1 row updated.

UPDATE copy_emp

SET department_id = 110;22 rows updated.

Atualizando Linhas (continuação)A instruçãoUPDATE modifica linhas específicas quando a cláusulaWHEREé especificada.O exemplo do slide transfere o funcionário 113 (Popp) para o departamento 70.Se você omitir a cláusulaWHERE, todas as linhas da tabela serão modificadas.

SELECT last_name, department_idFROM copy_emp;

Observação: A tabelaCOPY_EMP tem os mesmos dados que a tabelaEMPLOYEES .

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 321/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-15

Copyright © 2004, Oracle. Todos os direitos reservados.

UPDATE employeesSET job_id = (SELECT job_id

FROM employees WHERE employee_id = 205),

salary = (SELECT salaryFROM employees

WHERE employee_id = 205) WHERE employee_id = 114;

1 row updated.

Atualizando Duas Colunascom uma Subconsulta

Atualize o cargo e o salário do funcionário 114 para quecorrespondam aos do funcionário 205.

Atualizando Duas Colunas com uma SubconsultaÉ possível atualizar diversas colunas na cláusulaSET de uma instruçãoUPDATE criandovárias subconsultas.Sintaxe

UPDATE tableSET column =

(SELECT columnFROM tableWHERE condition )

[ ,column =

(SELECT column

FROM tableWHERE condition )]

[WHERE condition ] ;

Observação: Se nenhuma linha for atualizada, a mensagem "0 rows updated " seráexibida.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 322/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 323/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-17

Copyright © 2004, Oracle. Todos os direitos reservados.

Delete uma linha da tabela DEPARTMENTS:

Removendo uma Linha de uma Tabela

DEPARTMENTS

Removendo uma Linha de uma TabelaO exemplo do slide remove o departamento Finance da tabelaDEPARTMENTS(pressupondo que não haja constraints definidas nessa tabela).

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 324/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-18

Copyright © 2004, Oracle. Todos os direitos reservados.

Instrução DELETE

É possível remover as linhas existentes de uma tabelacom a instrução DELETE:

DELETE [FROM] table [WHERE condition ];

Deletando LinhasÉ possível remover linhas existentes com a instruçãoDELETE . Na sintaxe:

table é o nome da tabelacondition identifica as linhas a serem deletadas e é composta de nomes

de colunas, expressões, constantes, subconsultas e operadoresde comparação

Observação: Se nenhuma linha for deletada, a mensagem "0 rows deleted " seráexibida.Para obter mais informações, consulte "DELETE " no manualOracle Database SQL

Reference .

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 325/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-19

Copyright © 2004, Oracle. Todos os direitos reservados.

Deletando Linhas de uma Tabela

• Se você usar a cláusula WHERE, as linhas específicas

serão deletadas:

• Se você omitir a cláusula WHERE, todas as linhas databela serão deletadas:

DELETE FROM departments WHERE department_name = 'Finance';1 row deleted.

DELETE FROM copy_emp;

22 rows deleted.

Deletando Linhas (continuação)É possível deletar linhas específicas usando a cláusulaWHEREna instruçãoDELETE . Oexemplo do slide deleta o departamento Finance da tabelaDEPARTMENTS . Para confirmar a operação de deleção, exiba as linhas deletadas com a instruçãoSELECT .

SELECT *FROM departmentsWHERE department_name = 'Finance';no rows selected.

Se você omitir a cláusulaWHERE, todas as linhas da tabela serão deletadas. O segundoexemplo do slide deleta todas as linhas da tabelaCOPY_EMP porque nenhuma cláusulaWHEREfoi especificada.

ExemploRemova as linhas identificadas na cláusulaWHERE.

DELETE FROM employees WHERE employee_id = 114;1 row deleted.

DELETE FROM departments WHERE department_id IN (30, 40);2 rows deleted.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 326/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-20

Copyright © 2004, Oracle. Todos os direitos reservados.

Deletando Linhas com Base em Outra Tabela

Use subconsultas em instruções DELETE para remover

linhas de uma tabela com base nos valores de outratabela:DELETE FROM employees

WHERE department_id =(SELECT department_id

FROM departments WHERE department_name

LIKE '%Public%');1 row deleted.

Deletando Linhas com Base em Outra TabelaÉ possível usar subconsultas para deletar linhas de uma tabela com base nos valores deoutra tabela. O exemplo do slide deleta todos os funcionários que trabalham em umdepartamento cujo nome contém a stringPublic . A subconsulta pesquisa a tabelaDEPARTMENTS para localizar o número do departamento com base no nome dodepartamento que contém essa string. Em seguida, a subconsulta informa o número dodepartamento para a consulta principal, que deleta as linhas de dados da tabelaEMPLOYEES com base nesse número de departamento.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 327/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-21

Copyright © 2004, Oracle. Todos os direitos reservados.

Instrução TRUNCATE

• Remove todas as linhas de uma tabela, esvaziando atabela e mantendo a estrutura intacta

• É uma instrução DDL (Data Definition Language), enão DML; não pode ser desfeita facilmente

• Sintaxe:

• Exemplo:

TRUNCATE TABLE table_name ;

TRUNCATE TABLE copy_emp;

Instrução TRUNCATE

Um método mais eficiente de esvaziar uma tabela é a utilização da instruçãoTRUNCATE.É possível usar essa instrução para remover rapidamente todas as linhas de uma tabela oucluster. A remoção de linhas com a instruçãoTRUNCATE é mais rápida do que com ainstruçãoDELETE pelos seguintes motivos:

• A instruçãoTRUNCATE é uma instrução DDL (Data Definition Language) e não gerainformações de rollback. As informações de rollback são abordadas posteriormentenesta lição.

• Truncar uma tabela não dispara os triggers de deleção dessa tabela.• Se a tabela for mãe de uma constraint de integridade referencial, você não poderá

truncá-la. É necessário desativar a constraint antes de executar a instruçãoTRUNCATE .A desativação de constraints é abordada em uma lição posterior.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 328/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-22

Copyright © 2004, Oracle. Todos os direitos reservados.

Usando uma Subconsultaem uma Instrução INSERT

INSERT INTO(SELECT employee_id, last_name,

email, hire_date, job_id, salary,department_id

FROM employees WHERE department_id = 50)

VALUES (99999, 'Taylor', 'DTAYLOR',TO_DATE('07-JUN-99', 'DD-MON-RR'),'ST_CLERK', 5000, 50);

1 row created.

Usando uma Subconsulta em uma Instrução INSERT

É possível usar uma subconsulta no lugar do nome da tabela na cláusulaINTO da instruçãoINSERT .A lista de seleção da subconsulta deve ter o mesmo número de colunas que a lista decolunas da cláusulaVALUES . Para a execução bem-sucedida da instruçãoINSERT , todasas regras nas colunas da tabela-base devem ser cumpridas. Por exemplo, não é possívelespecificar um ID de funcionário duplicado ou omitir um valor de uma coluna não nulaobrigatória.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 329/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-23

Copyright © 2004, Oracle. Todos os direitos reservados.

Usando uma Subconsulta em umaInstrução INSERT

Verifique os resultados:

SELECT employee_id, last_name, email, hire_date,job_id, salary, department_id

FROM employees WHERE department_id = 50;

Usando uma Subconsulta em uma Instrução INSERT (continuação)O exemplo mostra os resultados da subconsulta usada a fim de identificar a tabela para ainstruçãoINSERT .

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 330/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-24

Copyright © 2004, Oracle. Todos os direitos reservados.

Transações de Banco de Dados

Uma transação de banco de dados consiste em umadas seguintes instruções:• Instruções DML que constituem uma alteração

consistente nos dados• Uma instrução DDL• Uma instrução DCL (Data Control Language)

Transações de Banco de DadosO servidor Oracle garante a consistência de dados com base em transações. As transações permitem mais flexibilidade e controle durante a alteração de dados e garantem aconsistência de dados em caso de falha de processo do usuário ou falha do sistema.As transações consistem em instruções DML que formam uma alteração consistente dosdados. Por exemplo, uma transferência de fundos entre duas contas deve incluir o débito emuma conta e o crédito em outra conta no mesmo valor. As duas ações deverão apresentar falha ou ser bem-sucedidas; o crédito não deverá ser submetido a commit sem o débito.

Tipos de Transação

Tipo Descrição

DML (DataManipulationLanguage)

Consiste em qualquer número de instruções DML que oservidor Oracle trata como uma entidade única ou umaunidade de trabalho lógica

(Data DefinitionLanguage)

Consiste em uma única instrução DDL

DCL (Data ControlLanguage)

Consiste em uma única instrução DCL

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 331/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-25

Copyright © 2004, Oracle. Todos os direitos reservados.

Transações de Banco de Dados

• Começam quando a primeira instrução SQL DML éexecutada

• Terminam com um destes eventos: – Uma instrução COMMITou ROLLBACKé executada. – Uma instrução DDL ou DCL é executada (commit

automático). – O usuário sai do i SQL*Plus. – Ocorre uma falha do sistema.

Quando uma Transação Começa e Termina?Uma transação começa quando a primeira instrução DML é encontrada e termina quandouma destas ações ocorre:

• Uma instruçãoCOMMIT ou ROLLBACK é executada.• Uma instruçãoDDL, comoCREATE , é executada.• Uma instruçãoDCL é executada.• O usuário sai doiSQL*Plus.• Ocorre uma falha de máquina ou do sistema.

Após o término de uma transação, a próxima instrução SQL executável iniciaautomaticamente a transação seguinte.Uma instrução DDL ou DCL é submetida a commit automaticamente e, portanto, encerrauma transação de forma implícita.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 332/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-26

Copyright © 2004, Oracle. Todos os direitos reservados.

Vantagens de Instruções COMMITe ROLLBACK

Com as instruções COMMITe ROLLBACK, é possível:

• Garantir a consistência de dados• Visualizar alterações de dados antes de torná-las

permanentes• Agrupar operações relacionadas logicamente

Vantagens de COMMITe ROLLBACK

As instruçõesCOMMIT e ROLLBACK permitem controlar as alterações permanentes nosdados.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 333/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-27

Copyright © 2004, Oracle. Todos os direitos reservados.

Controlando Transações

SAVEPOINT B

SAVEPOINT A

DELETE

INSERT

UPDATE

INSERT

COMMIT Horário

Transação

ROLLBACK até oPONTO DE SALVAMENTO B

ROLLBACK até oPONTO DE SALVAMENTO A

ROLLBACK

Instruções de Controle de Transação ExplícitaÉ possível controlar a lógica de transações com as instruçõesCOMMIT, SAVEPOINT eROLLBACK .

Observação: SAVEPOINT não é uma instrução SQL que segue o padrão ANSI.

Instrução Descrição

COMMIT Termina a transação atual, tornando permanentes todas asalterações de dados pendentes

SAVEPOINT name Marca um ponto de salvamento na transação atual

ROLLBACK ROLLBACK termina a transação atual e descarta todas asalterações de dados pendentes.

ROLLBACK TOSAVEPOINT name

ROLLBACK TO SAVEPOINT efetua rollback da transaçãoatual para o ponto de salvamento especificado e, comoconseqüência, descarta todas as alterações e/ou pontos desalvamento criados após o ponto de salvamento do rollback atual. Se você omitir a cláusulaTO SAVEPOINT , a instruçãoROLLBACK efetuará rollback de toda a transação. Como os pontos de salvamento são lógicos, não há como listar os pontos de salvamento criados.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 334/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-28

Copyright © 2004, Oracle. Todos os direitos reservados.

Fazendo Rollback deAlterações até um Marcador

• Crie um marcador em uma transação atual usando ainstrução SAVEPOINT .

• Faça rollback até esse marcador usando a instruçãoROLLBACK TO SAVEPOINT .

UPDATE...SAVEPOINT update_done;Savepoint created.INSERT...ROLLBACK TO update_done;

Rollback complete.

Fazendo Rollback de Alterações até um Marcador É possível criar um marcador na transação atual usando a instruçãoSAVEPOINT , quedivide a transação em seções menores. Depois, é possível descartar as alterações pendentesaté esse marcador usando a instruçãoROLLBACK TO SAVEPOINT .Se você criar um segundo ponto de salvamento com o mesmo nome do ponto de salvamenanterior, o ponto de salvamento anterior será deletado.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 335/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-29

Copyright © 2004, Oracle. Todos os direitos reservados.

Processamento de Transação Implícita

• Um commit automático ocorre nas seguintescircunstâncias:

– Uma instrução DDL é executada – Uma instrução DCL é executada – Saída normal do i SQL*Plus, sem a execução implícita

de instruções COMMITou ROLLBACK

• Um rollback automático ocorre em decorrência doencerramento anormal do i SQL*Plus ou de uma falhado sistema.

Processamento de Transação Implícita

Observação: Um terceiro comando está disponível noiSQL*Plus. É possível alternar ocomando AUTOCOMMIT entre os estados ativado e desativado. Se ele for ativado , cadainstrução DML será submetida a commit logo após sua execução. Não é possível fazer rollback das alterações. Se ele for desativado , a instruçãoCOMMIT ainda poderá ser executada explicitamente. Além disso, a instrução

COMMITserá executada quando uma

instrução DDL for executada ou quando você sair doiSQL*Plus.

Status CircunstânciasAutomatic commit A instrução DDL ou DCL é executada.

O iSQL*Plus foi encerrado normalmente, sem a execuçãoexplícita dos comandosCOMMITou ROLLBACK .

Automatic rollback Encerramento anormal doiSQL*Plus ou falha do sistema.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 336/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 337/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-31

Copyright © 2004, Oracle. Todos os direitos reservados.

Estado dos Dados antes deCOMMITou ROLLBACK

• É possível recuperar o estado anterior dos dados.• O usuário atual pode verificar os resultados das

operações DML usando a instrução SELECT .• Outros usuários não podem visualizar os resultados

das instruções DML executadas pelo usuário atual.• As linhas afetadas são bloqueadas ; outros usuários

não podem alterar os dados nessas linhas.

Submetendo Alterações a CommitTodas as alterações de dados feitas durante a transação serão temporárias até que ela sejasubmetida a commit.O estado dos dados antes da execução da instruçãoCOMMIT ou ROLLBACK pode ser descrito da seguinte forma:

• As operações de manipulação de dados afetam principalmente o buffer de banco dedados; portanto, é possível recuperar o estado anterior dos dados.

• O usuário atual pode visualizar os resultados das operações de manipulação de dadosconsultando as tabelas.

• Outros usuários não podem visualizar os resultados das operações de manipulação dedados executadas pelo usuário atual. O servidor Oracle institui a consistência de leitur

para garantir que cada usuário veja os dados da forma como se encontravam no últimocommit.• As linhas afetadas são bloqueadas; outros usuários não podem alterar os dados nessas

linhas.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 338/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-32

Copyright © 2004, Oracle. Todos os direitos reservados.

Estado dos Dados após COMMIT

• As alterações de dados tornam-se permanentes nobanco de dados.

• O estado anterior dos dados é perdidopermanentemente.

• Todos os usuários podem visualizar os resultados.• Os bloqueios nas linhas afetadas são liberados;

essas linhas estão disponíveis para manipulaçãopor outros usuários.

• Todos os pontos de salvamento são apagados.

Submetendo Alterações a Commit (continuação)Use a instruçãoCOMMIT para tornar permanentes todas as alterações pendentes. Veja o queacontece após uma instruçãoCOMMIT:

• As alterações de dados são gravadas no banco de dados.• O estado anterior dos dados não está mais disponível nas consultas SQL comuns.• Todos os usuários podem visualizar os resultados da transação.• Os bloqueios nas linhas afetadas são liberados; agora, as linhas estão disponíveis para

que outros usuários efetuem novas alterações de dados.• Todos os pontos de salvamento são apagados.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 339/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-33

Copyright © 2004, Oracle. Todos os direitos reservados.

COMMIT;Commit complete.

Submetendo Dados a Commit

• Efetue as alterações:

• Submeta as alterações a commit:

DELETE FROM employees WHERE employee_id = 99999;

1 row deleted.

INSERT INTO departments VALUES (290, 'Corporate Tax', NULL, 1700);

1 row created.

Submetendo Alterações a Commit (continuação)O exemplo do slide deleta uma linha da tabelaEMPLOYEES e insere uma nova linha natabelaDEPARTMENTS . Em seguida, ele torna a alteração permanente executando ainstruçãoCOMMIT.Exemplo

Remova os departamentos 290 e 300 da tabelaDEPARTMENTS e atualize uma linha databelaCOPY_EMP . Torne a alteração de dados permanente.

DELETE FROM departmentsWHERE department_id IN (290, 300);1 row deleted.

UPDATE employeesSET department_id = 80WHERE employee_id = 206;

1 row updated.

COMMIT;Commit Complete.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 340/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-34

Copyright © 2004, Oracle. Todos os direitos reservados.

Estado dos Dados após ROLLBACK

Descarte todas as alterações pendentes com ainstrução ROLLBACK:• As alterações de dados são desfeitas.• O estado anterior dos dados é restaurado.• Os bloqueios nas linhas afetadas são liberados.

DELETE FROM copy_emp;22 rows deleted.ROLLBACK ;Rollback complete.

Fazendo Rollback de AlteraçõesDescarte todas as alterações pendentes com a instruçãoROLLBACK . O resultado será:

• As alterações de dados são desfeitas.• O estado anterior dos dados é restaurado.• Os bloqueios nas linhas afetadas são liberados.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 341/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-35

Copyright © 2004, Oracle. Todos os direitos reservados.

Estado dos Dados após ROLLBACK

DELETE FROM test;

25,000 rows deleted.

ROLLBACK;Rollback complete.

DELETE FROM test WHERE id = 100;1 row deleted.

SELECT * FROM test WHERE id = 100;No rows selected.

COMMIT;Commit complete.

ExemploAo tentar remover um registro da tabelaTEST , você poderá esvaziar a tabelaacidentalmente. É possível corrigir o erro, reexecutar a instrução correta e tornar a alteraçãde dados permanente.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 342/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-36

Copyright © 2004, Oracle. Todos os direitos reservados.

Rollback no Nível de Instrução

• Se houver falha de uma única instrução DML durantea execução, será feito rollback somente dessainstrução.

• O servidor Oracle implementa um ponto desalvamento implícito.

• Todas as outras alterações são retidas.• O usuário deve encerrar as transações

explicitamente executando uma instrução COMMITou ROLLBACK.

Rollback no Nível de InstruçãoParte de uma transação poderá ser descartada por um rollback implícito se for detectado umerro de execução de instrução. Se houver falha de uma única instrução DML durante aexecução de uma transação, seu efeito será anulado por um rollback no nível de instrução,mas as alterações feitas pelas instruções DML anteriores na transação não serão descartadaElas poderão ser submetidas a commit ou rollback explicitamente pelo usuário.O servidor Oracle executa um commit implícito antes e depois de qualquer instrução DDLPortanto, mesmo que a instrução DDL não seja executada com êxito, você não poderá fazerollback da instrução anterior porque o servidor executou um commit.Encerre as transações explicitamente executando uma instruçãoCOMMIT ou ROLLBACK .

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 343/349

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 344/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-38

Copyright © 2004, Oracle. Todos os direitos reservados.

Implementação da Consistência de Leitura

SELECT *FROM userA.employees;

UPDATE employeesSET salary = 7000

WHERE last_name = 'Goyal';

Blocosde dados

Segmentosde undo

Dadosalterados einalteradosAntes daalteração(dadosantigos)

Usuário A

Usuário B

Imagem

com leituraconsistente

Implementação da Consistência de LeituraA implementação da consistência de leitura é automática. Ela mantém uma cópia parcial d banco de dados em segmentos de undo. A imagem com leitura consistente é criada a partirdos dados submetidos a commit da tabela e dos dados antigos que estão sendo alterados eainda não foram submetidos a commit do segmento de undo.Quando ocorre uma operação de inserção, atualização ou deleção no banco de dados, oservidor Oracle obtém uma cópia dos dados antes da sua alteração e grava essa cópia em u

segmento de undo .Todos os usuários que estão efetuando uma operação de leitura, exceto o usuário queexecutou a alteração, ainda vêem o banco de dados no estado em que se encontrava antes dinício das alterações; eles vêem um snapshot dos dados no segmento de undo.Antes do commit das alterações no banco de dados, somente o usuário que está modificandos dados vê o banco de dados com as alterações. Todos os outros usuários vêem o snapshotno segmento de undo. Isso garante que os usuários leiam dados consistentes que não estãosendo alterados no momento.Quando uma instrução DML for submetida a commit, a alteração feita no banco de dados stornará visível a todos os usuários que executarem uma instrução selectapós o commmit. Oespaço ocupado pelos dadosantigos no arquivo de segmento de undo estará liberado parareutilização.Se a transação for submetida a rollback, as alterações serão desfeitas:

• A versão mais antiga original dos dados no segmento de undo será gravada novamentna tabela.

• Todos os usuários verão o banco de dados no estado em que se encontrava antes doinício da transação.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 345/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-39

Copyright © 2004, Oracle. Todos os direitos reservados.

Sumário

Nesta lição, você aprendeu a usar as seguintesinstruções:

Adiciona uma nova linha à tabelaINSERT

Modifica as linhas existentes da tabelaUPDATE

Remove as linhas existentes da tabelaDELETE

Torna permanentes todas as alterações pendentesCOMMIT

Descarta todas as alterações de dados pendentesROLLBACK

Usada para efetuar rollback até o marcador de

ponto de salvamento

SAVEPOINT

DescriçãoFunction

Sumário Nesta lição, você aprendeu a manipular dados no banco de dados Oracle com as instruçõesINSERT , UPDATE e DELETE , bem como controlar alterações nos dados com as instruçõesCOMMIT, SAVEPOINT e ROLLBACK .O servidor Oracle garante uma view consistente dos dados em todos os momentos.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 346/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-40

Copyright © 2004, Oracle. Todos os direitos reservados.

Exercício 8: Visão Geral

Este exercício aborda os seguintes tópicos:

• Inserção de linhas nas tabelas• Atualização e deleção de linhas na tabela• Controle de transações

Exercício 8: Visão Geral Neste exercício, você adicionará linhas à tabelaMY_EMPLOYEE, atualizará e deletará dadosna tabela e controlará as transações.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 347/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-41

Exercício 8O departamento de recursos humanos deseja criar instruções SQL para inserir, atualizar e deletar dados de funcionários. Como protótipo, use a tabelaMY_EMPLOYEE antes defornecer as instruções ao departamento de recursos humanos.Insira dados na tabelaMY_EMPLOYEE.

1. Execute a instrução no scriptlab_08_01.sql para criar a tabelaMY_EMPLOYEEa ser usada no exercício.

2. Descreva a estrutura da tabelaMY_EMPLOYEE para identificar os nomes de colunas.

3. Crie uma instruçãoINSERT paraadicionar a primeira linha de dados à tabelaMY_EMPLOYEE usando estes dados de amostra. Não liste as colunas na cláusulaINSERT . Não informe todas as linhas ainda .

4. Preencha a tabelaMY_EMPLOYEE com a segunda linha de dados de amostra da listaanterior. Desta vez, liste as colunas explicitamente na cláusulaINSERT .

5. Confirme a adição à tabela.

ID LAST_NAME FIRST_NAME USERID SALARY

1 Pate l Ralph rpa te l 895

2 Dancs Bet ty bdancs 860

3 Bir i Ben bbi r i 1100

4 Newman Chad cnewman 750

5 Ropeburn Audrey aropebur 1550

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 348/349Banco de Dados Oracle 10 g : Fundamentos de SQL I 8-42

Exercício 8 (continuação)6. Crie uma instrução insert no arquivo de script dinâmico reutilizávelloademp.sql

para carregar linhas na tabelaMY_EMPLOYEE. Concatene a primeira letra do primeiro nome e os sete primeiros caracteres do sobrenome para gerar o ID dousuário. Salve esse script no arquivolab_08_06.sql .

7. Para preencher a tabela com as próximas duas linhas dos dados de amostra, executea instrução insert no script criado.8. Confirme as adições à tabela.

9. Torne as adições de dados permanentes.Atualize e delete dados na tabelaMY_EMPLOYEE.10. Altere o sobrenome do funcionário 3 para Drexler.11. Altere o salário de todos os funcionários com salário inferior a US$ 900 para US$

1.000.12. Verifique as alterações na tabela.

13. Delete Betty Dancs da tabelaMY_EMPLOYEE.14. Confirme as alterações na tabela.

7/27/2019 Apostila_sg1

http://slidepdf.com/reader/full/apostilasg1 349/349

Exercício 8 (continuação)15. Submeta todas as alterações pendentes a commit.

Controle a transação de dados na tabelaMY_EMPLOYEE.16. Preencha a tabela com a última linha dos dados de amostra usando as instruções no

script criado na etapa 6. Execute as instruções no script.17. Confirme a adição à tabela.

18. Marque um ponto intermediário no processamento da transação.19. Esvazie a tabela inteira.20. Confirme se a tabela está vazia.21. Descarte a operaçãoDELETE mais recente sem descartar a operaçãoINSERT

anterior.22. Confirme se a nova linha permanece intacta.

23. Torne a adição de dados permanente.