Отчет по дисциплине «Базы данных», лабораторная работа №3 «Использование субд mysql» icon

Отчет по дисциплине «Базы данных», лабораторная работа №3 «Использование субд mysql»



НазваниеОтчет по дисциплине «Базы данных», лабораторная работа №3 «Использование субд mysql»
студент группы С-55
Дата конвертации18.11.2012
Размер156.14 Kb.
ТипОтчет
скачать >>>

Московский государственный институт электроники и математики

Кафедра электронно-вычислительной аппаратуры


Отчет по дисциплине «Базы данных»,

лабораторная работа №3

«Использование СУБД MySQL»


Выполнил:

студент группы С-55

Шурупов Дмитрий


Принял:

профессор Зарудный Дмитрий Иванович


Москва 2006

1. Введение 3

1.1. Что такое MySQL? 3

1.2. Основные достоинства MySQL 4

1.3. Ввод запросов 5

2. Цель и задачи лабораторной работы 8

3. Подготовка к выполнению 9

4. Выполнение 10

4.1. Создание базы данных 10

Запрос 1. Создание новой базы данных 10

4.2. Создание таблицы 10

Запрос 2. Создание новой таблицы 10

4.3. Добавление данных в таблицу 11

Запрос 3. Добавление записей в таблицу 12

Запрос 4. Копирование записей в другую таблицу 12

4.4. Выборка данных из таблицы 13

Запрос 5. Выборка данных из таблицы по условию, наложенному, на столбец reg_date 14

Запрос 6. Выборка записей из столбца gos_number по минимальному значению. 14

4.5. Изменение данных в таблице 15

Запрос 7. Увеличение номера в 1.5 раза 15

Запрос 8. Удаление столбца из таблицы 15

Запрос 9. Добавление нового столбца в таблицу 16

Запрос 10. Добавление записей в отдельный столбец 16

4.6. Удаление данных из таблицы 17

Запрос 11. Удаление записей из таблицы по заданному условию 17

Запрос 12. Удаление всех записей из таблицы 17

Запрос 13. Удаление таблицы 17

4.7. Защита данных в СУБД MySQL 19
^



1. Введение

1.1. Что такое MySQL?


База данных представляет собой структурированную совокупность данных. Эти данные могут быть любыми — от простого списка предстоящих покупок до перечня экспонатов картинной галереи или огромного количества информации в корпоративной сети. Для записи, выборки и обработки данных, хранящихся в компьютерной базе данных, необходима система управления базой данных, каковой и является ПО MySQL. Поскольку компьютеры замечательно справляются с обработкой больших объемов данных, управление базами данных играет центральную роль в вычислениях. Реализовано такое управление может быть по-разному — как в виде отдельных утилит, так и в виде кода, входящего в состав других приложений.

MySQL — это система управления реляционными базами данных.

В реляционной базе данных данные хранятся не все скопом, а в отдельных таблицах, благодаря чему достигается выигрыш в скорости и гибкости.
Таблицы связываются между собой при помощи отношений, благодаря чему обеспечивается возможность объединять при выполнении запроса данные из нескольких таблиц. SQL как часть системы MySQL можно охарактеризовать как язык структурированных запросов плюс наиболее распространенный стандартный язык, используемый для доступа к базам данных.

Программное обеспечение MySQL — это ПО с открытым кодом.

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

1.2. Основные достоинства MySQL


Перечислим основные достоинства пакета MySQL:

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

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

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

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

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

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

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

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

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

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

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

  • Все данные хранятся в формате ISO-8859-1.

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

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

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

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

1.3. Ввод запросов


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

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

Ниже приведена простая команда, запрашивающая у сервера информацию о его версии и текущей дате:





Этот запрос иллюстрирует следующие особенности MySQL:

Команда обычно состоит из SQL-выражения, за которым следует точка с запятой. (Из этого правила есть и исключения — команды без точки с запятой. Одним из них является команда QUIT.)

Когда пользователь вводит команду, MySQL отправляет ее серверу для выполнения и выводит на экран сначала результаты, а затем — новую строку mysql>, что означает готовность к выполнению новых команд.

MySQL выводит результаты работы запроса в виде таблицы (строк и столбцов). В первой строке этой таблицы содержатся заголовки столбцов, а в следующих строках — собственно результаты. Обычно заголовками столбцов становятся имена, полученные из таблиц базы. Если же извлекается не столбец таблицы, а значение выражения (как это происходит в приведенном выше примере), MySQL дает столбцу имя запрашиваемого выражения.

MySQL сообщает количество возвращаемых строк и время выполнения запроса, что позволяет в некоторой степени составить представление о производительности сервера. Эти значения обычно весьма впечатляют, так как представляют обычное (а не машинное время), кроме того, на них оказывает влияние загрузка сервера и скорость работы сети.

Для ввода ключевых слов можно использовать любой регистр символов. Приведенные ниже запросы абсолютно идентичны:

mysql> SELECT VERSION(), CURRENT_DATE;

mysql> select version(), current_date;

mysql> SeLeCt vErSiOn(), cuRRent_DaTE;

Команды, представленные выше, были относительно короткими и состояли из одной строки. В одну строку можно поместить и несколько команд. Но каждая из них должна заканчиваться точкой с запятой:





Вводить все команды в одну строку совсем не обязательно, так как создание длинных команд, занимающих несколько строк, не вызывает никаких проблем. Для MySQL признаком завершения выражения является точка с запятой, а не конец строки (другими словами, MySQL принимает команды без форматирования: строки с командами собираются, но не исполняются до тех пор, пока интерпретатор не обнаружит точку с запятой).

Если нужно отменить исполнение набираемой команды, можно дать команду \c:





После выполнения ввода команды \c, приглашение (prompt) снова принимает вид mysql>, показывая, что СУБД снова перешла в режим ожидания.

^

2. Цель и задачи лабораторной работы


Целью данной лабораторной работы является получение навыков работы с базами данным средствами СУБД MySQL. Необходимо создать следующие виды запросов:

  1. Запрос на создание базы данных.

  2. Запрос на создание таблицы.

  3. Запрос на добавление данных в таблицу.

  4. Запрос на выборку данных из таблицы.

  5. Запрос на изменение данных в таблице.

  6. Запрос на удаление данных из таблицы.

  7. Защита данных в СУБД MySQL.



^

3. Подготовка к выполнению


Перед выполнением лабораторной работы сначала необходимо запустить сервер СУБД. Для этого следует в командной строке дать следующую команду (будем считать, что СУБД MySQL установлена на диск C: в папку \mysql):

c:\mysql\bin\mysqld-nt.exe --basedir c:/mysql

Также следует запустить клиентскую часть СУБД:

c:\mysql\bin\mysql.exe --user=root mysql

Параметр user=root необходим для того, чтоб получить привилегии пользователя root при работе с СУБД, в частности необходимую нам — ^ CREATE DATABASE.

Для удобства можно создать нового пользователя, наделив его всеми необходимыми привилегиями:


mysql> GRANT ALL PRIVILEGES ON *.*

-> TO shurup@localhost

-> IDENTIFIED BY ‘qwerty’ WITH GRANT OPTION;

Query OK, 0 rows affected (0.02 sec)

mysql> _


где shurup — имя нового пользователя, qwerty — пароль.

Даем команду:

mysql> \q

После чего снова запускаем клиентскую часть MySQL, использую только что созданную учетную запись:

c:\mysql\bin\mysql.exe --user=shurup --password qwerty

На экране должно появиться приглашение ввести пароль (в нашем примере это — qwerty):

Enter password: qwerty

После ввода система переходит в интерактивный режим и ожидает ввода запросов.
^

4. Выполнение

4.1. Создание базы данных


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

CREATE DATABASE <Название базы данных>;

Для подключения к БД служит команда USE:

USE <Название базы данных>;
^

Запрос 1. Создание новой базы данных




Пусть требуется создать и подключить базу данных ekonomic_police.


Теперь, создав и подключившись к базе данных, можно начать с ней работать.
^

4.2. Создание таблицы


Таблицы базы данных создаются с помощью команды CREATE TABLE. Эта команда создает пустую таблицу. Команда CREATE TABLE определяет имя таблицы и множество поименованных столбцов в указанном порядке. Для каждого столбца должен быть определен тип и, если это необходимо, размер. Каждая создаваемая таблица должна иметь, по крайней мере, один столбец.

Синтаксис команды CREATE TABLE имеет следующий вид:

CREATE TABLE <имя таблицы>

(<имя столбца> <тип данных>[(<размер>)]);
^

Запрос 2. Создание новой таблицы


Пусть требуется создать таблицу firm, содержащую информацию о городах и населенных пунктах и имеющую поля:

gos_number — государственный регистрационный номер(используем этот атрибут в качестве идентификатора первичного ключа);

ur_adress — юридический адрес;

name — название фирмы;

type — тип фирмы;

reg_date — дата регистрации фирмы;





Оператор определения таблицы может иметь следующий вид:


Рис. 1. Результат выполнения запроса 2.


Дав команду mysql> DESCRIBE firm;

получим информацию о созданной таблице:





^

4.3. Добавление данных в таблицу


Оператор вставки новых записей имеет форматы двух видов:

INSERT INTO <имя таблицы>

[(<список столбцов>)]

VALUES (<список значений>)

и

INSERT INTO <имя таблицы>

[(<список столбцов>)]

<предложение SELECT>

В первом формате оператор INSERT предназначен для ввода новых записей с заданными значениями в столбцах. Порядок перечисления имен столбцов должен соответствовать порядку значений, перечисленных в списке операнда VALUES. Если <список столбцов> опущен, то в <списке значений> должны быть перечислены все значения в порядке столбцов структуры таблицы.

Во втором формате оператор INSERT предназначен для ввода в заданную таблицу новых строк, отобранных из другой таблицы с помощью предложения SELECT.
^

Запрос 3. Добавление записей в таблицу






Создать запрос, добавляющий записи в таблицу firm.

^

Запрос 4. Копирование записей в другую таблицу


Создать таблицу firm_copy и скопировать в нее все записи таблицы firm.





Таким образом, была скопирована таблица firm.
^

4.4. Выборка данных из таблицы


Оператор выборки записей имеет формат вида:

SELECT [ALL | DISTINCT]

<список данных>

FROM <список таблиц>

[WHERE<условие выборки>]

[GROUP BY<имя столбца> [, < имя столбца >]…]

[HAVING<условие поиска>]

[ORDER BY<спецификация> [, < спецификация >]…]

Это наиболее важный оператор из всех операторов SQL. Функциональные возможности его огромны. Рассмотрим основные из них.

Оператор SELECT позволяет производить выборку и вычисления над данными из одной или нескольких таблиц. Результатом выполнения оператора является ответная таблица, которая может иметь (ALL), или не иметь (DISTINCT) повторяющиеся строки. По умолчанию в ответную таблицу включаются все строки, в том числе и повторяющиеся. В отборе данных участвуют записи одной или нескольких таблиц, перечисленных в списке операнда FROM.

Список данных может содержать имена столбцов, участвующих в запросе, а также выражения над столбцами. В простейшем случае в выражениях можно записывать имена столбцов, знаки арифметических операций (+, −, *, /), константы и круглые скобки. Если в списке данных записано выражение, то наряду с выборкой данных выполняются вычисления, результаты которого попадают в новый (создаваемый) столбец ответной таблицы.

При использовании в списках данных имен столбцов нескольких таблиц для указания принадлежности столбца некоторой таблице применяют конструкцию вида: <имя таблицы>.<имя столбца>.

Операнд WHERE задает условия, которым должны удовлетворять записи в результирующей таблице. Выражение <условие выборки> является логическим. Его элементами могут быть имена столбцов, операции сравнения, арифметические операции, логические связки (И, ИЛИ, НЕТ), скобки, специальные функции LIKE, IN и т. д.
^

Запрос 5. Выборка данных из таблицы по условию, наложенному, на столбец reg_date


Пусть требуется найти те населенные пункты в таблице firm, дата регистрации которых раньше, чем 31.12.2003 и отсортировать по названию фирмы.

Выполним запрос на выборку:





Рис. 2. Результат выполнения запроса 5.

^

Запрос 6. Выборка записей из столбца gos_number по минимальному значению.


Пусть требуется найти фирму с самым маленьким государственным регистрационным номером.

Запрос:





Рис. 3. Результат выполнения запроса 6.

^

4.5. Изменение данных в таблице


Оператор изменения записей имеет формат вида:

UPDATE <имя таблицы>

SET <имя столбца> = {<выражение>}

[, SET <имя столбца> = {<выражение>}…]

[WHERE < условие >]

Выполнение оператора ^ UPDATE состоит в изменении значений в определенных операндом SET столбцах таблицы для тех записей, которые удовлетворяют условию, заданному операндом WHERE.
^

Запрос 7. Увеличение номера в 1.5 раза


Пусть требуется увеличить значение государственного регистрационного номера в 1,5 раза.





Рис. 4. Результат выполнения запроса 7.

^

Запрос 8. Удаление столбца из таблицы


Путь из данной таблицы требуется удалить столбец.




Рис. 5. Результат выполнения запроса 8.

^

Запрос 9. Добавление нового столбца в таблицу


Пусть в данную таблицу требуется добавить новый столбец.




Рис. 6. Результат выполнения запроса 9.

^

Запрос 10. Добавление записей в отдельный столбец


Требуется в существующий пустой столбец ur_adress добавить соответствующие записи.




Рис. 7. Результат выполнения запроса 10.

^

4.6. Удаление данных из таблицы


Оператор удаления записей имеет формат вида:

DELETE FROM <имя таблицы>

[WHERE <условие>]

Результатом выполнения оператора DELETE является удаление из указанной таблицы строк, которые удовлетворяют условию, определенному операндом WHERE. Если необязательный операнд WHERE опущен, т. е. условие отбора удаляемых записей отсутствует, удалению подлежат все записи таблицы.
^

Запрос 11. Удаление записей из таблицы по заданному условию


Удалить из таблицы firm записи о тех фирмах, тип которых ООО.





Рис. 8. Результат выполнения запроса 11.
^

Запрос 12. Удаление всех записей из таблицы


Удалить из firm все записи.


Запрос 13. Удаление таблицы


Удалить таблицу firm.



^

4.7. Защита данных в СУБД MySQL


Для обеспечения защиты данных от несанкционированного доступа в СУБД MySQL используются команды GRANT и REVOKE. Они позволяют системным администраторам создавать пользователей MySQL, а также предоставлять права пользователям или лишать их прав на четырех уровнях привилегий:

  • Глобальный уровень. Глобальные привилегии применяются ко всем базам данных на указанном сервере. Эти привилегии хранятся в таблице mysql.user.

  • Уровень базы данных. Привилегии базы данных применяются ко всем таблицам указанной базы данных. Эти привилегии хранятся в таблицах mysql.db и mysql.host.

  • Уровень таблицы. Привилегии таблицы применяются ко всем столбцам указанной таблицы. Эти привилегии хранятся в таблице mysql.tables_priv.

  • Уровень столбца. Привилегии столбца применяются к отдельным столбцам указанной таблицы. Эти привилегии хранятся в таблице mysql.columns_priv.

Если привилегии предоставляются пользователю, которого не существует, то этот пользователь создается.

^ GRANT и REVOKE имеют следующий синтаксис:

GRANT priv_type [(column_list)] [, priv_type [(column_list)] ...]

ON {tbl_name | * | *.* | db_name.*}

TO user_name [IDENTIFIED BY [PASSWORD] 'password']

[, user_name [IDENTIFIED BY 'password'] ...]

[REQUIRE

[{SSL| X509}]

[CIPHER cipher [AND]]

[ISSUER issuer [AND]]

[SUBJECT subject]]

[WITH [GRANT OPTION | MAX_QUERIES_PER_HOUR # |

MAX_UPDATES_PER_HOUR # |

MAX_CONNECTIONS_PER_HOUR #]]


REVOKE priv_type [(column_list)] [, priv_type [(column_list)] ...]

ON {tbl_name | * | *.* | db_name.*}

FROM user_name [, user_name ...]

В таблице приведен список возможных значений параметра priv_type для операторов ^ GRANT и REVOKE:

ALL [PRIVILEGES] — задает все простые привилегии, кроме WITH GRANT OPTION.

ALTER — разрешает использование ALTER TABLE.

CREATE — разрешает использование CREATE TABLE.

CREATE TEMPORARY TABLES — разрешает использование CREATE TEMPORARY TABLE.

DELETE — разрешает использование DELETE.

DROP — разрешает использование DROP TABLE.

EXECUTE — разрешает пользователю запускать хранимые процедуры (для MySQL 5.0).

FILE — разрешает использование SELECT ... INTO OUTFILE и ^ LOAD DATA INFILE.

INDEX — разрешает использование CREATE INDEX и DROP INDEX.

INSERT — разрешает использование INSERT.

LOCK TABLES — разрешает использование LOCK TABLES на таблицах, для которых есть привилегия SELECT.

PROCESS — разрешает использование SHOW FULL PROCESSLIST.

REFERENCES — зарезервировано для использования в будущем.

^ RELOAD — разрешает использование FLUSH.

REPLICATION CLIENT — предоставляет пользователю право запрашивать местонахождение головного и подчиненных серверов.

^ REPLICATION SLAVE — необходимо для подчиненных серверов при репликации (для чтения информации из бинарных журналов головного сервера).

SELECT — разрешает использование SELECT.

SHOW DATABASES — выводит все базы данных.

SHUTDOWN — разрешает использование mysqladmin shutdown.

^ SUPER — позволяет установить одно соединение (один раз), даже если достигнуто значение max_connections, и запускать команды CHANGE MASTER, KILL thread, mysqladmin debug, PURGE MASTER LOGS и SET GLOBAL.

UPDATE — разрешает использование UPDATE.

USAGE — синоним для «без привилегий».

Чтобы лишить пользователя привилегий, предоставленных командой GRANT, можно воспользоваться значением priv_type в GRANT OPTION:

mysql> REVOKE GRANT OPTION ON ... FROM ...;

Для таблицы можно указать только следующие значения priv_type: ^ SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, GRANT, INDEX и ALTER.

Для столбца можно указать только следующие значения priv_type (при использовании оператора column_list): ^ SELECT, INSERT и UPDATE.

Таким образом, СУБД MySQL позволяет ограничить доступ пользователю не только к таблицам, но и к каждому столбцу таблицы.

Новых пользователей можно добавлять, используя команду GRANT.

Рассмотрим несколько примеров:

c:\mysql\bin\mysql.exe user=root MySQL




John — полноценный суперпользователь — он может подсоединяться к серверу откуда угодно, но должен использовать для этого пароль some_pass.




Jens может использовать команды ^ CREATE, INSERT, UPDATE, DELETE, DROP, SELECT. Иными словами, он может делать все, необходимое для работы с базой данных. Он также может подсоединяться к серверу откуда угодно, но должен использовать для этого пароль some_pass2.




Jorg может подсоединяться к серверу откуда угодно, но должен использовать для этого пароль some_pass3. И его привилегии ограничены только использованием команды SELECT.

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




В данном примере пользователь user получает доступ к столбцам name, type таблицы firm из базы данных ekonomic_police.

Этот пример демонстрирует гибкость системы разграничения привилегий доступа к данным СУБД MySQL.

При разграничении привилегий следует помнить следующее:

  • Нельзя предоставить другому пользователю привилегию, которой нет у вас самого. Привилегия GRANT позволяет предоставлять только те привилегии, которыми вы обладаете;

  • Если при создании нового пользователя не указать оператор IDENTIFIED BY, будет создан пользователь без пароля. Это ненадежно с точки зрения безопасности;

  • Не следует назначать привилегии ALTER обычным пользователям. Это дает пользователю возможность разрушить систему привилегий путем переименования таблиц!




Похожие:

Отчет по дисциплине «Базы данных», лабораторная работа №3 «Использование субд mysql» iconОтчет по дисциплине «Базы данных» лабораторная работа №3 «Использование субд mysql»
Запрос Выборка данных из таблицы по условию, наложенному, на столбец reg date 14
Отчет по дисциплине «Базы данных», лабораторная работа №3 «Использование субд mysql» iconОтчет по дисциплине «Базы данных» лабораторная работа №3 «Использование субд mysql»
Определение сущностей предметной области (таблиц), которые должна содержать база данных
Отчет по дисциплине «Базы данных», лабораторная работа №3 «Использование субд mysql» iconОтчет по дисциплине «Базы данных» лабораторная работа №3 «Использование субд mysql»
Распространяется под gnu general Public License и под собственной коммерческой лицензией, на выбор. Помимо этого компания Mysql ab...
Отчет по дисциплине «Базы данных», лабораторная работа №3 «Использование субд mysql» iconОтчет о выполнении лабораторной работы №3 «Использование субд mysql 8» (по дисциплине «Базы данных»)
Запрос Выборка данных из таблицы по условию, наложенному, на столбец population 14
Отчет по дисциплине «Базы данных», лабораторная работа №3 «Использование субд mysql» iconОтчет по дисциплине «Базы данных» лабораторная работа №1 «субд microsoft Access 2003»
Определение сущностей предметной области (таблиц), которые должна содержать база данных
Отчет по дисциплине «Базы данных», лабораторная работа №3 «Использование субд mysql» iconОтчет по курсовой работе «Проектирование и разработка базы данных о театрах средствами субд mysql»
В качестве программного приложения использовалась Система управления реляционными базами данных Mysql. Для создания интерфейса использовался...
Отчет по дисциплине «Базы данных», лабораторная работа №3 «Использование субд mysql» iconОтчет по курсовой работе «Проектирование и разработка базы данных о театрах средствами субд mysql»
В качестве программного приложения использовалась Система управления реляционными базами данных Mysql. Для создания интерфейса использовался...
Отчет по дисциплине «Базы данных», лабораторная работа №3 «Использование субд mysql» iconОтчет по дисциплине «Базы данных» лабораторная работа №1 «субд microsoft Access 2003»
Сразу после запуска Access можно воспользоваться диалоговым окном Microsoft Access. Выбрав «Новая база данных», переходим к созданию...
Отчет по дисциплине «Базы данных», лабораторная работа №3 «Использование субд mysql» iconЛабораторная работа по дисциплине «Информационные системы в экономике» «Создание и использование многотабличной базы данных в среде субд ms access»
Лабораторная работа должна быть представлена в распечатанном виде и содержать экранные формы (см рис. 1) по каждому пункту, а также...
Отчет по дисциплине «Базы данных», лабораторная работа №3 «Использование субд mysql» iconОтчет по дисциплине «Базы данных» лабораторная работа №2 «Язык sql в субд microsoft Access 2003»
...
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©rushkolnik.ru 2000-2015
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы