# Rozkazy SQL zarządzające tabelami

### Tworzenie bazy danych i tabeli

create database nazwabazy; - utworzenie nowej bazy danych

show databases; - pokazuje utworone bazy danych (również tą, która została utworzona)

use nazwabazy; - nakazuje użyć konkretnej bazy danych;

drop database nazwabazy; - usuwanie bazy danych

create table ... ; - utworzenie tabeli

CREATE TABLE nazwatabeli ( lp INT NOT NULL AUTO_INCREMENT, imie VARCHAR(15) NULL, nazwisko VARCHAR(20) NULL, wiek INT(3) NULL, PRIMARY KEY (lp) ); | - utwórz tabelę w bazie - pierwsz kolumna 'lp' typu liczby całkowite komórki nie puste - druga kolumna 'imie' typu znakowego o zmiennej liczbie znaków - trzecia kolumna 'nazwisko' typu znakowego o zmiennej liczbie znaków - czwart kolumna 'wiek' typu ineger o stałej długości trzech liczb - deklaracja klucza głównego i zakończenie zapytania znakiem ";"

Poznawanaie struktury tabeli:
DESCRIBE `nazwatabeli`;
Uzyskany efekt:

Uzupełnienie tabeli - pierwszy rekord:
INSERT INTO `nazwatabeli` (lp , imie , nazwisko, wiek) VALUES (NULL , 'Adam' , 'Kowalski' , '42'); - wstaw do nazwa tabeli (jako atrybuty) dane (Adam Kowalski 42) gdzie NULL oznacza, że w kolumnę kluczy nie trzeba nic wstawiać

Sprwdzenie zawartości tabeli:
SELECT * FROM `nazwatabeli`

Uzupełnienie kolejnych krotek:
INSERT INTO `nazwatabeli` (lp , imie , nazwisko, wiek) VALUES (NULL , 'Grzegorz' , 'Rosa' , '65');
INSERT INTO `nazwatabeli` (lp , imie , nazwisko, wiek) VALUES (NULL , 'Jan' , 'Nowak' , '17');

Uzyskany efekt sprawdzamy za pomocą polecenia:
SELECT * FROM `nazwatabeli`

Wybieranie z tabeli konkretnych informacji. Załużmy że chcemy dowiedzieć się kto jest pełnoletni. Wówczas trzeba wykonać zapytanie z warunkiem WHERE:
SELECT * FROM `nazwatabeli` WHERE wiek >= 18;
Uzyskany efekt:

Wybieranie z tabeli informacje o imionach. Wówczas trzeba wykonać zapytanie wstawiając zamiast gwiazdki nazwę kolumny:
SELECT imie FROM `nazwatabeli`;
Uzyskany efekt:

Wybieranie z tabeli informacje o imionach i wieku. Wówczas trzeba wykonać zapytanie wstawiając zamiast gwiazdki nazwę kolumny:
SELECT imie, wiek FROM `nazwatabeli`;
Uzyskany efekt:

Zmiana danych w utworzonej tabeli. Załużmy że chcemy odmłodzić Grzegorza o trzy lata. Musimy wykonać zapytanie:
UPDATE `nazwatabeli` SET `wiek` = 62 WHERE `wiek` = 65;
Uzyskany efekt:

Usuwanie rekordów tabeli spełniających określone warunki. Może to być rekord nr 1 lub rekored w którym są osby pełnoletnie
DELETE FROM nazwatabeli WHERE `wiek` >= 18;
Uzyskany efekt:

Usuwanie tabeli:
DROP TABLE `nazwatabeli`;

### Tworzenie tabeli powiązanej z kluczem obcym:

Tworzymy tabelę pojazdów:

CREATE TABLE `pojazdy` ( lp INT NOT NULL AUTO_INCREMENT, VIN CHAR(17) NULL, PRIMARY KEY (lp) );

Tworzymy tabelę użytkowników pojazdów:

CREATE TABLE `uzytkownicy` ( id_uzytkownika VARCHAR(10) PRIMARY KEY, auto VARCHAR(6) REFERENCES pojazdy(lp) );

Słowo kluczowe REFERENCES deklaruje kolumnę jako klucz obcy odwołujący się do innej tabeli

Wypełmniamy tabelę pojazdy przykładowymi danymi dla 3 pojazdów:
INSERT INTO `pojazdy` (lp , VIN) VALUES (NULL , 'SSS12345678901234');
INSERT INTO `pojazdy` (lp , VIN) VALUES (NULL , 'AAA45678901234567');
INSERT INTO `pojazdy` (lp , VIN) VALUES (NULL , 'KKK78901234567890');

Wypełmniamy tabelę uzytkownicy przykładowymi danymi dla 3 pojazdów:
INSERT INTO `uzytkownicy` (id_uzytkownika , auto) VALUES ('1' , '1');
INSERT INTO `uzytkownicy` (id_uzytkownika , auto) VALUES ('2' , '3');
INSERT INTO `uzytkownicy` (id_uzytkownika , auto) VALUES ('3' , '2');
INSERT INTO `uzytkownicy` (id_uzytkownika , auto) VALUES ('4' , '1');

Uzystany efekt:

⇒ Spis treści ⇐

⇐ PREV NEXT ⇒