- •Системы управления базами данных
- •Часть 2
- •Предисловие
- •Лабораторная работа 1
- •1.1. Краткие теоретические сведения
- •1.2. Описание команд и рекомендации к выполнению работы
- •1.3. Создание таблиц базы данных
- •2. Практическая часть
- •1.2 Создание пользователей и задание им прав
- •1.3 Копирование и восстановление бд
- •2. Практическая часть
- •3.Контрольные вопросы
- •Лабораторная работа 3 Индексы и обзоры.
- •1.1. Краткие теоретические сведения
- •1.2. Создание индекса
- •1.3. Оператор explain
- •1.4. Представления (обзоры)
- •2. Практическая часть
- •1.2 Создание и модификация хранимых процедур и функций
- •1.3Синтаксис хранимого кода
- •Практическая часть
- •2. Практическая часть
- •Практические задания
- •3. Контрольные вопросы
- •Лабораторная работа № 7 Работа с Firebird и Interbase в Delphi. Ado компоненты
- •Практические задания
- •Лабораторная работа №8 разработка приложения в среде delphi
- •1.Краткие теоретические сведения
- •2 Практические задания
- •Контрольные вопросы
- •Лабораторная работа №9 Проектирование приложений для работы с бд
- •Краткие теоретические сведения
- •Практические задания
- •3. Контрольные вопросы
- •Лабораторная работа №10 Проектирование отчетов
- •Краткие теоретические сведения
- •2 . Практические задания
- •Лабораторная работа №11 Использование запросов при проектировании приложений
- •Краткие теоретические сведения
- •Практические задания
- •Практические задания
- •2.Практические задания
- •3. Контрольные вопросы
- •Краткие теоретические сведения
- •Практические задания
- •Практические задания
- •3. Практические задания
- •3. Контрольные задания
- •Лабораторная работа 16 Функции php для работы с MySql. Подключение к базе данных MySql.
- •1. Краткие теоретические сведения
- •Практическая часть
- •1.2. Обработка результатов запроса
- •1.3. Функции получения информации о результатах sql-запросов
- •2. Практическая часть
- •Int[(м)]
- •1.1.1. Строковые типы
- •Varchar(m)
- •1.1.2. Типы даты и времени
- •1.2. Функции MySql
- •1.2.1 Функции непосредственно MySql:
- •Ifnull(expr1,expr2)
- •If(expr1,expr2,expr3)
- •1.3. Написание сценариев php с использованием pear::db
- •2. Практическая часть
- •2. Практическая часть
- •3. Контрольные вопросы
1.2.1 Функции непосредственно MySql:
Ifnull(expr1,expr2)
Если expr1 не равно NULL, то функция IFNULL() возвращает значение expr1, в противном случае - expr2. В зависимости от контекста функция IFNULL() может возвращать либо числовое, либо строковое значение:
mysql> SELECT IFNULL(1,0);
-> 1
mysql> SELECT IFNULL(NULL,10);
-> 10
mysql> SELECT IFNULL(1/0,10);
-> 10
mysql> SELECT IFNULL(1/0,'yes');
-> 'yes'
Данная функция полезна при использовании LEFT JOIN. Допустим имеется таблица Students и таблица Hobbies, содержащая хобби студентов. Предполагается, что не каждый студент имеет хобби. Задача узнать хобби каждого студента, а если его нет – вывести строку ‘отсутствует’.
SELECT s.name, IFNULL(h.hobby, ‘отсутствует’) FROM students s
LEFT JOIN hobbies h ON s.idStudent = h.idStudent;
If(expr1,expr2,expr3)
Если expr1 равно значению ИСТИНА (expr1 <> 0 и expr1 <> NULL), то функция IF() возвращает expr2, в противном случае - expr3. В зависимости от контекста функция IF() может возвращать либо числовое, либо строковое значение:
mysql> SELECT IF(1>2,2,3);
-> 3
mysql> SELECT IF(1<2,'yes','no');
-> 'yes'
mysql> SELECT IF(STRCMP('test','test1'),'no','yes');
-> 'no'
LOCATE(substr, str)
Возвращает позицию первого вхождения подстроки substr в строку str. Если подстрока substr в строке str отсутствует, возвращается 0:
mysql> SELECT LOCATE('bar', 'foobarbar');
-> 4
mysql> SELECT LOCATE('xbar', 'foobar');
-> 0
1.3. Написание сценариев php с использованием pear::db
PEAR (PHP Extension and Application Repository) — это библиотека классов PHP с открытым исходным кодом.
Установка:
Распакуйте архив PEAR.tgz в какую-нибудь директорию.
Для дальнейшей работы из понадобится только PEAR.php.
Создайте в структуре вашего сайта директорию pear/ и скопируйте PEAR.php в нее.
Распакуйте пакет DB.
Скопируйте файл DB.php и поддиректорию DB/ в директорию pear/ вашего сайта.
Откройте файл DB.php в редакторе, найдите строчку require_once 'PEAR.php'; и сотрите ее. Сохраните файл.
Откройте файл mysql.php в подкатегории DB категории PEAR, найдите строчку require_once 'DB/common.php'; и замените на require_once 'common.php';. Сохраните файл.
В корневом каталоге создайте файл testdb.php. Структура должна выглядеть примерно так:
Добавьте в файл testdb.php следущий код:
<?php
header("Content-type: text/html; charset=utf-8");
require_once 'PEAR/PEAR.php';
require_once 'PEAR/DB.php';
$myDB =& DB::factory('mysql'); // подсоединяемся к mysql
$myDB->connect(DB::parseDSN('mysql://root:12345@localhost/testsmarty')); //подсоединяемся к базе
$myDB->setFetchMode(DB_FETCHMODE_ASSOC);
// устанавливаем кодировку
$myDB->query('set names utf8');
$q = 'SELECT * FROM pages'; // какой-нибудь запрос
$result = $myDB->query($q);
//проверяем корректность выполнения запроса
if(!DB::isError($result) && $result->numRows() > 0) {
// получаем ассоциативный массив значений
while($row = $result -> fetchRow()) {
print('name = '.$row['name']);
}
}
?>