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 ?
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 има четири нива на привилегии:
Преди създаване на потребител трябва да сме наясно с какви привилегии ще разполага. Най- често срещаните случай са създаване на потребител с пълни привилегии или само с привилегии за четене.
Пример за създаване на потребител “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
|
Авторите на сайта, както и техните сътрудници запазват авторските права върху собствените си материали публикувани тук,
но те са copyleft т.е. могат свободно да бъдат копирани и разпространявани с изискването изрично да се упоменава името на автора,
както и да се публикува на видно място, че те са взети от оригиналния им URL-адрес на този сървър (http://www.linux-bg.org). Авторските права на преводните материали принадлежат на техните автори. Ако с публикуването тук на някакъв материал неволно са нарушени нечии права - след констатирането на този факт материалът ще бъде свален.
All trademarks, logos and copyrights mentioned on this site are the property of their respective owners.
|