jezyki zapytan dla relacyjnych baz danych Flashcards
Polecenia SQL dotyczą:
tworzenia i usuwania baz danych, tabel, kluczy
wprowadzania, uaktualniania i usuwania danych
wyszukiwania danych
ustawiania praw dostępu do danych
administracji bazą danych
zarządzania transakcjami
Sposób wprowadzania do bazy poleceń SQL:
w programie działającym z linii poleceń
(np. mySQL monitor)
w programie z graficznym interfejsem użytkownika
(np. mySQL Navigator)
w skryptach i programach komunikujących się z bazą
danych (np. skrypty PHP)
pośrednio, przy użyciu graficznego interfejsu
użytkownika (np. Access
utworzenie bazy:
CREATE DATABASE nazwa;
przełączenie się do bazy:
USE nazwa;
Typy danych mySQL – liczby całkowite:
TINYINT (1 bajt)
SMALLINT (2 bajty)
MEDIUMINT (3 bajty)
INT (4 bajty)
BIGINT (8 bajtów)
Dodatkowe atrybuty:
UNSIGNED – liczba bez znaku
ZEROFILL – dopełnienie zerami
(M) – wyświetlenie M cyfr
Typy danych mySQL – liczby zmiennoprzecinkowe:
FLOAT (n) – pojedyncza precyzja, n liczb
DOUBLE (M,D) – podwójna precyzja
DECIMAL (M,D) – liczba zapisywana jako tekst
Dodatkowe atrybuty:
UNSIGNED – liczba bez znaku
ZEROFILL – dopełnienie zerami
(M) – wyświetlenie M cyfr
(M,D) – wyświetlenie M cyfr, D cyfr po przecinku
Typy danych mySQL – data i czas:
DATETIME – data + czas (2003-10-15 15:00:12)
DATE – data (2003-10-15)
TIME – czas (15:00:12)
YEAR – rok (2003 lub 03)
TIMESTAMP (n) – znacznik czasu (n – liczba znaków)
Typy danych mySQL – łańcuchy tekstowe:
CHAR (n) – stała długość n (max. 255)
VARCHAR (n) – zmienna długość, max. n (do 255)
TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT
– dane tekstowe ASCII
TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB
– dane binarne
ENUM – typ wyliczeniowy
SET – zbiór wartości
Utworzenie tabeli wymaga podania nazw pól
(kolumn) oraz ich typów.
CREATE TABLE albumy (
id INT NOT NULL,
wykonawca VARCHAR(30),
tytuł VARCHAR(30),
rok YEAR,
liczba-utw SMALLINT,
opis TEXT
);
Wstawianie danych z podaniem wszystkich kolumn
tabeli (należy zachować kolejność!)
INSERT INTO albumy
VALUES (1, ‘Pink Floyd’, ‘The Division Bell’,
1994, 11, ‘Ostatni studyjny album’);
Wyszukiwanie danych w tabeli – instrukcja SELECT
SELECT które_kolumny FROM z_której_tabeli
WHERE które_rekordy;
Eliminacja powtórzeń wyników:
SELECT DISTINCT wykonawca FROM albumy;
Wyszukiwanie rekordów spełniających zadany
warunek
– instrukcja WHERE
SELECT tytuł FROM albumy
WHERE wykonawca = ‘Pink Floyd’;
Operatory używane w instrukcji SELECT …
WHERE:
porównania: = <> < > <= >= <=>
logiczne: NOT ! AND && OR || XOR
IS NULL, IS NOT NULL
expr BETWEEN min AND max (NOT BETWEEN)
expr IN (lista) (NOT IN)
Symbole wieloznaczne używane w instrukcji WHERE:
% zastępuje dowolny ciąg znaków
_ zastępuje jeden znak
Operator symboli wieloznacznych:
LIKE, NOT LIKE
Sortowanie wyników wg zadanej kolumny:
ORDER BY pole – w porządku rosnącym
ORDER BY pole ASC – jw.
ORDER BY pole DESC – w porządku malejącym
Grupowanie wyników
użycie funkcji, np. COUNT, SUM, MAX, MIN, AVG
nazwanie kolumny z wynikami (opcjonalnie) – AS
zgrupowanie wyników – GROUP BY
Ograniczenie rekordów uzyskanych w wyniku
grupowania
operator HAVING
Ograniczenie liczby wyników
LIMIT
Uwzględnienie relacji między tabelami:
SELECT * FROM albumy, utwory
WHERE albumy.IDA = utwory.IDA;
Wstawianie do tabeli danych uzyskanych w wyniku
zapytania:
INSERT INTO nowa (autor, dzielo)
SELECT DISTINCT wykonawca, album
FROM albumy;
Wstawianie danych z pliku na komputerze klienta
(pola rozdzielone tabulatorami, rekordy – znakiem
nowej linii)
– komenda mySQL (nie standard):
LOAD DATA LOCAL INFILE ‘dane.txt’
INTO nowa_tabela;
Usunięcie rekordów spełniających zadane kryteria
– instrukcja DELETE. Warunki takie same jak w SELECT.
Zmiana danych rekordów już istniejących w tabeli
UPDATE albumy
SET wykonawca = ‘Pink Floyd’
WHERE wykonawca = ‘Fink Ployd’;
Usuwanie całej bazy:
DROP DATABASE baza;
Wyświetlenie istniejących baz danych:
SHOW DATABASES;