Informacje o nowych artykułach oraz akcjach edukacyjnych prosto na Twojej skrzynce e-mail!

Tworzenie, usuwanie i modyfikacja tabel w SQL

Dane w typowych bazach danych (np. MySQL, MsSQL) przechowywane są w tak zwanych relacjach czyli inaczej mówiąc tabelach. Tabele oczywiście składają się z wierszy (rekordów) i określonego typu kolumn. W tym artykule zapoznamy się z funkcjami SQL umożliwiającymi tworzenie tabel.

Tworzymy pierwszą tabelę w SQL

Na początek stwórzmy tabelę składającą się z trzech kolumn (jedna kolumna będzie typu int, druga i trzecia typu varchar – czyli będzie przystosowana do przechowywania tekstu):

IDImieNazwisko
1JanKowalski
2MartaNowak

Aby stworzyć powyższą tabelę w SQL musimy skorzystać z funkcji CREATE TABLE, przykład:

CREATE TABLE nazwaTabeli (
ID INT,
Imie VARCHAR(200),
Nazwisko VARCHAR(200)
);

Powyższy kod stworzył nam tabelę o nazwie nazwaTabeli. Oczywiście nie zawiera ona żadnych danych.

Ogólna składnia:

CREATE TABLE nazwaTabeli (
nazwaKolumny TypDanych,
drugaNazwaKolumny TypDanych
-- itd. (możemy mieć dowolną liczbę kolumn)
);

Typy danych

Jak pewnie zauważyliście SQL oferuje różne typy przechowywanych danych, w tabeli poniżej zamieszczam te najbardziej popularne:

TYPOpis
VARCHAR(200)Typ tekstowy, w nawiasach podajmy liczbę znaków jakie maksymalnie będzie można zapisać w danej kolumnie (do 8 000)
INTLiczba całkowita (od -231 do 231-1)
FLOAT(2)Liczby rzeczywiste z określoną w nawiasach dokładnością (1-24 – 7 cyfr, 25-53 – 15 cyfr)
DATETIMEData i czas (Format: YYYY-MM-DD HH:mm:SS, Y – Rok, M – Miesiąc, D – Dzień, H – Godzina, m – Minuta, S – sekunda)
CHARŁańcuch znaków o długości do 8000 znaków
TEXTTyp tekstowy (maksymalna liczba znaków: 231 – 2 147 483 647)
MONEYTyp danych służący do przechowywania wartości pieniężnych (dokładność do jednej dziesięciotysięcznej jednostki, przechowuje liczby z zakresu: od -263 do 263-1

Usuwanie tabeli

Tabelę usuwamy stosując instrukcję DROP TABLE:

DROP TABLE nazwaTabeli;

Modyfikacja utworzonej tabeli

Modyfikując utworzoną już tabelę, musimy zastosować instrukcję ALTER TABLE. Umożliwia ona między innymi dodanie nowej kolumny, skasowanie już utworzonej kolumny czy też dodać lub usunąć dane ograniczenie.

Dodanie nowej kolumny do już istniejącej tabeli:

ALTER TABLE nazwaTabeli
ADD nazwaKolumny VARCHAR(100);

Usunięcie kolumny z istniejącej tabeli:

ALTER TABLE nazwaTabeli
DROP COLUMN nazwaKolumny;

Ograniczenia

W tabelach tworzonych w bazach danych można narzucić pewne ograniczenia określające dokładnie strukturę danych jakie mogą zostać zapisane w danej kolumnie.

Zabraniamy wstawianie wartości NULL (czyli po prostu nie wstawienie niczego):

CREATE TABLE nazwaTabeli (
ID INT NOT NULL,
Imie VARCHAR(200),
Nazwisko VARCHAR(200)
);

Jak widać na powyższym przykładzie robimy to wstawiając po typie danej kolumny klauzulę NOT NULL.

Można to oczywiście zrobić na utworzonej już tabeli:

ALTER TABLE nazwaTabeli
ALTER COLUMN nazwaKolumny VARCHAR(200) NOT NULL;

Aby jawnie zezwolić na wstawianie NULL można po prostu pominąć słowo NOT:

ALTER TABLE nazwaTabeli
ALTER COLUMN nazwaKolumny VARCHAR(200) NULL;

Klucz podstawowy

Klucz podstawowy w tabelach odgrywa bardzo ważną rolę, bowiem służy do jednoznacznego identyfikowania wierszy (rekordów) w danej tabeli. Logiczne jest zatem to, że dane w tej kolumnie (lub kolumnach) nie mogą się powtarzać (lub nie mogą występować w takim samym układzie wielokrotnie).

Klucz podstawowy to oczywiście zwykła kolumna o jakimś typie danych (najczęściej jest to INT) zawierająca stosowne ograniczenia (dane muszą być unikalne, czyli nie mogą się powtarzać).

Tworzenie tabeli z kluczem podstawowym:

CREATE TABLE nazwaTabeli (
ID INT PRIMARY KEY,
Imie VARCHAR(200),
Nazwisko VARCHAR(200)
);

Jak widać po typie podajemy informację iż jest to klucz podstawowy – PRIMARY KEY.

Dodanie klucza podstawowego do istniejącej tabeli:

ALTER TABLE nazwaTabeli
ADD CONSTRAINT Klucz PRIMARY KEY(ID);

Automatyczna inkrementacja klucza podstawowego

Dobrze by było, żeby przy wstawianiu nowych danych do tabeli nikt nie myślał, jaką wartość podać dla klucza gdyż ktoś po prostu może nie wiedzieć jakie ID posiada ostatnio dodany rekord. Przydało by się, żeby wartość tej kolumny była automatycznie uzupełniana przez serwer bazodanowy.

MsSQL

W bazie danych firmy Microsoft (MsSQL) auto-inkrementacje uzyskuje się za pomocą komendy IDENTITY (UWAGA: Dodanie tej własności dla kolumny jest możliwe tylko przy jej tworzeniu, nie ma możliwości zaktualizowania utworzonej już kolumny):

CREATE TABLE tabela (
ID INT IDENTITY (1,1) CONSTRAINT klucz PRIMARY KEY,
Imie VARCHAR(200),
Nazwisko VARCHAR(200)
);

MySQL

W bazie danych MySQL efekt ten uzyskujemy przez zastosowanie komendy AUTO_INCREMENT:

CREATE TABLE tabela (
id INT NOT NULL AUTO_INCREMENT,
Imie Varchar(200),
Nazwisko VARCHAR(200),
PRIMARY KEY (id)
)

Niepowtarzalność danych

Jeżeli zdecydujemy się na używanie jako klucza podstawowego danych, które nie są automatycznie generowane przez serwer bazodanowy musimy oczywiście zagwarantować ich niepowtarzalność (unikalność) tak aby można było jednoznacznie zidentyfikować poszczególnych rekord w tabeli.

W bazach MsSQL oraz MySQL wykonuje się to za pośrednictwem słowa kluczowego UNIQUE:

CREATE TABLE nazwaTabeli (
ID INT PRIMARY KEY UNIQUE,
Imie VARCHAR(200),
Nazwisko VARCHAR(200)
);

Spodobało się?

Jeśli tak, to zarejestruj się do newslettera aby otrzymywać informacje nowych artykułach oraz akcjach edukacyjnych. Gwarantuję 100% satysfakcji i żadnego spamowania!

, , , , , , , , , , , , , , , ,

Dodaj komentarz

Komentarze (3)

  • n8n8n8n pisze:

    Kurcze, nigdzie nie ma informacji jak to zrobić od początku, czyli co jest potrzebne, jakie oprogramowanie, potem jak stworzyć tabelę a na końcu jak z niej korzystać/modyfikować.
    Mam MySQL Workbench ale jak tam wpisuję te komendy to nie mogę ich egzekwować, nie pojawia się żadna tabela, a w tutorialach są same komendy….

    • lukas124 pisze:

      Pewnie nie masz zainstalowanej bazy MySQL. MySQL Workbench to narzędzie do zarządzania bazą.

      • n8n8n8n pisze:

        To znaczy zainstalowałem wszystko z takiej stronki i wiem, że na workbenchu się po prostu wpisuje komendy, po instalacji trochę tych elementów było, bo poinstalowałem wszystkie. Kiedyś nadziałem się na fajny kurs, gdzie babeczka tłumaczyła działanie SQL od samego stworzenia bazy, a użytkownik rwzem z nią tworzył to wszystko, tylko za cholerę nie pamiętam co to był za tutorial…

Odpowiedz

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

Pin It on Pinterest