sql - structured query language

28
SQL - Structured Query Language Język relacyjnych baz danych

Upload: guinevere-castro

Post on 01-Jan-2016

127 views

Category:

Documents


0 download

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

TRANSCRIPT

Page 1: SQL -  Structured Query Language

SQL - Structured Query LanguageJęzyk relacyjnych baz danych

Page 2: SQL -  Structured Query Language

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

Page 3: SQL -  Structured Query Language

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

Page 4: SQL -  Structured Query Language

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 [, ...]]);

Page 5: SQL -  Structured Query Language

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

Page 6: SQL -  Structured Query Language

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

Page 7: SQL -  Structured Query Language

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

Page 8: SQL -  Structured Query Language

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ć.

Page 9: SQL -  Structured Query Language

Polecenie – „SELECT” – składniaSELECT parametry

FROM nazwa_tabel

WHERE warunki

SORT BY kolumna typ_sortowania

ORDER BY kolumna

LIMIT start, ilość;

Page 10: SQL -  Structured Query Language

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

Page 11: SQL -  Structured Query Language

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’.

Page 12: SQL -  Structured Query Language

Polecenie – „INSERT”

• pozwala wprowadzań dane do tabel w bazie

danych

• umożliwia dodania jednego lub wielu rekordów

naraz

Page 13: SQL -  Structured Query Language

Polecenie – „INSERT” - składnia

INSERT INTO nazwa_tabeli

(kolumna1,kolumna2,…,kolumnan)

VALUES

(dane1,dane2,…,danen),

…,

(dane1,dane2,…,danen);

Page 14: SQL -  Structured Query Language

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

Page 15: SQL -  Structured Query Language

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.

Page 16: SQL -  Structured Query Language

Polecenie – „UPDATE”

• pozwala na aktualizacje danych w wstawionych

już rekordach.

• umożliwia edycje jednego lub wielu rekordu

jednocześnie

Page 17: SQL -  Structured Query Language

Polecenie – „UPDATE” – składniaUPDATE nazwa_tabeli

SET kolumna1 = wartość,

…,

kulmnan = wartośćn,

WHERE warunki;

Page 18: SQL -  Structured Query Language

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

Page 19: SQL -  Structured Query Language

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.

Page 20: SQL -  Structured Query Language

Polecenie – „DELETE”

• polecenie umożliwia usuwanie rekordów z tabeli

• umożliwia usunięcie jednego lub wielu rekordów

jednocześnie

Page 21: SQL -  Structured Query Language

Polecenie – „DELETE” - składniaDELETE FROM nazwa_tabeli

WHERE warunki;

Page 22: SQL -  Structured Query Language

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

Page 23: SQL -  Structured Query Language

Polecenie – „DELETE” - przykładDELETE FROM `logs`WHERE `type` = ‘error’;

Polecenie usuwa rekordy z tabeli `logs`, w którychkomórka `type` równa się ‘error’.

Page 24: SQL -  Structured Query Language

Polecenie – „GRANT”

• tworzenie użytkowników bazy danych

• nadawanie uprawnień użytkownikom

Page 25: SQL -  Structured Query Language

Polecenie „GRANT” - składnia

GRANT lista_praw_dostepu

ON nazwa_tabeli

TO nazwa_uzytkownika

Page 26: SQL -  Structured Query Language

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

Page 27: SQL -  Structured Query Language

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.

Page 28: SQL -  Structured Query Language

Ż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”