SQL_Structured_Query_Language

advertisement
SQL - Structured Query Language
Język relacyjnych baz danych
Podstawowe komponenty SQL
• DDL (Data Definition Language) – język definiowania
struktur danych (CREATE) i kontroli dostępu
• DQL (Data Query Language) – język definiowania
zapytań dla wyszukiwania danych (SELECT)
• DML (Data Manipulation Language) – język operacji
na danych (INSERT, UPDATE, DELETE), tj. służący do
wyszukiwania i modyfikowania danych
Polecenie – „CREATE”
• polecenie SQL używane do tworzenia obiektów
• pozwala tworzyć tabele określając jej nazwę, kolumny,
indeksy oraz mechanizm i język porównywania napisów
• umożliwia nakładanie ograniczeń w stosunku do jednego
lub wielu pól
Polecenie – „CREATE” - składnia
CREATE TABLE nazwa_tabeli
(typ_pola1 [(rozmiar)] [NOT NULL] [indeks1]
[, typ pola2 [(rozmiar)] [NOT NULL] [indeks2]
…
[, typ polan [(rozmiar)] [NOT NULL] [indeksn]
[, CONSTRAINT indeks_wielopolowy [, ...]]);
Polecenie – „CREATE” - składnia
• nazwa_tabeli - Nazwa tabeli, która ma zostać utworzona.
• pole1, pole2 - Nazwa pola lub pól, jakie mają zostać
•
•
•
•
utworzone w nowej tabeli. Należy utworzyć przynajmniej
jedno pole.
typ - Typ danych pola w nowej tabeli.
rozmiar - Rozmiar pola wyrażony w znakach (tylko pola
zawierające dane tekstowe i binarne).
indeks1, indeks2 - Klauzula CONSTRAINT określająca
indeks jednopolowy.
indeks_wielopolowy - Klauzula CONSTRAINT
określająca indeks wielopolowy
Polecenie – „CREATE” - ograniczenia
• typy ograniczeń, jakie możemy nakładać na tabelę przy
pomocy klauzuli CONSTRAINT w instrukcji CREATE
TABLE
▫ PRIMARY KEY – wyznacza pole (lub grupę pól), które tworzy
klucz podstawowy,
▫ UNIQUE – określa klucz unikatowy,
▫ NOT NULL – wykluczenie wartości NULL w określonym polu,
▫ FOREIGN KEY – określa pole klucza obcego w tabeli
Polecenie – „CREATE” - przykład
CREATE TABLE IF NOT EXISTS `logs` (
`id_logs` int(11) NOT NULL auto_increment,
`id_users` int(11) default NULL,
`name` varchar(255) NOT NULL,
`type` varchar(255) NOT NULL,
`data` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`id_logs`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
Tworzy tabelę o nazwie ‘logs’ zawierającą 5 kolumn
Ustawia mechanizm na InnoDB oraz język porównywania napisów na UTF8
Kluczem podstawowym jest kolumna ‘id_logs’
auto_increment nadaje kolumnie ‘id_logs’ automatyczną numeracje
wpisów
Polecenie – „SELECT”
• podstawową, najczęściej używaną instrukcją języka SQL
jest instrukcja SELECT, która służy do pobierania
danych z jednej tabeli lub większej liczby tabel.
• niezależnie od liczby tabel oraz niezależnie od rodzaju
operacji wykonywanych na zbiorach, zawsze jako wynik
otrzymujemy wirtualną pojedynczą tabelę (tzw.
dynamiczny zestaw wyników), którą dalej możemy
przetwarzać.
Polecenie – „SELECT” – składnia
SELECT parametry
FROM nazwa_tabel
WHERE warunki
SORT BY kolumna typ_sortowania
ORDER BY kolumna
LIMIT start, ilość;
Polecenie – „SELECT” – składnia
• parametry – lista kolumn, które chcemy pobrać w
•
•
•
•
•
•
zapytaniu(symbol ‘*’ oznacza wszystkich kolumn z tabel
określonych w nazwa_tabel)
nazwa_tabel – lista tabel, z których chcemy korzystać w
zapytaniu(pobierać z nich dane lub budować na nich relacje)
warunki – warunki jakie mają spełniać pobierane dane
kolumna – nazwa kolumny po której dane mają być
grupowane lub sortowane
typ_sortowania – malejące(DESC)/rosnące(ASC)
start – nr rekordu od którego zaczyna się pobierać dane
ilość – maksymalna ilość pobieranych rekordów
Polecenie – „SELECT” - przykład
SELECT * FROM `logs`
WHERE `id_users` = 1 AND `type` = ‘error’
SORT BY data DESC
LIMIT 0, 10;
Zapytania wyświetli maksymalnie 10 rekordów posortowanych
od ostatnio dodanego z wszystkimi kolumnami jakie zawiera
tabela w których `id_users` = 1 i `type’ = ‘error’.
Polecenie – „INSERT”
• pozwala wprowadzań dane do tabel w bazie danych
• umożliwia dodania jednego lub wielu rekordów naraz
Polecenie – „INSERT” - składnia
INSERT INTO nazwa_tabeli
(kolumna1,kolumna2,…,kolumnan)
VALUES
(dane1,dane2,…,danen),
…,
(dane1,dane2,…,danen);
Polecenie – „INSERT” – składnia
• nazwa_tabeli – nazwa tabeli do której chcemy
wprowadzić dane
• kolumna(1..n) – kolumny do których chcemy wprowadzić
dane
• dane(1..n) – dane wprowadzane do tabeli odpowiednio do
wybranych kolumn
Polecenie – „INSERT” - przykład
INSERT INTO `logs`
(`id_logs`,`id_users`,`name`,`type`,`data`)
VALUES
(NULL,1,’tworzenie wpisu’,’error’,NULL),
(NULL,1,’tworzenie wpisu’,’success’,NULL);
Polecenie dodaje do tabeli `logs` dwa rekordy. NULL
w liście wprowadzanych danych powoduje wstawienie
domyślnych wartości kolumny ustawione przy tworzeniu
tabeli.
Polecenie – „UPDATE”
• pozwala na aktualizacje danych w wstawionych już
rekordach.
• umożliwia edycje jednego lub wielu rekordu
jednocześnie
Polecenie – „UPDATE” – składnia
UPDATE nazwa_tabeli
SET kolumna1 = wartość,
…,
kulmnan = wartośćn,
WHERE warunki;
Polecenie – „UPDATE” - składnia
• nazwa_tabeli – nazwa tabeli, w której chcemy
zaktualizować dane
• kolumna(1..n) – kolumny w których chcemy dokonać
zmian
• wartość(1..n) – wartości, którymi chcemy wypełnić
komórki
• warunki – warunki jakie musi spełnić rekord aby dokonać
w nim aktualizacji danych
Polecenie – „UPDATE” – przykład
UPDATE `logs`
SET `name` = ‘tworzenie wpisu - aktualności’
WHERE `id_users` = 1;
Polecenie zmienia wartość kolumny `name` z ‘tworzenie
wpisu’ na ‘tworzenie wpisu – aktualności’ w rekordach,
w których `id_users` = 1.
Polecenie – „DELETE”
• polecenie umożliwia usuwanie rekordów z tabeli
• umożliwia usunięcie jednego lub wielu rekordów
jednocześnie
Polecenie – „DELETE” - składnia
DELETE FROM nazwa_tabeli
WHERE warunki;
Polecenie – „DELETE” - składnia
• nazwa_tabeli – nazwa tabeli, z której mają być usunięte
dane
• warunki – warunki jakie musi spełnić rekord by mógł
zostać usunięty
Polecenie – „DELETE” - przykład
DELETE FROM `logs`
WHERE `type` = ‘error’;
Polecenie usuwa rekordy z tabeli `logs`, w których
komórka `type` równa się ‘error’.
Polecenie – „GRANT”
• tworzenie użytkowników bazy danych
• nadawanie uprawnień użytkownikom
Polecenie „GRANT” - składnia
GRANT lista_praw_dostepu
ON nazwa_tabeli
TO nazwa_uzytkownika
Polecenie „GRANT” - składnia
• lista_praw_dostepu – lista typów uprawnień jakie mają
zostać nadane użytkownikowi
• nazwa_tabeli – nazwa tabeli do której maja zostać nadane
uprawnienia
• nazwa_uzytkownika – nazwa użytkownika do którego
mają zostać przypisane uprawnienia
Polecenie – „GRANT” - przykład
GRANT SELECT, INSERT, UPDATE
ON `logs`
TO biuro
Polecenie nadaje uprawnienia użytkownikowi biuro do
pobierania, wstawiania i uaktualniania danych w tabeli
`logs` i tworzy go jeśli nie istnieje.
http://it.dth.pl/grant-oraz-revoke-kurs-jezyka-sql-mysql-cz-1/
http://pl.wikipedia.org
http://www.w3schools.com
Książka: „PHP i MySQL Tworzenie stron WWW F7 2005”
Download