Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мет.указание_Web-программирование_ПОАС.doc
Скачиваний:
85
Добавлен:
26.02.2016
Размер:
548.86 Кб
Скачать

6. Работа с субд MySql

MySQL разработал Михаэль Видениус (Michael Widenius, monty@analytikerna.se). MySQL является относительно небольшой и быстрой реляционной СУБД основанной на традициях Hughes Technologies Mini SQL (mSQL) /12/.

Последнюю версию MySQL можно скачать с www.tcx.se.

6.1. Особенности

СУБД MySQLхарактеризуется свойствами:

1. Многопоточность. Поддержка нескольких одновременных запросов.

2. Оптимизация связей с присоединением многих данных за один проход.

3. Записи фиксированной и переменной длины.

4. ODBC драйвер в комплекте с исходником

5. Гибкая система привилегий и паролей.

6. До 16 ключей в таблице. Каждый ключ может иметь до 15 полей.

7. Поддержка ключевых полей и специальных полей в операторе CREATE.

8. Поддержка чисел длинной от 1 до 4 байт (ints, float, double, fixed), строк переменной длины и меток времени.

9. Интерфейс с языками C и perl.

10. Основанная на потоках, быстрая система памяти.

11. Утилита проверки и ремонта таблицы ( isamchk).

12. Все данные хранятся в формате ISO8859_1.

13. Все операции работы со строками не обращают внимания на регистр символов в обрабатываемых строках.

14. Псевдонимы применимы как к таблицам, так и к отдельным колонкам в таблице.

15. Все поля имеют значение по умолчанию. INSERT можно использовать на любом подмножестве полей.

16. Легкость управления таблицей, включая добавление и удаление ключей и полей

6.2. Основные команды

Технология реляционных баз данных предполагает структурирование данных в таблицах, приведенных к нормальной форме. При этом связь между таблицами осуществляется с помощью ключевых полей. Структура таблиц с указанием типов данных в столбцах совместно со связями между таблицами образует структуру базы данных.

Для создания баз данных и таблиц в них, для настройки прав доступа к данным и манипулирования ими в СУБД MySQL применяется программа-монитор mysql. Запустив ее из командной строки, вы подключаетесь к СУБД с именем текущего пользователя операционной системы, если он имеет право на подключение. Для выбора базы данных применяется команда use dbname, где dbname - имя базы данных. Можно указать базу данных, имя пользователя и пароль при вызове монитора:

Mysql dbname -h hostname -u username -p password

Собственно пароль в командной строке лучше не вводить, а оставить ключ -p, тогда пароль будет запрошен дополнительно. Для выхода из монитора применяется команда exit или quit.

Для создания базы данных применяется команда create database dbname, а для создания таблиц - create table tablename (columns), где в скобках перечисляются названия, типы данных и другие атрибуты полей, например:

Create table books (id int unsigned not null auto_increment primary key,

author char(30), title char(60), price float(5,2));

Для устранения ошибок при вводе длинных команд рекомендуется записывать их в текстовые файлы, запускаемые из командной строки:

Mysql dbname -u user -p < create.sql

Для просмотра списка созданных таблиц применяют команду show tables, а для просмотра структуры таблицы - команду describe tablename.

Для ввода, извлечения, изменения и удаления данных из таблиц применяют операторы структурированного языка запросов SQL: insert, select, update и delete. Для отбора данных по условию, уточнения изменяемых и удаляемых записей применяется конструкция where, для группирования - group by, для упорядочивания - order by. Для удаления таблиц служит команда drop table tablename.

Для обеспечения безопасности хранения данных и контроля прав доступа к ним в СУБД MySQL существует специальная база данных mysql, в которой имеется пять таблиц: user, host, db, tables_priv и columns_priv. Таблица user предназначена для определения, может ли пользователь подключаться к серверу MySQL и обладает ли он привилегиями администратора. В ней хранится имя хоста, с которого можно подключаться, имя пользователя и пароль, а также какие привилегии он имеет. Таблица db определяет, какие пользователи к каким таблицам и с каких хостов могут получить доступ. Таблица host дополняет таблицу db. Если пользователь должен подключаться к базе данных с нескольких хостов, то в таблице db для него не будет указано ни одного хоста - все они будут перечислены в таблице host. Таблицы tables_priv и columns_priv предназначены для хранения привилегий на уровне таблиц и уровне столбцов. Они работают подобно таблице db, но обеспечивают привилегии для таблиц в конкретной базе данных и столбцов в конкретной таблице. Основных привилегий 10, дающих право на выполнение операций select, insert, update, delete, create, drop, grant, references, index и alter. В таблице user их на 4 больше: reload, shutdown, process и file, которые нужны для администрирования СУБД.

Для установки прав доступа применяется команда grant:

Grant select, insert, delete, update on user.* to user@host identified by 'password';

Для шифрования пароля применяется функция password:

identified by password('mypass')

Чтобы отобрать привилегии, применяют команду revoke:

Revoke all on dbname.* from user;

Для сохранения в текстовых файлах структуры и содержимого базы данных применяют утилиту mysqldump:

Mysqldump -u user -p dbname >file.type /13, 14/.