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? )
);


DROP TABLE

Usuwa tabelę z bazy danych

DROP TABLE nazwa_tabeli;


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;


-- 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;

Utwórz 3 tabele w bazie danych:

Uczen

Nazwatyp
IdUczniaINT
ImieVARCHAR(80)
NazwiskoVARCHAR(120)
WiekINT
IdKlasyINT

Klasa

Nazwatyp
IdKlasyvarchar(12)
ProfilKlasyTEXT

Ewidencja

Nazwatyp
IdEwidencjiINT
IdUczniaINT
WejscieDATETIME
WyjscieDATETIME

TLDR - Typy Danych

TypMin (signed)Min - (unsigned)Max - (unsigned)Bajty
INT-2147483648 ( -2^31 )04294967295 ( 2^32 )4
BOOLEAN0, FALSE1, TRUE
TypDomyślnie ustawieniaPrecyzjaBajtyAlias
FLOAT(P)P=24P = 24 or 53(double)4-
DOUBLE(P)P=53P = 24(float) or 538REAL
Typilość wszystkich cyfr (M)Ilość cyfr po przecinku (D)Alias
DECIMAL(M,D)M = 1-380NUMERIC
TypFormatMinMax
DATEYYYY-MM-DD1000-01-019999-12-31
DATETIMEYYYY-MM-DD HH:MM:SS1000-01-01 00:00:009999-12-31 23:59:59
TIMESTAMPYYYYMMDDHHMMSS1970-01-01 00:00:01 (0)2038-01-19 03:14:07 (2^32)
Typilość liter (M)uzupełnienie spacjami
VARCHAR(M)M = 1-65535NIE
TEXTMax: 65535NIE

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;