Podstawy MYSQL
1. Łączenie się z bazą danych
mysql –u root –p hasło
2. Kończenie połączenia z bazą danych
quit
3. Tworzenie i usuwanie baz danych
CREATE DATABASE nazwa_bazy;
DROP DATABASE nazwa_bazy;
4. Wybór bazy danych po zalogowaniu do serwera
Polecenia use służy do wyboru bazy. Jeśli chcemy pracować z bazą o nazwie test1, musimy po prostu
wydać polecenie:
use test1;
Wybór zostanie potwierdzony przez komunikat: Database changed
Jeśli chcemy połączyć się z bazą danych z uprawnieniami dowolnego użytkownika:
mysql -u nazwa_użytkownika –p hasło nazwa_bazy
mysql nazwa_bazy -u nazwa_użytkownika -p hasło
5. Tworzenie konta użytkownika z jednoczesnym nadaniem hasła
Aby utworzyć konto użytkownika o przykładowej nazwie jank oraz haśle odg78XY_23c, należy
wykonać polecenie:
CREATE USER jank IDENTIFIED BY 'odg78XY_23c';
lub też w pełnej wersji:
CREATE USER jank IDENTIFIED BY PASSWORD 'odg78XY_23c';
6. Usuwanie konta użytkownika
Aby usunąć dwa konta użytkowników o nazwach jank i andrzej_n, należy wykonać instrukcję:
DROP USER jank, andrzej_n;
Jeśli trzeba zmienić nazwę istniejącego konta użytkownika, można użyć instrukcji
RENAME USER w schematycznej postaci:
RENAME USER stara_nazwa TO nowa_nazwa;
7. Zmiana hasła użytkownika
Do zmiany oraz ustalania hasła użytkownika można użyć instrukcji SET PASSWORD. Jej ogólna postać
jest następująca:
SET PASSWORD [FOR użytkownik] = PASSWORD('tekst_hasła');
Aby zmienić hasło użytkownika o nazwie np. jan_kowalski na ciąg Xdio83PWgk, należy użyć instrukcji:
SET PASSWORD FOR jan_kowalski = PASSWORD('Xdio83PWgk');
8. Uprawnienia użytkowników
Parametry ujęte w nawiasy kwadratowe są opcjonalne. Wydanie takiego polecenia oznacza: nadaj
użytkownikowi użytkownik prawa do obiektu obiekt wskazywane przez parametr prawa oraz hasło
wskazywane przez parametr hasło. Jeśli konto nie istnieje, zostanie utworzone, jeśli istnieje, zostaną
jedynie przypisane do niego odpowiednie uprawnienia.
Wartości parametru prawa polecenia GRANT
ALL [PRIVILEGES] Ustawia wszystkie przywileje z wyjątkiem GRANT OPTION.
ALTER Zezwala na użycie polecenia ALTER TABLE (zmianę struktury tabel).
ALTER ROUTINE Pozwala na zmianę oraz usuwanie procedur składowanych (ang. stored routines).
CREATE Zezwala na użycie polecenia CREATE TABLE (tworzenie tabel) i CREATE DATABASE (tworzenie baz).
CREATE ROUTINE Zezwala na tworzenie procedur składowanych.
CREATE TABLESPACE Pozwala na tworzenie, usuwanie i modyfikację przestrzeni tabel**.
CREATE TEMPORARY TABLES Zezwala na użycie polecenia CREATE TEMPORARY TABLE (tworzenie tabel
tymczasowych).
CREATE USER Zezwala na użycie poleceń: CREATE USER, DROP USER,
RENAME USER oraz REVOKE ALL PRIVILEGES (zarządzanie kontami użytkowników).
CREATE VIEW Zezwala na użycie polecenia CREATE VIEW (tworzenie tzw. perspektyw, inaczej widoków).
DELETE Zezwala na użycie polecenia DELETE (usuwanie wierszy z tabel).
DROP Zezwala na użycie polecenia DROP TABLE (usuwanie tabel).
EVENT Umożliwia zarządzanie zadaniami z harmonogramu zadań
EXECUTE Zezwala na uruchamianie procedur składowanych.
FILE Zezwala na użycie poleceń: SELECT ... INTO OUTFILE oraz LOAD DATA INFILE (zapis i odczyt danych z
zewnętrznych plików).
GRANT OPTION Umożliwia nadawanie i odbieranie przywilejów dla innych kont.
INDEX Zezwala na użycie poleceń: CREATE INDEX oraz DROP INDEX (tworzenie i usuwanie indeksów).
INSERT Zezwala na użycie polecenia INSERT (dodawanie wierszy do tabel).
LOCK TABLES Zezwala na użycie polecenia LOCK TABLES na tabelach, dla których użytkownik ma prawa do
wykonywania polecenia SELECT.
PROCESS Zezwala na użycie polecenia SHOW FULL PROCESSLIST (wyświetlenie listy procesów).
PROXY Pozwala na ustanowienie użytkownika pośredniczącego (ang. proxy user).
REFERENCES Przywilej rozpoznawany przez serwer, ale aktualnie niezaimplementowany.
RELOAD Zezwala na użycie polecenia FLUSH.
REPLICATION CLIENT Zezwala na użycie poleceń SHOW MASTER STATUS i SHOW SLAVE STATUS.
REPLICATION SLAVE Przywilej niezbędny dla kont, przez które serwery podrzędne (slave server) kontaktują się
z serwerem głównym (master server).
SELECT Zezwala na użycie polecenia SELECT (wykonywanie zapytań).
SHOW DATABASES Zezwala na użycie polecenia SHOW DATABASES (wyświetlenie listy baz danych).
SHOW VIEW Zezwala na użycie polecenia SHOW CREATE VIEW.
SHUTDOWN Pozwala na kończenie pracy serwera.
SUPER Zezwala na wykonywanie operacji administracyjnych, w tym użycie poleceń CHANGE MASTER, KILL,
PURGE MASTER LOGS oraz SET GLOBAL.
TRIGGER Zezwala na operacje na wyzwalaczach.
UPDATE Zezwala na użycie polecenia UPDATE (modyfikacja zawartości tabel).
USAGE Pozwala jedynie na dostęp do bazy, bez żadnych dodatkowych uprawnień.
Nadaj użytkownikowi posługującemu się nazwą janek prawa do logowania
się do serwera.
9. Zmiana hasła za pomocą instrukcji GRANT
Użyj polecenia GRANT do zmiany hasła użytkownika janek na ciąg rgh768HH.
10. Uprawnienia do tworzenia i modyfikacji tabel
Nadaj wybranemu użytkownikowi uprawnienia do tworzenia i modyfikacji tabel w bazie test1.
Prawo do tworzenia tabel to CREATE, dodawania danych — INSERT, modyfikacji danych — UPDATE,
usuwania danych — DELETE
11. Nadanie uprawnień do pobierania i dodawania danych
Nadaj wybranemu użytkownikowi prawa wykonywania zapytań typu SELECT i INSERT w bazie test1.
12. Prawo do nadawania uprawnień
Nadaj wybranemu użytkownikowi uprawnienia do wykonywania zapytań typu SELECT dla tabeli o
nazwie osoby znajdującej się w bazie test1 oraz do przekazywania tego uprawnienia innym
użytkownikom.
Aby nadać prawa do wybranej tabeli, jako określenie obiektu należy użyć konstrukcji w postaci:
nazwa_bazy.nazwa_tabeli
13. Informacja o uprawnieniach wybranego użytkownika
14. Odbieranie wybranych uprawnień
Odbierz wybranemu użytkownikowi prawa do wykonywania zapytań typu UPDATE i DELETE w bazie
test1.
15. Dostępne bazy danych
SHOW DATABASES;
Tworzenie struktury bazy danych
Typy danych w MYSQL
16. Ogólna postać instrukcji CREATE
17. Utworzenie prostej tabeli
18. Utworzenie tabeli, o ile nie istnieje ona już w bazie
Napisz instrukcję tworzącą tabelę Klient , która nie spowoduje wystąpienia błędu w sytuacji, jeśli
tabela o takiej nazwie będzie już istniała w bazie.
19. Tabela tymczasowa
Tymczasowość tabeli zapewnia słowo TEMPORARY umieszczone za CREATE, czyli instrukcja w
ogólnej postaci:
CREATE TEMPORARY TABLE
nazwa_tabeli
(
definicje kolumn
);
Utwórz tymczasową tabelę o dwóch dowolnych kolumnach.
20. Tworzenie jednej tabeli na podstawie innej
Utwórz tabelę Klient2 o strukturze pobranej z tabeli Klient. W celu wykonania ćwiczenia należy użyć
instrukcji:
21. Kolumna z typem wyliczeniowym ENUM
Utwórz tabelę zawierającą kolumnę, która będzie mogła przechowywać jedną z wartości: zielony,
czerwony, niebieski.
22. Kolumna z typem wyliczeniowym SET
Utwórz tabelę zawierającą kolumnę, która będzie mogła przechowywać dowolny podzbiór z wartości:
zielony, czerwony, niebieski.
23. Atrybuty kolumn
PRIMARY KEY (klucz główny)
W przypadku gdyby klucz główny miał się składać z więcej niż jednej kolumny, jego definicja będzie
wyglądała inaczej. Schematycznie tego typu konstrukcja ma postać:
NOT NULL (brak wartości pustych)
Atrybut NOT NULL oznacza, że w danej kolumnie nie mogą znajdować się wartości puste, czyli że
każdy wiersz w tej kolumnie musi zawierać jakąś wartość. Brak definicji danych lub próba jawnego
zapisania wartości pustej (NULL) zakończy się niepowodzeniem.
Kolumna bez wartości pustych
AUTO_INCREMENT (automatyczne generowanie kolejnej wartości)
Atrybut AUTO_INCREMENT ma zastosowanie jedynie do kolumn, które przechowują wartości
całkowite. Jeżeli podczas wstawiania nowego wiersza jako wartość kolumny zostanie podana wartość
pusta NULL lub 0, będzie ona zamieniona na o jeden większą niż maksymalna wartość zapisana w tej
kolumnie. Innymi słowy, wartość takiej kolumny jest automatycznie zwiększana o 1 podczas
wstawiania nowego wiersza.
Zadanie 1
Utwórz tabelę, która będzie zawierała dwie kolumny typu INTEGER, pierwszą o nazwie Id i drugą o
nazwie Znacznik.
Zadanie 2
Utwórz tabelę, która będzie zawierała kolumnę typu INTEGER przechowującą wyłącznie dodatnie
wartości z przedziału 0 – 65 535 i w której liczba wyświetlanych znaków będzie zawsze równa 5, a
wolne miejsca dla wartości krótszych niż 5 znaków będą wypełniane zerami.
Zadanie 3
Utwórz tabelę zawierającą kolumnę przechowującą wartości rzeczywiste pojedynczej precyzji.
Zadanie 4
Utwórz tabelę zawierającą kolumnę przechowującą wartości z separatorem dziesiętnym, z
szerokością wyświetlania określoną na sześć cyfr znaczących, z trzema miejscami po przecinku.
Zadanie 5
Utwórz tabelę zawierającą kolumnę przechowującą wartości określające jednocześnie datę i czas.
Zadanie 6
Utwórz tabelę, która będzie zawierała następujące kolumny:
Id — zawierającą identyfikator osoby,
Imię — przechowującą imiona (o długości nie większej niż 25 znaków),
Nazwisko — przechowującą nazwiska (o długości nie większej niż 35 znaków).
Zadanie 7
Utwórz tabelę zawierającą dwie kolumny — Id typu INTEGER oraz Nazwa typu VARCHAR. Pierwsza
kolumna powinna być kluczem głównym.
Zadanie 8
Utwórz tabelę, w której kolumny Id typu INTEGER oraz Nazwa typu VARCHAR tworzą klucz główny.