280 likes | 483 Views
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)
E N D
SQL - StructuredQueryLanguage Język relacyjnych baz danych
Podstawowe komponenty SQL • DDL (Data DefinitionLanguage) – język definiowania struktur danych (CREATE) i kontroli dostępu • DQL (Data QueryLanguage) – język definiowania zapytań dla wyszukiwania danych (SELECT) • DML (Data ManipulationLanguage) – 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 defaultCURRENT_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.
Żródła: 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”