Podstawy
Pojedyncze cudzysłowy (' '
) służą głównie do obejmowania wartości tekstowych.
Podwójne cudzysłowy (" "
) są podobne, ale rzadziej używane.
Odwrotne apostrofy (`
`
) służą do obejmowania identyfikatorów, takich jak nazwy tabel lub kolumn.
-- komentarz jedno liniowy SELECT * FROM `przyklad`; -- komentarz jedno liniowy /* komentarz wieloliniowy */ SELECT * FROM `przyklad`; /* komentarz wieloliniowy */ SELECT * FROM `przyklad`;
CREATE TABLE
Tworzy tabelę z podanymi kolumnami
CREATE TABLE nazwa_tabeli( kolumna1 typ_danych, kolumna2 typ_danych, ... kolumnaN typ_danych, PRIMARY KEY( kolumna? ) );
Przykład:
CREATE TABLE uczen( uczen_id INT NOT NULL AUTO_INCREMENT, imie VARCHAR(40) NOT NULL, nazwisko VARCHAR(60) NOT NULL, data_urodzenia DATE, srednia_ocen DECIMAL(10,2), adres TEXT, PRIMARY KEY (uczen_id) );
DROP TABLE
Usuwa tabelę z bazy danych
DROP TABLE nazwa_tabeli;
Przykład:
DROP TABLE uczen;
ALTER TABLE
Pozwala na modyfikację kolumn w tabeli.
-- Dodaje nową kolumnę ALTER TABLE nazwa_tabeli ADD kolumna typ_danych; -- Usuwa kolumnę z tabeli ALTER TABLE nazwa_tabeli DROP COLUMN kolumna; -- Modyfikuje kolumnę w tabeli ALTER TABLE nazwa_tabeli MODIFY COLUMN kolumna typ_danych;
Przykład:
-- Dodaje kolumnę obecnosci do tabeli uczen ALTER TABLE uczen ADD obecnosci INT NOT NULL DEFAULT 0; -- Usuwa kolumnę obecnosci z tabeli uczen ALTER TABLE uczen DROP COLUMN obecnosci; -- Zmienia typ kolumny srednia_ocen w tabeli uczen z DECIMAL(10,2) na FLOAT ALTER TABLE uczen MODIFY COLUMN srednia_ocen FLOAT;
Zadanie
Utwórz 3 tabele w bazie danych:
Uczen
Nazwa | typ |
IdUcznia | INT |
Imie | VARCHAR(80) |
Nazwisko | VARCHAR(120) |
Wiek | INT |
IdKlasy | INT |
Klasa
Nazwa | typ |
IdKlasy | varchar(12) |
ProfilKlasy | TEXT |
Ewidencja
Nazwa | typ |
IdEwidencji | INT |
IdUcznia | INT |
Wejscie | DATETIME |
Wyjście | DATETIME |
TLDR – Typy Danych
Typ | Min (signed) | Min – (unsigned) | Max – (unsigned) | Bajty |
INT | -2147483648 ( -2^31 ) | 0 | 4294967295 ( 2^32 ) | 4 |
BOOLEAN | 0, FALSE | 1, TRUE |
Typ | Domyślnie ustawienia | Precyzja | Bajty | Alias |
FLOAT(P) | P=24 | P = 24 or 53(double) | 4 | – |
DOUBLE(P) | P=53 | P = 24(float) or 53 | 8 | REAL |
Typ | ilość wszystkich cyfr (M) | Ilość cyfr po przecinku (D) | Alias |
DECIMAL(M,D) | M = [1-38] | 0 | NUMERIC |
Typ | Format | Min | Max |
DATE | YYYY-MM-DD | 1000-01-01 | 9999-12-31 |
DATETIME | YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00 | 9999-12-31 23:59:59 |
TIMESTAMP | YYYYMMDDHHMMSS | 1970-01-01 00:00:01 (0) | 2038-01-19 03:14:07 (2^32) |
Typ | ilość liter (M) | uzupełnienie spacjami |
VARCHAR(M) | M = [1-65535] | NIE |
TEXT | Max: 65535 | NIE |
TLDR – Constraints
- NOT NULL – Wymusza aby wartość nie była NULL
- UNIQUE – Wymusza aby wartkość była unikalna
- PRIMARY KEY – Klucz główny, unikalnie identyfikuje rekord w tabeli
- FOREIGN KEY – Klucz obcy, identyfikuje rekord w tabeli
- DEFAULT – Ustawia wartość domyślną dla danych
- AUTO_INCREMENT – Automatycznie przydziela nowym rekordom wartość poprzedniego+1
- CHECK – Wymusza aby dodawane dane spełniały podany warunek
Zadanie
Dodaj constraint NOT NULL do wszystkich Id z użyciem ALTER TABLE.
- Uczen – dodaj NOT NULL do IdUcznia
- Ewidencja – dodaj NOT NULL do IdEwidencja
- Klasa – dodaj NOT NULL IdKlasy
Dodaj PRIMARY KEY do tabel z użyciem ALTER TABLE.
- Uczen – PRIMARY KEY
- Ewidencja – PRIMARY KEY
- Klasa – PRIMARY KEY
Dodaj relacje do tabel z użyciem ALTER TABLE.
- Uczen – IdKlasy -> Klasy( IdKlasy )
- Ewidencja – IdUcznia -> Uczen( IdUcznia )
Ustaw constraint na tabeli Uczen kolumnie wiek na DEFAULT 18
ALTER TABLE – RENAME
Modyfikuje kolumnę w tabeli.
ALTER TABLE nazwa_tabeli RENAME COLUMN stara_nazwa_kolumny TO nowa_nazwa_kolumny;
Dodaj komentarz