MySQL – Tabele

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

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

Klasa

Nazwatyp
IdKlasyvarchar(12)
ProfilKlasyTEXT

Ewidencja

Nazwatyp
IdEwidencjiINT
IdUczniaINT
WejscieDATETIME
WyjścieDATETIME

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-38]0NUMERIC
TypFormatMinMax
DATEYYYY-MM-DD1000-01-01 9999-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-65535]NIE
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;

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *