Скачать презентацию Интернет технологии в системах и сетях My SQL Скачать презентацию Интернет технологии в системах и сетях My SQL

Lec_s2_07_mysql_00.ppt

  • Количество слайдов: 33

Интернет технологии в системах и сетях My. SQL и PHP Интернет технологии в системах и сетях My. SQL и PHP

Работа с My. SQL Работа с My. SQL

Структура базы данных Сначала давайте рассмотрим структуру баз данных. Схематично она выглядит следующим образом: Структура базы данных Сначала давайте рассмотрим структуру баз данных. Схематично она выглядит следующим образом: l база данных 1 l l l база данных 2 l l l таблица 2. 1. . . база данных n l l таблица 1. 1 таблица 1. 2. . . таблица 1. n таблица n. 1 Таким образом, данные содержатся в таблицах, которые в свою очередь объединены в группу базы данных. Тем самым, чтобы начать работу с My. SQL нам требуется прежде всего создать базу данных, с которой мы будем взаимодействовать.

Команда: CREATE l l l Итак, в консоли пишем запрос: CREATE database myphp; Мы Команда: CREATE l l l Итак, в консоли пишем запрос: CREATE database myphp; Мы говорим My. SQL создать базу данных с именем "myphp", причем регистр ключевых слов несущественен, но порядок слов в запросе не может быть изменен. Теперь выберем только что созданную базу для работы с ней: USE myphp;

Визуальный интерфейс создания БД Визуальный интерфейс создания БД

Создание таблицы l l l l Теперь нам необходимо создать таблицу, с которой мы Создание таблицы l l l l Теперь нам необходимо создать таблицу, с которой мы будем работать. Пусть это будет таблица "lessons". CREATE table lessons ( id int auto_increment primary key, title varchar(250), body mediumtext, pub_datetime, enable enum('0', '1') default '1' );

Создание таблицы l Мы создали таблицу lessons с 5 полями: l l l id Создание таблицы l Мы создали таблицу lessons с 5 полями: l l l id урока, представяющий собой уникальное число большее нуля, которое будет генерироваться автоматически при добавлении новой записи в таблицу путем увеличения максимального id на единицу (auto_increment); title - название урока длиной до 250 символов; body - собственно, сам урок, представляющий собой текст; pub_date - дата и время публикации урока; enable - флаг, который указывает, доступен ли урок посетителям, поле может иметь только два значения: '0' и '1', причем по умолчанию установлено '1'.

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

Команда INSERT Для добавления в таблицу новой записи используется следующая команда: l INSERT INTO Команда INSERT Для добавления в таблицу новой записи используется следующая команда: l INSERT INTO lessons VALUES ( "", "Начало", "Прежде всего нужно сказать: PHPскрипт для его выполнения должен быть заключен в следующие последовательности символов. . . ", 'now()', "1" ); l

Команда INSERT l l В таблице lessons появилась новая запись, значения которой для каждого Команда INSERT l l В таблице lessons появилась новая запись, значения которой для каждого поля указываются в скобках после слова values (. . . ). Отметим, что мы пропустили ("") поле, которое заполняется автоматически - это поле id. Обратите внимание, на My. SQL-функцию now(), которая возвращает текущее значение времени. Но чтобы не писать пустых строк, также можно указать My. SQL, в какие именно поля таблицы мы хотим сохранить данные: INSERT into lessons (title, body) values ("Формы всего сущего", "На прошлом уроке мы научились передавать данные в php скрипт. . . ");

Визуальный интерфейс добавления записей в таблицу Визуальный интерфейс добавления записей в таблицу

Команда SELECT Для проверки содержимого таблицы используем команду SELECT, которая выводит указанные данные на Команда SELECT Для проверки содержимого таблицы используем команду SELECT, которая выводит указанные данные на экран. SELECT * from lessons; l Значок "*" указывает, что мы хотим увидеть все поля таблицы lessons. Но также можно производить и выборочный вывод: SELECT title, pub_date from lessons; l

Визуальный интерфейс просмотра записей таблицы Визуальный интерфейс просмотра записей таблицы

Выбор по условию и сортировка l l Есть возможность выбирать не все записи в Выбор по условию и сортировка l l Есть возможность выбирать не все записи в таблице, а удовлетворяющие определенным условиям: SELECT title FROM lessons WHERE id = '1'; Тем самым мы выберем название только первого урока. Также мы можем отсортировать данные перед выводом, используя команду ORDER. SELECT id, title FROM lessons ORDER BY title; Сортировка в обратном порядке производиться путем указания директивы DESC.

Ограничений числа записей в результате запроса My. SQL позволяет ограничить количество записей для вывода. Ограничений числа записей в результате запроса My. SQL позволяет ограничить количество записей для вывода. Для примера выведем id и название последнего добавленного урока, подразумевая, что мы не знаем, какой id он имеет: l SELECT id, title FROM lessons ORDER BY id DESC LIMIT 1; l

Формирование сложных запросов l Сначала мы отсортировали все записи по id в обратном порядке, Формирование сложных запросов l Сначала мы отсортировали все записи по id в обратном порядке, так что запись с максимальным id оказалась первой, и вывели только одну эту запись. Должна возвратиться таблица с id, равным 2, и title "Формы всего сущего".

Формирование сложных запросов l My. SQL также предоставляет функции COUNT(поле) для подсчета элементов, занесенных Формирование сложных запросов l My. SQL также предоставляет функции COUNT(поле) для подсчета элементов, занесенных в указанное поле, MAX(поле) и MIN(поле) для определения максимального и минимального элемента соответственно, а также SUM(поле) для подсчета суммы элементов поля. К примеру: SELECT COUNT(*), MAX(pub_date), SUM(id) FROM lessons;

Команда UPDATE l Предположим, что по какой-либо причине мы хотим на время скрыть урок Команда UPDATE l Предположим, что по какой-либо причине мы хотим на время скрыть урок 2 от посетителей. Для этого изменим поле enable, установив его равным нулю. UPDATE lessons SET enable = '0' WHERE id = 2; l Таким образом можно изменить любое поле таблицы.

Команда ALTER TABLE позволяет изменить уже созданную таблицу. Например, в нашей таблице lessons после Команда ALTER TABLE позволяет изменить уже созданную таблицу. Например, в нашей таблице lessons после поля body вставим поле author. ALTER TABLE lessons ADD author VARCHAR(200) DEFAULT ‘Евгений Артамонов' AFTER body; l А теперь удалим эту колонку: ALTER TABLE lessons DROP author; l Тем самым мы свободно можем манипулировать как создаваемыми объектами, так и уже давно созданными. l

Команда ALTER Команда ALTER

Этапы работы РНР с My. SQL Этапы работы РНР с My. SQL

Соединение с My. SQL l l Прежде, чем начать работу с базой данных, необходимо Соединение с My. SQL l l Прежде, чем начать работу с базой данных, необходимо создать соединение с сервером My. SQL. За это отвечает функция mysql_connect(), которая должна быть вызвана до каких-либо других функций работы с My. SQL, в противном случае они возвратят ошибки. Аналогом функции mysql_connect является функция mysql_pconnect. Их отличие состоит в том, что последняя открывает постоянное соединение с My. SQL, благодаря чему снижаются расходы времени и ресурсов на создание новых соединений. Это постоянное соединение не уничтожается ни функцией закрытия соединения, ни каким-либо другим образом. Использование этой функции требуется в случае, если вашему веб-приложению приходится часто обращаться к My. SQL (!mysql_pconnect работает только на сервере, где PHP установлен как модуль!).

Выбор или создание базы данных l l l Вторым шагом при работе с My. Выбор или создание базы данных l l l Вторым шагом при работе с My. SQL чаще всего становится выбор базы данных для дальнейшей работы, либо создание новой базы данных. Создание базы данных осуществляет функция mysql_create_db(). mysql_create_db(имя базы данных, [идентификатор соединения]); Имя базы данных может состоять из любых символов, используемых для задания имени директорий на сервере, исключая символы '/', '', '. '.

Выбор или создание базы данных Идентификатор соединения есть результат выполнения функции mysql_connect или mysql_pconnect. Выбор или создание базы данных Идентификатор соединения есть результат выполнения функции mysql_connect или mysql_pconnect. l Для дальшейшей работы с базой данных вы должны ее выбрать. Выбор базы данных осуществляется функцией mysql_select_db(). Ее синтаксис выглядит следующим образом: mysql_select_db(имя базы данных, [идентификатор соединения]); l

Запросы в My. SQL Универсальная функция для работы с My. SQL - mysql_query(). Она Запросы в My. SQL Универсальная функция для работы с My. SQL - mysql_query(). Она может заменить практически любую функцию работы с базами данных My. SQL, исключая mysql_connect() и mysql_close(). l В качестве одного из аргументов ей передается запрос My. SQL - наподобие тех, которыми мы занимались на прошлом занятии. l

Создание БД с помощью mysql_query() Например, с помощью нее мы можем создать базу данных, Создание БД с помощью mysql_query() Например, с помощью нее мы можем создать базу данных, не используя вышерассмотренную функцию mysql_create_db(). $link = mysql_connect('localhost', 'root', '1') or die("Не могу соединиться"); mysql_query("CREATE database my_db", $link) or die("Ошибка запроса"); l

Добавление записей в таблицу $link = mysql_connect('localhost', 'root', '1') or die( Добавление записей в таблицу $link = mysql_connect('localhost', 'root', '1') or die("Не могу соединиться"); l mysql_select_db('myphp', $link); l $query = "INSERT INTO lessons (title, body) VALUES (‘Новая тема 3', 'Итак, на прошлом уроке я обещал начать урок с изучения. . . ')"; l mysql_query($query, $link); l

Проблема с кодировкой l l Проблема возникает, если вы работаете с кодировкой, отличной от Проблема с кодировкой l l Проблема возникает, если вы работаете с кодировкой, отличной от UTF-8, и храните в базе данных тексты, к примеру, в кодировке cp 1251. Но My. Sql не всегда использует по умолчанию кодировку cp 1251, в частности, не всегда по умолчанию используется эта кодировка для соединений с базой. Из-за этого возникают ситуации, когда в базе тексты хранятся в нормальном читабельном виде, но при выводе этих данных на сайт появляются одни лишь знаки вопросов вместо букв – “? ? ? ? ”. Для борьбы с этим явлением нужно использовать следующий ряд запросов, которые должны выполняться после каждого коннекта к базе: mysql_query("SET NAMES 'cp 1251'"); mysql_query("SET CHARACTER SET 'cp 1251'");

Проблема с кодировкой l Команду SET NAMES можно использовать с уточнением сессии: $link = Проблема с кодировкой l Команду SET NAMES можно использовать с уточнением сессии: $link = mysql_connect('localhost', 'root', '1') or die("Не могу соединиться"); mysql_query("set names 'cp 1251'", $link);

Извлечение данных из таблицы l l l Чтобы извлечь информацию в понятную нам форму, Извлечение данных из таблицы l l l Чтобы извлечь информацию в понятную нам форму, необходимо воспользоваться функциями mysql_fetch_array(), mysql_fetch_row() или другими более специфическими функциями. Функция mysql_fetch_array() осуществляет выборку записи в виде ассоциативного массива. Эта функция, как и другие функции извлечения информации, не работает непосредственно с My. SQL, а лишь обрабатывает полученный результат, поэтому ссылка на идентификатор соединения для работы этой функцией не требуется. Ее обязательный аргумент - лишь идентификатор результата, полученный функцией mysql_query(). За каждый раз своего выполения эта функция обрабатывает лишь одну строку результата, тем самым, чтобы получить данные из всего результата выполнения mysql_query, необходимо использовать функцию в цикле.

Извлечение данных из таблицы предположим, что уже соединились с My. SQL и выбрали базу Извлечение данных из таблицы предположим, что уже соединились с My. SQL и выбрали базу данных 'myphp‘: $query = "SELECT title, body FROM lessons"; $result = mysql_query($query, $link); while ($row = mysql_fetch_array($result)) { echo "". $row['title']. "

"; echo $row['body']. "

"; } l где $link — указатель на сессию My. SQL (My. SQL link identifier). l

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

Спасибо за внимание! Удачи! Найти лектора можно в аудитории 5 -214 (НАУ) Контакты по Спасибо за внимание! Удачи! Найти лектора можно в аудитории 5 -214 (НАУ) Контакты по e-mail: eart@ukr. net или через сайт: vkontakte. ru Материалы лекций и лабораторных на сайте: eart. ho. ua (раздел Преподаватель ->подроздел Материалы для скачивания)