mysql. darmowa baza danych. Ćwiczenia praktyczne helion.pdf

(5923 KB) Pobierz
887712132.013.png
4
MySQL. Darmowa baza danych • Ćwiczenia praktyczne
Rozdział 4.
Tworzenie struktury bazy danych
81
Ogólna postać instrukcji CREATE
81
Typy danych
85
Atrybuty kolumn
98
Kodowanie znaków dla tabel i kolumn
104
Pobieranie struktury tabel
106
Modyfikacja tabel
108
Usuwanie tabel
115
Kilka tabel w praktyce
116
Rozdział 5.
Elementy SQL (DML)
125
Wprowadzanie danych
125
Pobieranie danych
134
Modyfikacja danych
150
Usuwanie danych
153
Rozdział 6.
Złożone instrukcje SQL
157
Pobieranie danych z kilku tabel
157
Typy złączeń
160
Grupowanie danych
165
Dane w bazie przechowywane są w tabelach. Pojęcie tabeli
poznaliśmy w rozdziale 3., „Koncepcja relacyjnych baz da-
nych”. Czas więc dowiedzieć się, w jaki sposób można tworzyć
tabele. Służy do tego instrukcja
o schematycznej postaci:
CREATE TABLE
CREATE TABLE nazwa_tabeli
(
nazwa_kolumny_1 typ_kolumny_1 [atrybuty],
nazwa_kolumny_2 typ_kolumny_2 [atrybuty],
...
nazwa_kolumny_n typ_kolumny_n [atrybuty],
)
Nazwa tabeli może zawierać dowolne znaki, jakie może zawierać na-
zwa pliku w systemie operacyjnym, na którym działa serwer MySQL,
z wyjątkiem
Maksymalna długość nazwy to 64 bajty. Począw-
szy od wersji 3.23.6, nazwa tabeli może być nazwą słowa zastrze-
żonego dla konstrukcji języka (np.
,
i
/
\
.
,
), w takim wy-
SELECT
CREATE
padku musi być jednak zawsze ujęta w znaki
, np.
. Nie
‘SELECT‘
887712132.014.png 887712132.015.png 887712132.016.png 887712132.001.png 887712132.002.png 887712132.003.png 887712132.004.png
82
MySQL. Darmowa baza danych • Ćwiczenia praktyczne
może również zawierać znaków o kodach 0 i 255 w standardzie ASCII,
a na jej końcu nie powinny się znajdować tzw. białe znaki (czyli
spacje, tabulatory itp.).
Nazwa kolumny może zawierać dowolne znaki, jednak jej długość
jest również ograniczona do 64 bajtów i także nie powinna być zakoń-
czona białym znakiem. Typ kolumny określa rodzaj danych, które
dana kolumna będzie mogła przechowywać, np. łańcuch znaków, licz-
by, itp. Występujące w MySQL typy danych zostaną omówione w na-
stępnej sekcji.
W nazwach tabel (oraz baz danych) mogą występować zarówno małe,
jak i duże litery, jednak to, czy będą rozróżniane, zależy od systemu
plików systemu operacyjnego, na którym został zainstalowany MySQL.
I tak w większości odmian Uniksa wielkie i małe litery są rozróżnia-
ne, natomiast w systemach Windows — nie. W systemach Mac OS
rozróżnianie wielkości liter zależy od tego, czy wykorzystywany jest
system plików HFS (nie są rozróżniane), czy USF (są rozróżniane).
W związku z tym, o ile to możliwe, najwygodniej przyjąć po prostu
zasadę, że nazwy baz i tabel zawsze są pisane małymi literami (najle-
piej alfabetu łacińskiego).
Nazwy kolumn również mogą zawierać małe i duże litery, jednak
w tym wypadku nie są one rozróżniane, niezależnie od wersji systemu
operacyjnego czy systemu plików. Począwszy od wersji 4.1, wszystkie
identyfikatory i nazwy odnoszące się do definicji zawartości tabel są
zapisywane w standardzie Unicode. Należy również pamiętać, że jeśli
identyfikator (np. nazwa kolumny) zawiera znaki spoza standardowe-
go zestawu ASCII (np. polskie litery), należy go ująć w lewe apostrofy
(podobnie jak w sytuacji, kiedy identyfikator jest nazwą zastrzeżoną
dla konstrukcji języka SQL).
Dla treningu spróbujmy teraz utworzyć prostą tabelę
, która bę-
klient
dzie zawierała dwie kolumny. Pierwsza — o nazwie
— będzie
Indeks
przechowywała liczby całkowite (typ danych
), druga — o na-
INTEGER
zwie
— będzie przechowywała ciągi maksymalnie 20 znaków
(typ VARCHAR(20) ).
Nazwa
Rozdział 4. • Tworzenie struktury bazy danych
83
ĆWICZENIE
4.1
Utworzenie prostej tabeli
Utwórz tabelę o nazwie
zawierającą dwie kolumny — pierwszą
o nazwie Indeks typu INTEGER , drugą o nazwie Nazwa typu VARCHAR(20) .
Utworzenie takiej tabeli osiągniemy po wydaniu polecenia w postaci:
klient
CREATE TABLE klient
(
Indeks INTEGER,
Nazwa VARCHAR(20)
);
Oczywiście najpierw należy uruchomić klienta
, zalogować się
mysql
do serwera i wybrać bazę danych (np.
), tak jak było to opisywane
we wcześniejszych rozdziałach. Po wykonaniu opisanych czynności
w oknie konsoli zobaczymy widok zaprezentowany na rysunku 4.1.
test
Rysunek 4.1.
Zalogowanie
do serwera
i utworzenie tabeli
klient w bazie test
Co się jednak stanie, jeśli spróbujemy utworzyć tabelę o nazwie, która
już istnieje w bazie? W takiej sytuacji zostanie zgłoszony błąd widocz-
ny na rysunku 4.2. Jest to całkiem zrozumiałe zachowanie systemu.
Czasem jednak chcielibyśmy utworzyć tabelę o zadanej nazwie tylko
wtedy, gdy nie istnieje ona w bazie, a gdyby istniała — nie podej-
mować żadnego działania. W takiej sytuacji powinniśmy skorzystać
z dodatkowej konstrukcji
w ogólnej postaci:
II NOT EXISTS
CREATE TABLE IF NOT EXISTS nazwa_tabeli
(
definicje kolumn
)
którą możemy przetłumaczyć jako: utwórz tabelę
, o ile
nazwa_tabeli
nie istnieje ona jeszcze w bazie.
887712132.005.png 887712132.006.png 887712132.007.png 887712132.008.png 887712132.009.png 887712132.010.png 887712132.011.png 887712132.012.png
 
Zgłoś jeśli naruszono regulamin