LINUX-BG   Адрес : http://www.linux-bg.org
Кратко ръководство за МySQL
От: M.Petrov
Публикувана на: 11-06-2007
Адрес на статията: http://www.linux-bg.org/cgi-bin/y/index.pl?page=article&id=advices&key=393859851

Кратко ръководство за МySQL

Написана от M.Petrov


  1. Какво е MySQL ?

  2. Създаване на бази данни и таблици

  3. Контрол на потребители и привилегии

  4. Добавяне, извличане, актуализиране и изтриване на данни

  5. Придобиване на метад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”. Следните две конструкции показват една и съща информация.

  • show columns from knigi; (беше разгледана по- горе)

  • describe knigi;


В тази статия се запознахме с MySQL и някои основни операции като създаване на бази данни и таблици, контрол на потребителите, добавяне, извличане, актуализиране и изтриване на данни както и придобиване на метадaнни за база данни. Ако искате да научите повече може да посетите уеб сайта на MySQL на адрес: www.mysql.com

<< | >>

Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук, но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора, както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.

All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
Linux is copyright by Linus Torvalds.
© Линукс за българи ЕООД 2007
© Slavei Karadjov 1999 - 2006

All rights reserved.

Изпълнението отне: 0 wallclock secs ( 0.15 usr + 0.04 sys = 0.19 CPU)