Bazy danych - Podstawowe polecenia SQL

1. Zakładanie bazy danych w MySQL:

CREATE DATABASE nazwa DEFAULT CHARACTER SET utf8 COLLATE utf_unicode_ci;

CREATE DATABASE nazwa - Stwórz bazę danych o nazwie... 
DEFAULT CHARACTER SET utf8 COLLATE utf_unicode_ci;  - ... z kodowaniem znaków UTF8

2. Tworzenie tabeli z poszczególnymi nazwami kolumn.

CREATE TABLE Klienci
(IDKlienta INT NOT NULL,           
ImieKlienta VARCHAR(30) NULL,
NazwiskoKlienta VARCHAR(30) NULL);
 
Możliwe inne opcje:
  • INT - dane mogą być tylko w postaci liczb (możliwe opcje: SIGNED - liczby niedodatnie, UNSIGNED - liczby nieujemne 
  • NOT NULL - nie może być wartość NULL
  • VARCHAR - dane mogą być w postaci liczb, cyfr oraz znaków specjalnych, w nawiasie maksymalna ilość znaków do wpisania
  • AUTO_INCREMENT - automatyczne numerowanie
  • PRIMARY KEY - klucz główny
  • FLOAT - liczba z przecinkiem określamy jako (3,1) co oznacza, że ma wyświetlać 3 liczby przed przecinkiem i jedną za nim.
  • CHAR(x) - ciąg znaków o maksymalnej długości (x) 
  • TEXT - wartość tekstowa
  • DATE - data
3. Dodawanie rekordów do tabeli:

INSERT INTO Klienci (IDKlienta, ImięKlienta, NazwiskoKlienta)
VALUES (1, 'Sylwia', 'Dudziak');

Tłumaczenie: Dodaj do tabeli Klienci (nazwa kolumny1, nazwa kolumny2, nazwa kolumny3)
wartości (wartość dla kolumny1, wartość dla kolumny2, wartość dla kolumny3)

Pamiętaj, aby pisząc wyraz umieścić go w pomiędzy apostrofami ('...')

Możemy wprowadzić "szybciej dane" np.

INSERT INTO klienci VALUES
  (1, 'Jasny', 'Gwint'),
  (2, 'Józef ', 'Stalin'),
  (3, 'Ferdynand', 'Kiepski');        

4. Tworzenie kopii zapasowej bazy danych:

5. Wyszukiwanie danych według określonych kryteriów:
  • Klienci według nazwiska i imienia z posortowanymi nazwiskami
SELECT Klienci.NazwiskoKlienta, Klienci.ImieKlienta
FROM Klienci
ORDER BY NazwiskoKlienta;

Tłumaczenie: Wybierz kolumnę NazwiskoKlienta oraz ImieKlienta z tabeli Klienci sortując według NazwiskKlientów.
  • Klienci mający literę "a" w nazwisku (pokazując też jego imię)
SELECT Klienci.NazwiskoKlienta, Klienci.ImięKlienta
FROM Klienci
WHERE NazwiskoKlienta LIKE '%a%';

Tłumaczenie: Wybierz kolumnę NazwiskoKlienta oraz ImięKlienta z tabeli Klienci, ale pokaż tylko tych, którzy mają w NazwiskoKlienta na którejś pozycji literę a. 
  • Wybieranie z tabeli produkty nazwę, cenę i datę dodania produktu posortowaną malejąco/rosnąco według daty dodania. 
SELECT name, price, date FROM produkty ORDER BY date xxxx;

gdzie xxxx:
jeśli ma być posortowana malejąco: DESC 
jeśli rosnąco: nic nie piszemy lub piszemy ASC
  • Wybieranie z tabeli Klienci imiona klientów mieszkających w danym mieście:
SELECT name FROM Klienci WHERE city='miasto';
  • Wybieranie ID, Imiona i daty dodania klientów, którzy zarejestrowali się w lutym
SELECT id,name, date FROM Klienci WHERE MONTH(date)=02;
  • Wybieranie nazwy, ceny i ilości produktów, których ilość wynosi 3,4,5 lub 6. 
SELECT name, price, amount FROM Produkty WHERE amount IN (3,4,5,6);
  • Wybieranie nazwy i ceny produktów z tabeli Produkty, w których cena należy do przedziału od 50 do 70
SELECT name, price FROM Produkty WHERE price BETWEEN 50 AND 70;
  • Wybieranie id i imiona czterech pierwszych klientów korzystając z klauzuli LIMIT
SELECT id, name FROM Klienci LIMIT 0,4;

6. INNER JOIN - łączenie tabel przy wyświetlaniu

SELECT IDKlienta, ImieKlienta, NazwiskoKlienta FROM Klienci INNER JOIN Zamowienia ON Klienci.IDKlienta = Zamowienia.IDKlienta;

Tłumaczenie: Złącz kolumny (IDKlienta, ImieKlienta i NazwiskoKlienta) z tabeli Klienci do tabeli Zamówienia: (IDKlienta jest elementem wspólnym tych dwóch tabel) Klienci (czyli nazwa pierwszej tabeli).IDKlienta (kolumna wspólna dla obu tabel) = Zamowienia (czyli nazwa drugiej tabeli).IDKlienta (kolumna wspólna dla obu tabel).