14. SQL. Charakterystyka składni, klauzule

Żeby można było tworzyć bazy danych, tabele, operować na rekordach potrzeba jest znać typy danych z jakimi przyjdzie nam pracować. W tabeli podane są typy danych używane w MySQL. W innych systemach bazodanowych mogą te typy nazywać się inaczej i mieć inny zakres.

Typ danych

Opis

Znaki

CHAR(size)

Stała ilość znaków. W nawiasie podaje się długość tego łańcucha. Maksymalna długość 255 znaków

VARCHAR(size)

Zmienna ilość znaków. Maksymalna długość to 255 znaków. Po przekroczeniu tej wartości pole będzie zamienione na TEXT

TINYTEXT

Przechowuje tekst. Maksymalnie 255 znaków

TEXT

Przechowuje tekst. Maksymalnie 65 535 znaków

BLOB

Przechowuje dane binarne. Maksymalna wielkość to 65 535 bajtów

MEDIUMTEXT

Przechowuje tekst. Maksymalnie 16 777 215 znaków

MEDIUMBLOB

Przechowuje dane binarne. Maksymalnie 16 777 215 bajtów

LONGTEXT

Przechowuje tekst (max 4 294 967 295 znaków)

LONGBLOB

Przechowuje dane binarne (max 4 294 967 295 bajtów)

ENUM(x,y,z, itd.)

Pozwala na wpisanie listy możliwych wartości. Maksymalna wielkość listy to 65535 wartości)

SET

Podobne do EMUM, ale pozwala na zapisanie 64 wartości

Liczby

TINYINT(size)

-128 do 127,lub 0 – 255 UNSIGNED

SMALLINT(size)

-32768 – 32767, lub 0 – 65535 UNSIGNED

MEDIUMINT(size)

-8388608 – 8388607, lub 0 – 16777215 UNSIGNED

INT(size)

-2147483648 – 2147483647, lub 0 – 4294967295 UNSIGNED

BIGINT(size)

-9223372036854775808 – 9223372036854775807, lub

0 – 18446744073709551615 UNSIGNED

FLOAT(size,d)

4-bajtowa liczba zmiennoprzecinkowa, size określa ilość cyfr w liczbie, określa liczby po przecinku. Liczba zapisywana jest w postaci binarnej

DOUBLE(size,d)

8-bajtowa liczba zmiennoprzecinkowa, size określa ilość cyfr w liczbie, określa liczby po przecinku. Liczba zapisywana jest w postaci binarnej

DECIMAL(size,d)

8-bajtowa liczba zapisywana w formacie znakowym. Size określa ilość cyfr w liczbie, d określa liczbę cyfr po przecinku

Data

DATE()

Data. Format YYYY-MM-DD.

Zakres dat: '1000-01-01' – '9999-12-31'

DATETIME()

Data i czas. Format: YYYY-MM-DD HH:MI:SS

Zakres: 1000-01-01 00:00:00' – '9999-12-31 23:59:59'

TIMESTAMP()

Wartością jest liczba sekund liczona od ery UNIX 1970-01-01 00:00:00' UTC.

Zakres: '1970-01-01 00:00:01' UTC – '2038-01-09 03:14:07' UTC

TIME()

Czas. Format HH:MI:SS

Zakres '-838:59:59' – '838:59:59'

YEAR()

Rok jako dwie cyfry lub 4 cyfry

Zakres:

4 cyfry – 1901 to 2155;

2 cyfry (70 – 69) 1970 – 2069

Typ specjalny

NULL

Określa brak wartości

Polecenie CREATE.

Polecenie CREATE służy do tworzenia struktur – baz danych, tabel, użytkowników bazy danych.

 

Przykładowe wywołania polecenia CREATE:

CREATE DATABASE baza_danych
CREATE DATABASE baza_danych IF NOT EXISTS
CREATE TABLE nazwa_tabeli (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
nazwa VARCHAR(255)
)
CREATE TABLE nazwa_tabeli IF NOT EXISTS (
id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
nazwa VARCHAR(255)
)
CREATE USER uzytkownik
CREATE USER 'uzytkownik'@'localhost' IDENTIFIED BY 'password'

 

Polecenie ALTER.

Polecenie ALTER służy do edycji struktur – baz danych, tabel, użytkowników.

Przykładowe wywołania polecenia ALTER:

ALTER DATABASE CHARACTER SET utf8 COLLATE utf8_polish_ci
ALTER TABLE nazwa_tabeli ADD COLUMN (pozycja VARCHAR(5) )
ALTER TABLE nazwa_tabeli CHANGE COLUMN pozycja pozycja2 INT
ALTER TABLE nazwa_tabeli DROP COLUMN pozycja

 

Polecenie DROP

Polecenie drop służy do usuwania struktur.

Przykładowe wywołania polecenie DROP:

DROP baza_danych
DROP TABLE nazwa_tabeli
DROP USER uzytkownik

 

Polecenie INSERT

Polecenie INSERT służy do wstawiania danych do tabeli

Przykładowe wywołanie polecenia INSERT

INSERT INTO nazwa_tabeli (id, nazwa) VALUES (NULL, 'pierwszy')

 

Polecenie DELETE

Polecenie DELETE służy do usuwania danych z tabel

Przykładowe wywołania polecenie DELETE

DELETE FROM nazwa_tabeli WHERE id = 100
DELETE FROM nazwa_tabeli WHERE id > 100
DELETE FROM nazwa_tabeli WHERE nazwa LIKE 'pierwsza'
DELETE FROM nazwa_tabeli WHERE nazwa LIKE 'pier%' AND id = 1
DELETE FROM nazwa_tabeli WHERE id > 5 LIMIT 5

 

Polecenie UPDATE

Polecenie UPDATE służy do aktualizacji rekordów w tabeli

Przykładowe wywołanie polecenia UPDATE

UPDATE nazwa_tabeli SET nazwa = 'pierwsza pop' WHERE id = 1

 

Polecenie GRANT

Polecenie GRANT służy do nadawania uprawnień użytkownikom

Przykładowe wywołanie polecenie GRANT

GRANT SELECT ON nazwa_tabeli TO uzytkownik
GRANT SELECT, UPDATE, INSERT ON nazwa_tabeli TO uzytkownik
GRANT ALL PRIVILEGES ON nazwa_tabeli TO uzytkownik

 

Polecenie REVOKE

Polecenie REVOKE służy do odbierania uprawnień użytkownikom

REVOKE INSERT ON nazwa_tabeli TO uzytkownik

 

Polecenie DENY

Polecenie DENY służy do zabraniania pewnych akcji użytkownikom nawet jeżeli należą do grupy, gdzie takie akcje są dozwolone. DENY jest silniejsze od GRANT

DENY DELETE ON nazwa_tabeli TO uzytkownik

 

Polecenie SELECT

Polecenie SELECT jest chyba najczęściej używanym poleceniem w SQL. Pozwala ono na pobranie danych z tabeli.

Przykładowe wywołania polecenia SELECT:

SELECT * FROM nazwa_tabeli
SELECT id, nazwa FROM nazwa_tabeli AS t
SELECT id, nazwa FROM nazwa_tabeli WHERE id > 100
SELECT id, nazwa FROM nazwa_tabeli WHERE id BETWEEN 20 AND 40
SELECT id, nazwa FROM nazwa_tabeli WHERE id > 100 LIMIT 2
SELECT id, nazwa FROM nazwa_tabeli WHERE id > 100 LIMIT 2 ORDER BY nazwa
SELECT id, nazwa FROM nazwa_tabeli WHERE id > 100 LIMIT 2 ORDER BY nazwa DESC