Tworzenie tabel

Dostępny

Sensowne tworzenie tabel

Na poprzednich wykładach trochę już zapoznaliśmy się z zapytaniami do tworzenia tabel, teraz czas zagłębić się w to bardziej.

Tworzenie tabeli jest bardzo podobne do deklarowania klasy w Javie i ma następujący wzorzec:

CREATE TABLE table_name (
	column1 datatype,
	column2 datatype,
	column3 datatype,
   ....
);

Na przykład napiszmy zapytanie, które tworzy tabelę z użytkownikami:

CREATE TABLE user (
	id INT,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

Wygląda to bardzo prosto, ponieważ nie wskazano tutaj wielu niuansów.

Po pierwsze, tabela może mieć dodatkowe ustawienia.

Po drugie, każda kolumna może mieć dodatkowe ustawienia.

Zaczniemy od ustawień tworzenia kolumn.

Klucze w tabeli

Oprócz nazwy i typu danych kolumna tabeli może mieć również następujące ustawienia:

GŁÓWNY KLUCZ Kolumna jest kluczem tabeli
UNIKALNY KLUCZ Wszystkie wartości kolumn muszą być unikalne.
Domyślna wartość Domyślna wartość
NIE JEST ZEREM Zakaz przyjmowania wartości NULL
AUTO_INCREMENT SQL Server automatycznie zwiększy wartość po dodaniu nowego rekordu do tabeli
WYGENEROWANE Pole obliczeniowe
SKŁADOWANIE Gdzie przechowywać dane: na dysku lub w pamięci
KOMENTARZ Komentarz do kolumny, np. tytuł w lokalnym języku

Poniżej przyjrzymy się niektórym z nich.

Po pierwsze, jest to KLUCZ PODSTAWOWY .

Najczęściej jest to osobna kolumna z nazwą id i typem INT. Jest to tak zwany „klucz główny” tabeli, a wszystkie jej wiersze mają unikalne wartości dla tego klucza. Jest używany przede wszystkim po to, aby inne tabele mogły odwoływać się do rekordów naszej tabeli i wskazywać na jej konkretny rekord.

Drugi to UNIKALNY KLUCZ .

Pod pewnymi względami jest podobny do KLUCZA PODSTAWOWEGO, chociaż jego obciążenie semantyczne jest zupełnie inne. Jeśli kolumna ma atrybut UNIQUE, to wszystkie wartości w tej kolumnie muszą być unikalne. Dobrym przykładem różnicy między KLUCZEM UNIKALNYM a KLUCZEM PODSTAWOWYM jest lista osób w biurze paszportowym.

NIP jest KLUCZEM PODSTAWOWYM, służy do ułatwienia odniesienia się do właściwej osoby z innych tabel.

Numer paszportu to UNIKALNY KLUCZ. Żadne dwie osoby nie mogą mieć tego samego numeru paszportu. Numer paszportu można jednak zmienić. Na przykład przy zmianie nazwiska. A numer podatkowy zostanie z Tobą na zawsze. To jest główne zadanie KLUCZA PODSTAWOWEGO. Przykład zapytania określającego KLUCZ PODSTAWOWY:

CREATE TABLE user (
	id INT PRIMARY KEY,
	name VARCHAR(100),
	level INT,
	created_date DATE,
);

Ustawienia typu danych

Istnieją mniej ważne, ale przydatne atrybuty.

DOMYŚLNA wartość

Podczas wstawiania danych (dodania nowego wiersza) do tabeli można pominąć wartości niektórych kolumn, jeśli mają one wartość domyślną. W takim przypadku serwer SQL po prostu ustawi wartość samej kolumny.

Począwszy od wersji 8 MySQL, możesz określić wyrażenie jako wartość.

NIE JEST ZEREM

Jeśli określisz atrybut NOT NULL dla kolumny podczas tworzenia tabeli, SQL Server zapewni, że nie będzie możliwe przechowywanie wartości NULL w tej kolumnie. Domyślnie każda kolumna może mieć wartość NULL, nawet kolumna typu INT. Co jest trochę nieoczywiste dla programisty Java.

AUTO_INCREMENT

Jest zwykle używany do identyfikatorów kolumn. Kiedy dodajesz nowy wiersz do tabeli, naprawdę chcesz, aby serwer SQL przypisał identyfikator dla tego wpisu. Kto lepiej niż serwer wie, ile wierszy ma w tabeli. Zwłaszcza jeśli żądania od różnych klientów trafiają do tego samego serwera SQL.

Dokładnie to robi atrybut AUTO_INCREMENT. Podczas dodawania nowego wiersza po prostu nie przekazujemy niczego jako identyfikatora, a SQL Server określi poprawny identyfikator dla tego rekordu: po prostu weźmie identyfikator ostatniego istniejącego rekordu i zwiększy go o 1. Ten atrybut może być tylko używany z liczbami całkowitymi i liczbami rzeczywistymi. I oczywiście zróbmy przykład tworzenia takiej tabeli:

CREATE TABLE user (
	id INT PRIMARY KEY AUTO_INCREMENT,
	name VARCHAR(100) NOT NULL,
	level INT DEFAULT 1,
	created_date DATE NOT NULL,
);
Komentarze
  • Popularne
  • Najnowsze
  • Najstarsze
Musisz się zalogować, aby dodać komentarz
Ta strona nie ma jeszcze żadnych komentarzy