Krótki przewodnik po MySQL /źródło www.rudnicki.info /
Transkrypt
Krótki przewodnik po MySQL /źródło www.rudnicki.info /
Krótki przewodnik po MySQL /źródło www.rudnicki.info / Język SQL (Structured Query Language) powstał w latach 70, został stworzony przez IBM. Mimo tego że ojcem SQL'a był IBM implementacja sprzętowa została stworzona przez firmę Oracle. Międzynarodowa wersja pierwszego standardu SQL została zatwierdzona przez ISO w 1987 roku. SQL jest językiem wysokiego poziomu do zarządzania bazami danych o bardzo dużych możliwościach, ale z niewielką ilością instukcji. Jest łatwy do nauki, ale stanowi również potężne narzędzie dla profesjonalistów. Uwaga, ten tekst nie należy traktować jako kompletny kurs SQL'a, proszę potraktować go raczej jako skrótowy spis podstawowych instrukcji SQL. W internecie istnieje kilka kompletnych tutoriali SQL'a po polsku, myślę, że ten tekst może stanowić usystematyzowanie wiedzy zdobytej na temat SQL'a. MySQL: Przedstawione przykłady będą opierały się o bazę danych MySQL. Aby poćwiczyć tworzenie zapytań, należy zalogować się do bazy danych: aby zalogować się do bazy danych mySQL należy w konsoli przejść do katalogu gdzie zainstalowaliśmy mySQL, następnie do katalogu bin i wpisać polecenie: mysql -u <nazwa_użytkownika> -p Po wpisaniu hasła będziemy już mogli wykonywać różne zapytania w naszej bazie danych. Na początek będziemy musieli utworzyć bazę danych i ją aktywować (patrz: Praca z bazami danych). Ogólne zasady budowania zapytań SQL: Każde zapytanie powinno kończyć się średnikiem. Zapytania nie muszą znajdować się w jednej linii. Jeśli nazwa pola/wartości pola, którą wprowadzamy do tablicy zawiera, chociaż jedną spację musimy to wyrażenie umieścić w apostrofach, np. 'złota lampa' Polecenia można pisać dużymi, jak i małymi literami, jednak zaleca się przyjęcie standardu. Praca z bazami danych i tabelami (DDL): USE <nazwa_bazy_danych> - wybieramy na której bazie danych chcemy pracować SHOW TABLES - służy do pokazania wyświetlenia wszystkich tabeli z uprzednio wybranej bazy danych SHOW DATABASES - wyświetla wszystkie bazy danych CREATE DATABASE <nazwa> - tworzy nową bazę danych CREATE TABLE <nazwa> ([kolumny]); - tworzy nową tabelę, między nawiasami powinna znajdować się definicja kolumn o następującej składni: <nazwa_kolumny> <typ_pola> [dodatkowe_właściwośći], NOT NULL - pole nie może być puste DEFAULT '<wartość>' - domyślna wartość dla pola PRIMARY KEY (<nazwa>) - ustawienie klucza głównego AUTO_INCREMENT - właściwość, dzięki której pole przy dodawaniu rekordów będzie automatycznie inkrementowane (najczęściej stosowane dla klucza głównego, bo pozwala w automatyczny sposób uzyskać niepowtarzalną wartość w polu, moża go stosować tylko dla typu liczbowego całkowitego). CREATE TABLE projekty ( id_projekt INT NOT NULL auto_increment, opis_krotki BLOB NOT NULL, opis_dlugi BLOB NOT NULL, data_dodania DATE NOT NULL, PRIMARY KEY (id_projekt) ); DROP DATABASE <nazwa> - usuwa bazę danych DROP TABLE <nazwa> - usuwa tablicę DESCRIBE <nazwa_tabeli> - wyświetla dokładny opis tabeli ALTER TABLE <nazwa_tabeli> - modyfikacja tabeli ADD <definicja_nowej_kolumny> - dodanie nowej kolumny na końcu, ADD <definicja_nowej_kolumny> AFTER <pole> - dodanie nowej kolumny po wyznaczonej kolumnie ADD <definicja_nowej_kolumny> FIRST - dodanie nowej kolumny na początku CHANGE <nazwa_kolumny> <definicja_nowego pola> - zmienia całkowicie kolumnę MODIFY <nazwa_kolumny> - zmiana tylko właściwości kolumny DROP COLUMN <nazwa_kolumny> - usunięcie kolumny RENAME <nowa_nazwa_tabeli> - zmiana nazwy tabeli Praca z rekordami (DDM): INSERT INTO < nazwa_tabeli > VALUES (< wartości_dla_pól >); - dodanie nowego wiersza do tabeli, w nawiasie muszą znajdować się wartości dla wszystkich pól INSERT INTO < nazwa_tabeli > ( nazwy_pól) VALUES (wartości_dla_pól); dodanie nowego wiersza do tabeli, w przeciwieństwie do polecenia powyżej, tylko takie wartości dla pól muszą być wprowadzone jakie zostały wcześniej napisane w liście pól SELECT < lista_pól > FROM < nazwa_tabeli > [WHERE < warunek >] - wybieranie odpowiednich rekordów z tabeli, w liście pól mogą znajdować się również takie funkcje: MAX(<nazwa_kolumny>) - zwraca największą wartość MIN(<nazwa_kolumny>) - zwraca najmniejszą wartość COUNT(*) - łączna liczba rekordów SUM(<nazwa_kolumny>) - suma wartości pól podanej kolumny AVG(<nazwa_kolumny>) - średnia wartości pól podanej kolumny do łączenia warunków służą polecenia AND i OR do grupowania warunków służą nawiasy operatory dla warunków: ‘=’ ‘<>’ ‘!=’ ‘<’ ‘>’ ‘<=’ ‘>=’ <nazwa_kolumny> IN (<wartości>) - dzięki temu wyrażeniu w prosty sposób możemy wybrać rekordy z wybranej kolumny które równają się wartościom podanym w nawiasie <nazwa_kolumny> BETWEEN <dolna_wartość> AND <górna_wartość> - wyrażenie to pozwala wybrać takie rekordy których wartość zawiera się pomiędzy określonymi wartościami NOT - pozwala zanegować inne wyrażenie LIKE ‘<wzorzec>’ - polecenie to pozwala tworzyć wzorce zapytań (we wzorach symbol % zastępuje dowolny ciąg znaków, zaś _ zastępuje pojedynczy znak) ORDER BY <nazwa_kolumny> - pozwala sortować rekordy (ASC - rosnąco; DESC malejąco) DISTINCT - słowo to umieszcza się przed nazwą kolumny i pozwala aby w zwracanych rekordach wartości nie mogły się powtarzać LIMIT <wartość> - pozwala otrzymać tylko określoną liczbę rekordów UPDATE < nazwa_tabeli > SET < nazwa_pola > = < wartość > WHERE < warunek > - polecenie modyfikuje rekord DELETE FROM < nazwa_tabeli > WHERE < warunek > - kasuje wszystkie pola które spełniają określony warunek Typy pól: char(m) - przechowuje teksty o ustalonej z góry długości m (1>m>255) varchar(m) - w przeciwieństwie do typu char, typ varchar przechowuje taką długość tekstu jaka jest aktualnie wykorzystywana int - pole przechowuje liczby całkowite z przedziału -2147483647 do 2147483647 date - pole przechowuje datę year - rok, jeśli zostanie podany zły rok, to wartość zostanie ustawiona na 0000 blob/text - pole przechowujące dłuższe teksty (blob - binarny ciąg znaków, text tekstowy ciąg znaków) decimal(x, y) - liczba dziesiętna, gdzie x oznacza maksymalną liczbę cyfr, a y maksymalną liczbę cyfr po przecinku.