Professional Documents
Culture Documents
Zajęcia NR 4 MI14
Zajęcia NR 4 MI14
CREATE TABLE studenci (
student_ID int NOT NULL,
klasa int ,
PRIMARY KEY (student_ID),
FOREIGN KEY (klasa) REFERENCES klasy(klasa_id));
Sytuacja 2: Tabela i pole istnieje
ALTER TABLE uczniowie
ADD FOREIGN KEY (klasa) REFERENCES klasy(klasa_id);
Ograniczeniem jest:
- PRIMARY KEY - pole, które stało się polem klucza głównego służy do identyfikacji rekordu,
wartości nie mogą się w nim powtarzać, pole nie może pozostać puste
- FOREIGN KEY – klucz obcy – kolumna, która jest kluczem obcym, służy do połączenia tej
tabeli z polem klucza głównego innej tabeli
Oto lista innych słów kluczowych służących do ograniczania pól (kolumn) w tabelach:
Jeżeli modyfikacja danych ma dotyczyć tylko wybranych wierszy, do instrukcji należy dołączyć
klauzulę WHERE
1 Dla wszystkich rekordów w tabeli uczniowie w polu UPDATE uczniowie SET klasa=1
klasa wpisz wartość 1
2 Dla wszystkich rekordów w tabeli uczniowie w polu UPDATE uczniowie SET klasa=5
klasa wpisz wartość 5
5 Dla uczniów (id 3 i Id 4) w tabeli uczniowie w polu UPDATE uczniowie SET klasa=2
klasa wpisz wartość 2 WHERE uczen_id=3 or uczen_id=4
Logicznie, instrukcja TRUNCATE TABLE jest jak instrukcja DELETE bez klauzuli WHERE, która usuwa
wszystkie wiersze z tabeli, lub sekwencja instrukcji DROP TABLE i CREATE TABLE.
Jednakże instrukcja TRUNCATE TABLE jest bardziej wydajna niż instrukcja DELETE, ponieważ usuwa i
odtwarza tabelę zamiast usuwać wiersze jeden po drugim.
Jeśli istnieją jakiekolwiek FOREIGN KEY ograniczenia z innych tabel, które odwołują się do tabeli, do
której stosujemy TRUNCATE TABLE, instrukcja TRUNCATE TABLE zakończy się niepowodzeniem.
Pojawi się błąd:
ERROR 1701 (42000): Cannot truncate a table referenced in a foreign key constraint
3. Sprawdź, czy w tabeli oceny jest klucz obcy na polu idUcznia będący referencją do pola
IdUcznia w tabeli uczniowie.
4. Jeśli istnieje klucz obcy odnoszący się do tabeli uczniowie, wykonaj polecenie TRUNCATE dla
tabeli uczniowie. Wynik: polecenie powinno zakończyć się niepowodzeniem, natomiast
pojawi się informacja o błędzie ERROR 1701.