Poziom zaawansowany

Zadanie 1

Zróbmy sobie symulację banku (mocno uproszczoną).

  1. Stwórz tabelę Bank_klienci, zawierającą pola ID (typ identity, primary key), imię, nazwisko, miasto.

Stwórz drugą tabelę, Bank_konta, zawierającą pola ID (klucz obcy do tabeli Bank_klienci), nr_konta (dowolny 26-znakowy numer; primary key), saldo.

  1. Wypełnij tabelę danymi:
[spoiler title=’DANE’ style=’default’ collapse_link=’true’]

Dane dla Bank_klienci:

(’Anna’, 'Braun’, 'Warsaw’),

(’Celia’, 'Donut’, 'Berlin’),

(’Ellie’, 'Fine’, 'Berlin’),

(’Gloria’, 'Hint’, 'Paris’),

(’Ian’, 'Johnson’, 'Warsaw’),

(’Kelly’, 'Long’, 'Paris’),

(’Merry’, 'Nice’, 'Paris’),

(’Olaf’, 'Priceless’, 'Berlin’),

(’Richard’, 'Short’, 'Warsaw’),

(’Tim’, 'Uncle’, 'Warsaw’)

Dane dla Bank_konta:

(1, '12345678932165498714785236′, 1652),

(2, '85235678932165498714765416′, 15698),

(3, '74135678932165498714789632′, 9652),

(4, '96815678932165498714783258′, 10367),

(5, '32175678932165498714783699′, 357),

(6, '86115678932165498714781147′, 14631),

(7, '33585678932165498714783247′, 11900),

(8, '77565678932165498714786874′, 3549),

(9, '49635678932165498714780258′, 2463),

(10, '10285678932165498714783049′, 7681)

[/spoiler]
  1. Utwórz widok (Bank_widok), który uwzględni osoby z saldem 1000 lub mniejszym oraz tych z saldem 10000 lub większym.
  2. Utwórz transakcję, w której klient o ID 3 przeleje klientowi o ID 7 kwotę 1450zł. Odwołaj transakcję.
  3. Utwórz transakcję, w której klient o ID 6 przeleje klientowi o ID 5 kwotę 220zł. Potwierdź transakcję.
  4. Dodaj kolejnego klienta – Wu X’ian z saldem 31500. Miasto – Paris, nr konta: 25025536548520147930286057.

Baza: Northwind, Tabela: Bank_klienci, Bank_konta, kolumny: ID, Imie, Nazwisko, Miaso, Saldo, nrKonta, Wynik: 11 rows

Screen przedstawia dane z obu tabel po wykonaniu powyższych punktów:

 

 

[spoiler title=’Rozwiązanie’ style=’default’ collapse_link=’true’]

1.Tworzenie tabel

 

CREATE TABLE dbo.Bank_klienci

(

ID INT NOT NULL identity(1,1) PRIMARY KEY,

Imie varchar(20) NOT NULL,

Nazwisko varchar(20) NOT NULL,

Miasto varchar(20) NOT NULL

);

CREATE TABLE dbo.Bank_konta

(

ID INT NOT NULL,

nrKonta varchar(26) NOT NULL PRIMARY KEY,

Saldo INT NOT NULL,

CONSTRAINT fk_ID FOREIGN KEY (ID) REFERENCES dbo.Bank_klienci (ID)

);

2.Wypełnianie tabel danymi

INSERT INTO  dbo.Bank_klienci(Imie, Nazwisko, Miasto) VALUES

(’Anna’, 'Braun’, 'Warsaw’),

(’Celia’, 'Donut’, 'Berlin’),

(’Ellie’, 'Fine’, 'Berlin’),

(’Gloria’, 'Hint’, 'Paris’),

(’Ian’, 'Johnson’, 'Warsaw’),

(’Kelly’, 'Long’, 'Paris’),

(’Merry’, 'Nice’, 'Paris’),

(’Olaf’, 'Priceless’, 'Berlin’),

(’Richard’, 'Short’, 'Warsaw’),

(’Tim’, 'Uncle’, 'Warsaw’);

INSERT INTO dbo.Bank_konta(ID, nrKonta, Saldo) VALUES

(1, '12345678932165498714785236′, 1652),

(2, '85235678932165498714765416′, 15698),

(3, '74135678932165498714789632′, 9652),

(4, '96815678932165498714783258′, 10367),

(5, '32175678932165498714783699′, 357),

(6, '86115678932165498714781147′, 14631),

(7, '33585678932165498714783247′, 11900),

(8, '77565678932165498714786874′, 3549),

(9, '49635678932165498714780258′, 2463),

(10, '10285678932165498714783049′, 7681);

3.Widok

CREATE VIEW dbo.Bank_widok AS

SELECT KL.ID, KL.Imie, KL.Nazwisko, KL.Miasto, KO.Saldo

FROM Bank_klienci KL inner join Bank_konta KO

ON KL.ID = KO.ID

WHERE KO.Saldo <= 1000 OR KO.Saldo >= 10000;

4.Transakcja odwołana

BEGIN TRAN;

UPDATE dbo.Bank_konta SET Saldo = Saldo – 1450 WHERE ID = 3;

UPDATE dbo.Bank_konta SET Saldo = Saldo + 1450 WHERE ID = 7;

ROLLBACK TRAN;

5.Transakcja zatwierdzona

BEGIN TRAN;

UPDATE dbo.Bank_konta SET Saldo = Saldo – 220 WHERE ID = 6;

UPDATE dbo.Bank_konta SET Saldo = Saldo + 220 WHERE ID = 5;

COMMIT TRAN;

6.Dodanie kolejnego klienta

INSERT INTO  dbo.Bank_klienci(Imie, Nazwisko, Miasto) VALUES

(’Wu’, 'X”ian’, 'Paris’);

INSERT INTO dbo.Bank_konta(ID, nrKonta, Saldo) VALUES

(11, '25025536548520147930286057′, 31500);

[/spoiler]

 

Alexandretta

Kobieta gracz. Po godzinach pracy, z zapałem i piekielnymi ognikami w oczach biega po lochach i tłucze bogu ducha winne zombie czy inne szkielety. Miłośniczka wszelkiej maści cRPG. Notoryczne problemy z wyborem klasy i rasy, bo wszystko fajne... W chwilach zwątpienia zatraca się przy dźwiękach mieczy, roztrzaskiwanych tarcz i okrzyków bojowych, słuchając wiking metalu z zimnej, niegościnnej, odległej Skandynawii. Czasem zdarzy jej się pograć w jakąś strategię bądź nawet w FPP, ale tylko na easy, żeby nie psuć sobie niepotrzebnie nerwów.

Related Articles

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Back to top button