27990 skanuj0293 (2)

27990 skanuj0293 (2)



Rozdział 10. ♦ Podstawy SQL 307

Serwer odpowie nam komunikatem:

Query OK. 1 row affected (0.11 sec)

wskazującym, że wykonania zapytania zakończyło się sukcesem oraz że zapytanie miało wpływ na 1 rekord (1 row affected).

Jeśli chcemy usunąć kilka rekordów o różnych identyfikatorach, zastosujemy zapewne operator IN. Przykładowo, jeśli skasowane mają zostać dane osób o id równym 3, 5 i 7, wykorzystamy instrukcję:

DELETE FROM Osoba WHERE ID IN (3. 5. 7);

Podobnie, do usunięcia danych osób o identyfikatorach należących do określonego przedziału, np. 4-8, skorzystamy z zapytania wykorzystującego operator BETWEEN w postaci:

DELETE FROM Osoba WHERE ID BETWEEN 4 AND 6;

lub też z zapytania wykorzystującego operatory relacyjne <= i >= oraz operator logiczny AND:

DELETE FROM Osoba WHERE ID >= 4 AND ID <- 6:

Nic nie stoi również na przeszkodzie, aby usunąć z tabeli dane wszystkich osób o nazwisku Kowalski:

DELETE FROM Osoba WHERE Nazwisko-'Kowalski'; lub też wszystkich Kowalskich i Nowaków:

DELETE FROM Osoba WHERE Nazwisko-'Kowalski' OR Nazwisko='Nowak':

Wstawianie specjalne

Kiedy wstawiamy nowe wiersze do tabeli bazy danych, musimy zadbać o to, aby nie wprowadzić rekordu, który duplikuje już istniejącą wartość klucza głównego (lub innego unikalnego indeksu). Jest oczywiste, że taki rekord nie może zostać wstawiony, gdyż każdy rekord musi mieć unikalną wartość klucza głównego. Jeśli więc spróbujemy dokonać takiej niedozwolonej operacji, baza zgłosi błąd, widoczny na rysunku 10.19. Próba wykonania instrukcji:

INSERT INTO Osoba VALUES(1, 'Jan'. 'Janowski'. 1990. 'Gliwice'): czyli wprowadzenia do tablicy OSOBA zawierającej rekord z polem id o wartości 1, nowego wpisu zawierającego pole i d o wartości 1, zakończyła się tu niepowodzeniem.

mysql> insert into osoba ualues<l, 'Jan', 'Janowski', 1990, 'Gliwice');

ERROR 1062 <23000): Duplicate entry '1' for key 1

mysql>

Rysunek 10.19. Próba wprowadzenia rekordu o zduplikowanej wartości klucza głównego


Wyszukiwarka

Podobne podstrony:
skanuj0269 (3) Rozdział 10. ♦ Podstawy SQL 283 Tabela 10.1. Typy całkowitoliczbowe Typ Zakres
skanuj0271 (3) Rozdział 10. ♦ Podstawy SQL 285 W przypadku typu DECIMAL i jego synonimów możliwe jes
skanuj0279 (3) Rozdział 10. ♦ Podstawy SQL 293Zapytania wprowadzające dane Tabele utworzone w sposób
skanuj0281 (3) Rozdział 10. ♦ Podstawy SQL 295Druga postać instrukcji INSERT Druga wersja instrukcji
skanuj0283 (3) Rozdział 10. ♦ Podstawy SQL 297 Listing 10.1. Instrukcja SOL wstawiające przykładowe

więcej podobnych podstron