przykładowe rozwiązania

Transkrypt

przykładowe rozwiązania
DDL - Data Definition Language & DML - Data Manipulation Language
Zadania
Tabele w bazie danych:
• studenci(nr indeksu, imie, nazwisko, plec, adres),
• rekrutacja(imie, nazwisko, plec, adres, punkty)
• przedmioty(symbol, nazwa, punkty),
• egzaminy(nr indeksu, przedmiot, ocena).
Zadanie 1. Utworzyć w bazie danych tabele: studenci, rekrutacja, przedmioty, egzaminy, tak aby odpowiednie kolumny były następujących typów: plec char (1), przedmiot, symbol char (3),nr indeksu varchar (6), imie, nazwisko, nazwa varchar (30), adres varchar (50), ocena, punkty int .
UWAGA: Do utworzonych tabel będzie można się dowoływać przez nazwę: d{numer indeksu}.{nazwa tabeli}.
Zadanie 2. Skopiować dane z tabel: dbo.studenci, dbo.rekrutacja, dbo.przedmioty, dbo.egzaminy do utworzonych tabel.
Zadanie 3.
(1) Dodać kolumnę guid typu uniqueidentifier do tabel studenci, przedmioty i rekrutacja:
ALTER TABLE studenci
ALTER TABLE przedmioty
ADD guid uniqueidentifier
ADD guid uniqueidentifier
(2) Wypełnić wszystkie pola w nowych kolumnach wartościami nie NULL -owymi wykorzytując funkcję NEWID():
UPDATE studenci
UPDATE studenci
SET guid = NEWID ()
SET guid = NEWID ()
(3) Dodać do tabeli egzaminy dwie kolumny: przedmiot guid i student guid.
ALTER TABLE egzaminy
ALTER TABLE egzaminy
ADD przedmiot guid uniqueidentifier
ADD student guid uniqueidentifier
(4) Uzupełnić tak zmodyfikowaną tabelę egzaminy właściwymi wartościami, aby nie przekłamać zgromadzonych w niej danych:
można to zrobić w dwóch krokach:
UPDATE egzaminy
SET student guid = studenci.guid
FROM studenci INNER JOIN egzaminy
ON studenci.nr indeksu = egzaminy.nr indeksu
l
UPDATE egzaminy
SET przedmiot guid = przedmioty.guid
l
FROM przedmioty INNER JOIN egzaminy
ON przedmioty.symbol = egzaminy.przedmiot
albo za jednym zamachem:
UPDATE egzaminy
SET student guid = studenci.guid, przedmiot guid = przedmioty.guid
FROM studenci INNER JOIN egzaminy
ON studenci.nr indeksu = egzaminy.nr indeksu
INNER JOIN przedmioty
ON przedmioty.symbol = egzaminy.przedmiot
(5) Usunąć z tabeli egzaminy kolumny: nr indeksu i przedmiot:
ALTER TABLE egzaminy
ALTER TABLE egzaminy
DROP COLUMN nr indeksu
DROP COLUMN przedmiot