Кратко
ръководство за МySQL
Написана
от M.Petrov
Какво е MySQL
?
Създаване на бази
данни и таблици
Контрол на потребители
и привилегии
Добавяне,
извличане, актуализиране и изтриване
на данни
Придобиване на
метадaнни за база данни
1. Какво
е MySQL ?
MySQL е много
бърза, стабилна система за управление
на релационни бази данни (Relational
Management Systems-
RDBMS). Базата данни позволява ефективно
съхранение, претърсване, сортиране и
извличане на данни. MySQL контролира
достъпа до вашите данни и позволява
едновременна работа на множество
потребители, бърз достъп, както и
осигуряване на достъп само на оторизираните
за това потребители. Използва се SQL
(Structured Query Language, Структуриран език за
заявки) които е стандартният световно
разпространен език за заявки към бази
данни. MySQL се разпространява открито от
1996 г. , но началото на разработката му
датира чак от 1979 година. Няколко пъти е
печелил наградата "Избор на читателите"
на Linux Journal. MySQL се разпространява със
лиценз за отворен код, но съществуват
и комерсиални лицензи.
2. Създаване
на бази данни и таблици
Преди създаване на база
от данни е необходимо да се влезе в MySQL
с административен акаунт-
root . Влизането в системата става по
следния начин:
alpha:~# mysql -u root
-p
Enter password:
Welcome to the MySQL
monitor. Commands end with ; or \g.
Your MySQL connection
id is 7
Server version: 5.0.32
Type 'help;' or '\h'
for help. Type '\c' to clear the buffer.
mysql>
След влизане в MySQL
ще създадем база данни “dhstudio”
:
mysql> create
database dhstudio;
Query OK, 1 row
affected (0.00 sec)
Сега имаме възможност
да проверим дали новата база данни е
създадена коректно по следния начин:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| dhstudio |
| mysql |
| test |
+--------------------+
3 rows in
set (0.01 sec)
След създаване на база
данни ще създаден една таблица “knigi”
:
mysql> CREATE
TABLE `knigi` (
`knigi_id` int(5) unsigned NOT NULL
auto_increment,
`ddate` date NOT NULL default
'0000-00-00',
`ttime` time NOT NULL default
'00:00:00',
`snimka` text NOT NULL,
`info` text NOT NULL,
PRIMARY KEY (`knigi_id`)
) ENGINE=MyISAM DEFAULT
CHARSET=latin1;
За да проверим дали
таблицата “knigi” е създадена
коректно трябва да изпълним командата:
show tables; :
mysql> show tables;
+-----------------------+
| Tables_in_dhstudio |
+-----------------------+
| knigi |
+-----------------------+
1 row in set (0.00 sec)
3. Контрол на потребители
и привилегии
Една MySQL
система може да има много потребители.
От съображения за сигурност супер
потребителя root трябва
да бъде използван само за административни
цели. Поради същите съображения е редно
всеки които иска да използва системата
да има потребител. Командите за задаване
и отнемане на права в MySQL
потребители са GRANT и
REVOKE. В MySQL
има четири нива на привилегии:
Глобални (Global)
База данни (Database)
Таблица (Table)
Колона (Column)
Преди създаване на
потребител трябва да сме наясно с какви
привилегии ще разполага. Най- често
срещаните случай са създаване на
потребител с пълни привилегии или само
с привилегии за четене.
Пример за създаване на
потребител “dhstudio” с
пълни привилегии върху база данни
“dhstudio”:
mysql> GRANT ALL ON
dhstudio.* TO dhstudio identified by 'dhstudiopass' with grant
option;
Query OK, 0 rows
affected (0.00 sec)
Пример за създаване на
потребител “dhstudio” с
привилегии само за разглеждане:
mysql> GRANT select
ON dhstudio.* TO dhstudio identified by 'dhstudiopass' with grant
option;
Query OK, 0 rows
affected (0.00 sec)
Пример за отнемане на
всички права на потребител “dhstudio”:
mysql> REVOKE ALL ON
dhstudio.* from dhstudio;
Query OK, 0 rows
affected (0.00 sec)
4. Добавяне,
извличане, актуализиране и изтриване
на данни
След като създадохме
база данни с таблица и потребител с
пълни привилегии върху тях нека добавим
данни с командата “insert”:
mysql> INSERT INTO
knigi(ddate,ttime,snimka,info) VALUES
('4891-09-07','09:07:09','/images/image-2.jpg','Info book');
Query OK, 1 row
affected (0.00 sec)
Пример за извличане на
данни:
mysql>
select * from
knigi;
+----------+--------------+------------+-------------------------+------------+
| knigi_id
| ddate | ttime |
snimka | info |
+----------+--------------+------------+-------------------------+------------+
| 1 | 4891-09-07 |
09:07:09 | /images/image-2.jpg | Info book |
+----------+--------------+------------+-------------------------+------------+
1 row in set (0.00 sec)
Пример за извличане на
данни по критерии:
mysql>
select * from
knigi where ddate='2007-10-10';
+----------+--------------+------------+-------------------------+------------+
| knigi_id
| ddate | ttime |
snimka | info |
+----------+--------------+------------+-------------------------+------------+
| 1 | 2007-10-10 |
09:07:09 | /images/image-2.jpg | Info book |
+----------+--------------+------------+-------------------------+------------+
1 row in set (0.00 sec)
Пример за актуализиране
на данни:
mysql> update knigi
set info='New info' where knigi_id='1';
Query OK, 1 row
affected (0.00 sec)
Rows matched: 1
Changed: 1 Warnings: 0
Пример за изтриване на
данни:
mysql> delete from
knigi where knigi_id='1;
Query OK, 1 row
affected (0.00 sec)
5. Придобиване
на метадaнни за база данни
Базите данни съдържат
данни, а информацията за начина им на
структуриране се нарича метаданни. До
момента използвахме командата “show”
за да разберем какви таблици и бази
данни има. Нека разгледаме още една
възможност на “show”, а
именно извеждане на информация за
колоните в таблицата:
mysql> show columns
from knigi;
+----------+-----------------+------+-----+------------+----------------+
| Field | Type | Null |
Key | Default | Extra |
+----------+-----------------+------+-----+------------+----------------+
| knigi_id | int(5)
unsigned | NO | PRI | NULL | auto_increment |
| ddate | date | NO | |
0000-00-00 | |
| ttime | time | NO | |
00:00:00 | |
| snimka | text | NO |
| | |
| info | text | NO | |
| |
+----------+-----------------+------+-----+------------+----------------+
5 rows in set (0.00
sec)
Командата “show”
може да приема и незадължителна ключова
дума “FULL”, която предизвиква
показване на допълнителна информация
(колации, привилегии и коментари):
mysql> show full columns from
knigi\G
*************************** 1. row
***************************
Field: knigi_id
Type: int(5) unsigned
Collation: NULL
Null: NO
Key: PRI
Default: NULL
Extra: auto_increment
Privileges:
select,insert,update,references
Comment:
*************************** 2. row
***************************
Field: ddate
Type: date
Collation: NULL
Null: NO
Key:
Default: 0000-00-00
Extra:
Privileges:
select,insert,update,references
Comment:
*************************** 3. row
***************************
Field: ttime
Type: time
Collation: NULL
Null: NO
Key:
Default: 00:00:00
Extra:
Privileges:
select,insert,update,references
Comment:
*************************** 4. row
***************************
Field: snimka
Type: text
Collation: latin1_swedish_ci
Null: NO
Key:
Default:
Extra:
Privileges:
select,insert,update,references
Comment:
*************************** 5. row
***************************
Field: info
Type: text
Collation: latin1_swedish_ci
Null: NO
Key:
Default:
Extra:
Privileges:
select,insert,update,references
Comment:
5 rows in set (0.00 sec)
Нека разгледаме друга
конструкция за показване на метаданни
която е еквивалентна на “show
columns”. Следните две конструкции
показват една и съща информация.
В тази статия
се запознахме с MySQL и някои
основни операции като създаване на бази
данни и таблици, контрол на потребителите,
добавяне, извличане, актуализиране и
изтриване на данни както и придобиване
на метадaнни за база данни. Ако искате
да научите повече може да посетите уеб
сайта на MySQL на адрес:
www.mysql.com