background image

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  

background image

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. 

background image

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. 

 

background image

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 

Link

 

16. Ogólna postać instrukcji CREATE 

 

 

 

background image

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 
 ); 
 
 
 
 
 
 

background image

 
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ć: 

background image

 

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. 

 

 

 

background image

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.