Upload
guinevere-castro
View
98
Download
0
Embed Size (px)
DESCRIPTION
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) - PowerPoint PPT Presentation
Citation preview
SQL - Structured Query LanguageJę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ładniaCREATE 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ładCREATE 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ładniaSELECT 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ładSELECT * 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ładINSERT 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 wstawieniedomyślnych wartości kolumny ustawione przy
tworzeniutabeli.
Polecenie – „UPDATE”
• pozwala na aktualizacje danych w wstawionych
już rekordach.
• umożliwia edycje jednego lub wielu rekordu
jednocześnie
Polecenie – „UPDATE” – składniaUPDATE 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ładniaDELETE 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ładDELETE FROM `logs`WHERE `type` = ‘error’;
Polecenie usuwa rekordy z tabeli `logs`, w którychkomó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.
Żródła:http://it.dth.pl/grant-oraz-revoke-kurs-jezyka-sql-mysql-cz-1/http://pl.wikipedia.orghttp://www.w3schools.comKsiążka: „PHP i MySQL Tworzenie stron WWW F7 2005”