www.eprace.edu.pl » budynek-inteligentny » Opis technologii » Charakterystyka MySql

Charakterystyka MySql

Zakładanie nowej bazy danych oraz tabel.

Podstawową rzeczą w pracy z MySql jest utworzenie nowej bazy danych. Służy do tego polecenie:

CREATE DATABASE nazwa_bazy;

Np.

CREATE DATABASE wshe;

W tej właśnie chwili utworzyliśmy nową bazę danych, która nazywa się „wshe”.

Po utworzeniu bazy danych musimy się na nią przełączyć. Służy do tego polecenie:

USE nazwa_bazy;

W tym wypadku będzie miało ono postać:

USE wshe;

W tej właśnie chwili wybraliśmy bazę danych o nazwie „wshe” i właśnie na niej będziemy od tej chwili pracować. Jeżeli chcemy zmienić bazę danych na inna musimy znowu użyć polecenia USE nazwa_bazy;

Jeżeli założyliśmy bazę danych musimy utworzyć w niej jakieś tabele, w których będziemy przechowywać dane. Do utworzenia tabeli służy polecenie:

CREATE TABLE nazwa_tabeli (

nazwa_pola_1 typ_pola_1 argumenty,

nazwa_pola_2 typ_pola_2 argumenty,

nazwa_pola_n typ_pola_n argumenty);

Np.

mysql> create table users(

-> user_id smallint unsigned not null auto_increment,

-> user_type_id smallint not null,

-> login varchar(30) not null,

-> password char(16) not null,

-> reg_date datetime not null,

-> email varchar(40),

-> comment varchar(75),

-> primary key(user_id));

Utworzyliśmy w ten sposób tabele „users”, w której przechowywane są dane odnośnie użytkowników.

Odnośnie typów danych przechowywanych w tabeli odsyłam do dokumentacji MySql.

Utworzyliśmy strukturę tabeli, która jednak nie posiada żadnych danych. Do wprowadzania do tabeli danych służy następujące polecenie :

INSERT INTO nazwa_tabeli (pole_1,pole_2,…,pole_n)

VALUES (‘wart_1’,’wart_2’,…,’wart_n’);

Np.

INSERT INTO users(user_type_id,login,password,reg_date,email,comment)

VALUES (‘3’,’master’,’m45t3r’,’NOW()’,’master@admin.com’,’Konto administratora’);

Tak samo rekordy dodaje się w przypadku innych tabel.

Modyfikacja bazy danych, tabel oraz pól tabel.

Do modyfikacji struktury tabeli służy polecenie ALTER TABLE. Zmodyfikowanie struktury tabeli zawierającej już jakieś dane spowoduje próbę podporządkowania istniejących danych nowemu formatowi. Dzięki temu poleceniu można dodawać, modyfikować, usuwać pola oraz manipulować indeksami. Ogólna postać polecenia przedstawia się następująco:

ALTER TABLE nazwa_tabeli co_chcemy_zrobic;

W miejsce co_chcemy_zrobic podajemy dokładną operację, jaką chcemy wykonać na danej tabeli z pośród wymienionych:

Aby dodać kolejne pole do istniejącej tabeli należy użyć polecenia:

ALTER TABLE users ADD drugie_imie VARCHAR(20);

Spowoduje to dodanie jednego pola o nazwie drugie_imie na końcu struktury tabeli.

Aby zmienić typ jednego konkretnego pola używamy polecenia:

ALTER TABLE users MODIFY user_type_id INT;

Aby usunąć konkretne pole ze struktury tabeli należy użyć polecenia:

ALTER TABLE users DROP email;

Zmiana nazwy tabeli przedstawia się następująco:

ALTER TABLE users RENAME uzytkownicy;

Pracę z rekordami, tzn. usuwanie, modyfikowanie oraz dodawanie nowych rekordów opisałem w podrozdziale Zarządzanie bazą danych z poziomu monitora MySql.

Tworzenie zapytań w języku SQL.

Podstawowym słowem kluczowym przy tworzeniu zapytań w języku SQL jest słowo

SELECT”

Jeżeli chcemy wyświetlić wszystkie rekordy z tabeli „rooms” użyjemy następującej składni:

SELECT * FROM rooms;

Jest to możliwie najprostsze polecenie służące do wyświetlania wszystkich danych ze wskazanej tabeli.

Bardziej rozbudowanym będzie np.

SELECT computer_name,ip FROM computers;

Wskazujemy tutaj po słowie SELECT, z których dokładnie kolumn chcemy wyświetlić dane.

Jeżeli chcemy bardziej rozbudować nasze zapytanie możemy, chcąc np. wyświetlić wszystkich użytkowników, których login zaczyna się na literę M i typ użytkownika to 3 posłużymy się następującym zapytaniem:

SELECT * FROM users WHERE user_type_id=3 AND login LIKE M%;

Następujące zapytanie wyświetla wszystkich użytkowników, których user_id jest miedzy 3 a 15, a wyniki zapytania uporządkujemy według daty rejestracji oraz posortujemy rosnąco:

SELECT * FROM users WHERE (user_id >= 3) AND (user_id <= 15) ORDER BY reg_date ASC;

Chcemy wybrać 5 ostatnio zarejestrowanych użytkowników:

SELECT * FROM users ORDER BY reg_date DESC LIMIT 5;

Złączenia.

Złączenia dzielą się na zewnętrzne i wewnętrzne.

Przykłady złączeń wewnętrznych – najczęściej stosowanych:

Dane zapytanie wyświetli użytkowników, którzy maja typ znajdujący się w tabeli user_types.

SELECT * FROM users, user_types

WHERE users.user_type_id = user_types.user_type_id;

Poniższe zapytanie wyświetli wszystkie nazwy i typy pomieszczeń z tabeli rooms, których typy znajdują się w tabeli room_types oraz posortuje wyniki alfabetycznie według room_name rosnąco.

SELECT * FROM rooms AS r, room_types AS rt WHERE r.room_type_id=rt.room_type_id ORDER BY room_name ASC;

W zapytaniu powyżej użyłem aliasów, czyli zastąpiłem nazwę tabeli nazwą uproszczoną taką, jaką chcemy, aby była. W tym wypadku dla tabeli rooms jest to nazwa „r”, a dla tabeli room_types jest to „rt”, choć równie dobrze dla danej tabeli mogłaby to być nazwa np. x lub y lub atablethathasuserrights, lecz jest to trochę za długi alias.

Złączenia zewnętrzne są to złączenia typu JOIN. Np. INNER JOIN, RIGHT JOIN, LEFT JOIN.

Przykład:

SELECT * FROM users as u RIGHT JOIN room_rights as rr ON u.user_id = rr.user_id WHERE rr.user_id='$id'

Zapytanie to zwraca wszystkie rekordy z tabeli user_rights, w których user_id to aktualny identyfikator zalogowanego użytkownika , po to żeby wiedzieć jakie dany użytkownik ma typy praw i żeby potem stworzyć odpowiednie menu w oparciu o wygenerowana tablice zawierającą prawa użytkownika.



komentarze

Copyright © 2008-2010 EPrace oraz autorzy prac.