Język SQL (ang. Structured Query Language) jest rodzajem deklaratywnego języka, który powstał w latach 70-siątych, do obsługi danych w bazach. Język ten w swojej istocie miał być intuicyjny i prosty, tak aby maksymalnie ułatwić programiście pracę na bazie danych.
Tworzenie schematu
CREATE DATABASE – tworzenie bazy danych
CREATE DATABASE 'mydb';
CREATE TABLE – tworzy pojedynczą tabelę. W najprostszym przypadku wystarczy po prostu wypisać listę kolumn wraz z ich typami. Są one podobne do większości typów znanych z innych języków programowania*. Opcjonalnie można dodać wartość domyślną oraz opcję czy kolumna może być NULL czy nie. Na końcu zawsze pamiętaj o wskazaniu klucza głównego za pomocą klauzuli PRIMARY KEY.
CREATE TABLE IF NOT EXISTS 'osoby' ( 'id' INT(11) NOT NULL, 'imie' INT(11) NULL DEFAULT NULL, 'nazwisko' INT(11) NULL DEFAULT NULL, PRIMARY KEY ('id'));
CREATE INDEX – osobną kwestią jest tworzenie indeksów. Indeks to pewnego rodzaju wskaźnik w tabeli, który przyśpiesza wyszukiwanie danych szukanych po kolumnie, na której został założony. Domyślnie każdy klucz główny i obcy posiadają nałożony indeks. Możesz go jednak dodatkowo założyć na kolumnie, którą często wykorzystujesz w swoich zapytaniach.
CREATE INDEX 'index_name' ON 'osoba'('nazwisko');
ALTER – umożliwia wykonanie operacji na strukturze istniejącej tabeli takie jak: dodawnie, usuwanie, zmiana nazwy, zmiana typu danych kolumny, a także dodawanie, usuwanie indexu dla kolumny.
ALTER TABLE 'nazwa_tabeli' ADD/MODIFY/DROP/CHANGE 'nazwa_kolumny' typ_danych
Zapytania do bazy
Zapytania do bazy wykonywane są za pomocą słowa kluczowego SELECT, po którym wskazuje się jakie kolumny chcesz przejrzeć. SELECT * pokazuje wszystkie kolumny w tabeli. Można wykonać ograniczenie wyników poprzez filtrowanie danych za pomocą klauzuli WHERE.
SELECT 'imie','nazwisko' FROM 'osoby' [WHERE 'nazwa_kolumny' operator 'wartość']
Modyfikowanie danych
INSERT INTO – pozwala na wstawianie nowych wartości do tabeli.
INSERT INTO 'osoby' ('imie','nazwisko') VALUES ('wartość','wartość2')
UPDATE – pozwala na zmianę, aktualizację wartości kolumny w tabeli.
UPDATE 'nazwa_tabeli' SET 'nazwa_kolumny'='wartość' [WHERE 'nazwa_kolumny' operator 'wartość']
DELETE FROM – pozwala na usunięcie rekordów z tabeli.
DELETE FROM 'nazwa_tabeli' [WHERE 'nazwa_kolumny' operator 'wartość']
DROP – pozwala na usunięcie indexów, tablic, baz danych.
DROP DATABASE/TABLE/INDEX 'nazwa'
*Pełna lista typów kolumn dostępnych dla bazy PostgreSQL: https://www.postgresql.org/docs/9.5/datatype.html