Poziom zaawansowany

Zadanie 5

  1. Utwórz sekwencję (dbo.MySequence) typu INT, o wartości minimalnej 1, z inkrementacją o 1.
  2. Utwórz tabelę (dbo.Zabawki) zawierającą kolumny: ID (INT, domyślna wartość to kolejna wartość z sekwencji), KodProduktu (INT, NOT NULL), NazwaProduktu (VARCHAR(20), NOT NULL), Cena (INT, NOT NULL), Kategoria (VARCHAR(15), NOT NULL)
  3. Wypełnij tabelę danymi (kod produktu, nazwa, cena, kategoria):

(12064, 'Lego Technic’, 565, 'Zabawki’),

(12065, 'Lego City’, 129, 'Zabawki’),

(12066, 'Lego City’, 155, 'Zabawki’),

(12067, 'Lego Technic’, 499, 'Zabawki’),

(12080, 'Need For Speed’, 99, 'Gry’),

(12081, 'Tomb Raider’, 99, 'Gry’),

(12082, 'The Sims’, 159, 'Gry’),

(12083, 'Diablo’, 179, 'Gry’);

  1. Usuń najdroższy produkt z każdej kategorii.
  2. Do tabeli dodaj kolumnę Rabat, z wartością domyślną 0.
  3. Przyznaj rabat wysokości 15% produktom o kodzie 12082, 12067.
  4. Ustaw wartość rabatu na zero wszędzie tam, gdzie ma ma ona wartość NULL.
  5. Usuń tabelę dbo.Zabawki oraz sekwencję dbo.MySequence.

Baza: Northwind, Tabela: dbo.Zabawki, Kolumny: ID, KodProduktu, Nazwaproduktu, Cena, Kategoria, Wynik: 6 rows (po modyfikacjach)

[spoiler title=’Rozwiązanie’ collapse_link=’true’]
  1. CREATE SEQUENCE dbo.MySequence AS INT

MINVALUE 1;

–inkrementacja o 1 jest ustawiona domyślnie

  1. CREATE TABLE dbo.Zabawki (

ID INT NOT NULL DEFAULT(NEXT VALUE FOR dbo.MySequence),

KodProduktu INT NOT NULL,

NazwaProduktu VARCHAR(20) NOT NULL,

Cena INT NOT NULL,

Kategoria VARCHAR(10) NOT NULL

);

  1. INSERT INTO dbo.Zabawki (KodProduktu, NazwaProduktu, Cena, Kategoria)

VALUES

(12064, 'Lego Technic’, 565, 'Zabawki’),

(12065, 'Lego City’, 129, 'Zabawki’),

(12066, 'Lego City’, 155, 'Zabawki’),

(12067, 'Lego Technic’, 499, 'Zabawki’),

(12080, 'Need For Speed’, 99, 'Gry’),

(12081, 'Tomb Raider’, 99, 'Gry’),

(12082, 'The Sims’, 159, 'Gry’),

(12083, 'Diablo’, 179, 'Gry’);

SELECT * FROM dbo.Zabawki;

  1. DELETE FROM dbo.Zabawki

WHERE Cena in (

SELECT MAX(Cena)

FROM dbo.Zabawki

GROUP BY Kategoria

);

  1. ALTER TABLE dbo.Zabawki

ADD Rabat INT DEFAULT(0);

  1. UPDATE dbo.Zabawki

SET Rabat = 15

WHERE KodProduktu in(12082, 12067);

  1. UPDATE dbo.Zabawki

SET Rabat = 0

WHERE Rabat IS NULL;

  1. DROP TABLE dbo.Zabawki;

DROP SEQUENCE dbo.MySequence;

[/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