- •Вводный раздел
- •1. Информационные системы. Основные понятия
- •Моделирование информационных систем
- •2. Архитектуры распределенного приложения с базой данных. Функции клиента и сервера при различных вариантах расслоения. Типовые клиенты доступа к бд на основе различных технологий.
- •Модель Клиент – Сервер
- •Трехуровневая модель
- •Распределенная (многоуровневая) модель
- •4 Технологии программ расширений
- •Тема 1. Средства взаимодействия клиента и сервера бд
- •1.1 Сервисы сети Internet. Сетевая архитектура osi.
- •1.2 Протоколы прикладного уровня в стеке tcp/ip. Унифицированный локатор ресурса при работе с бд
- •1.3 Блоки данных в стеке протоколов
- •Тема 2. Удаленные базы данных
- •2.1 Понятие удаленных баз данных
- •2.2 Инструментальные средства проектирования структуры бд. Утилиты автоматизированного проектирования бд.
- •2.3 Характеристика субд удаленного доступа
- •Тема 3. Разработка и эксплуатация серверной части
- •3.1 Проектирование структуры базы данных (на самостоятельное изучение) Вопросы для самостоятельной работы
- •3.2 Создание баз данных, таблиц и индексов
- •Удаление баз данных, таблиц
- •Изменение структуры таблиц
- •3.3 Типы данных в MySql
- •Integer и его вариации
- •3.4 Методы заполнения полей базы данных Использование insert
- •Использование replace
- •Использование delete
- •Использование truncate
- •Использование update
- •Загрузка данных с помощью load data infile
- •Тема 4. Разработка и эксплуатация клиентской части.
- •4.1 Простые запросы
- •4.2 Выбор строк с помощью where
- •Удаление повторений с помощью distinct
- •Выбор групп с помощью having
- •Сортировка результатов поиска с помощью order by
- •Ограничение результатов поиска с помощью limit
- •4.4 Сложные запросы Объединение двух таблиц
- •Объединение нескольких таблиц
- •Самообъединение таблиц
- •Типы объединений
- •4.5 Создание подзапросов
- •4.6 Встроенные функции MySql
- •Операторы
- •Типы таблиц MySql
- •Тема 5. Язык html как средство внешнего представления данных.
- •5.1 Основные правила проектирования пользовательского интерфейса
- •5.2. Построение абзацев в гипертекстовом документе
- •5.3 Построение заголовков в гипертекстовом документе
- •Тема 6. Разработка бизнес-слоя и интерактивных компонентов
- •6.1 Perl как средство разработки программ –приложения
- •6.2 Типы данных в Рerl
- •Переменные
- •Скалярные переменные
- •Массивы
- •Ассоциативные массивы
- •6.3 Конструкции языка Рerl Простые и составные операторы
- •Условные операторы
- •Оператор unless
- •Оператор do
- •Циклы и ветвления
- •Цикл until
- •Циклы for и foreach
- •Оператор безусловного перехода goto
- •Генерация динамических выражений с помощью функции eval
- •6.4 Подпрограммы
- •Использование пакетов для изоляции подпрограмм
- •6.5 Операторы языка Perl .Операторы сравнения
- •Логические операторы
- •6.6 Работа с файлами и строками
- •Функция chop
- •Функция index
- •Функция length
- •Функция substr
- •Функция join
- •Функция split
- •Функции для обработки списков
- •Функция reverse
- •Функция sort
- •Функции работы с массивами
- •Функции push и pop
- •Функция shift
- •Функция unshift
- •Функция splice
- •Функция scalar
- •Функция grep
- •Функции обработки ассоциативных массивов
- •Функция keys
- •Функция values
- •Функция each
- •Функция delete
- •Пример скриптов для выполнения практического задания
- •1. Добавление информации в базу (на примере винного погреба -добавление страны)
- •Часть 1
- •Удаление информации из базы (удаление страны)
- •Часть 2
- •Часть 3
- •Поиск информации в базе данных
- •Занесение новой информации во все таблицы базы данных
- •Часть 1
- •Часть 2
4.2 Выбор строк с помощью where
Это может пригодиться, поскольку часто требуется выбрать только записи, удовлетворяющие определенным критериям поиска. Это особенно важно тогда, когда необходимо извлечь всего несколько нужных строк из очень большой таблицы.
Поставленную задачу можно решить с помощью выражения WHERE в операторе SELECT. Вот простой пример:
select employeeID, name
from employee
where job='Программист';
Результат выполнения этого запроса для базы данных employee будет следующим:
Мы использовали условие в выражении WHERE, чтобы найти только те строки в таблице, которые удовлетворяют указанным критериям, -- в данном случае это должны быть служащие, работающие программистами.
Обратите внимание на то, что кроме этого условия мы указали также список требуемых столбцов (employeelD и name), чтобы получить только ту информацию, которой мы интересуемся.
В данном случае мы используем в выражении WHERE проверку равенства. Обратите внимание на то, что в SQL для проверки равенства используется =.
В добавление к операторам в некоторых примерах мы будем использовать функцию count (), которая дает возможность посчитать число строк, возвращенных запросом. Например:
select count(*) from employee;
Этот запрос сообщит, сколько строк имеется в таблице employee. Наконец, можно управлять приоритетом операций, группируя выражения с помощью скобок.
Вот пример немного более сложного запроса с использованием выражения
WHERE:
select * from assignment
where employeeID=6651 and hours > 8;
Этот запрос возвратит список всех заданий, выполненных служащим 6651 (Аджай Пател), на которые он потратил более восьми часов рабочего времени.
Тут следует сделать одно важное замечание: использовать псевдонимы столбцов в выражении WHERE не позволено. Необходимо использовать только оригинальное имя столбца. Это — ограничение ANSI SQL. Причина заключается в том, что в момент рассмотрения условия WHERE значение псевдонима столбца может быть неизвестно.
Удаление повторений с помощью distinct
В запросе можно использовать ключевое слово DISTINCT, чтобы результат не содержал повторений уже имеющихся значений. Рассмотрим, например, запрос
select job from employee;
Как видите, значение
Программист здесь присутствует дважды.
Причина в
том, что это значение содержится в двух
строках. Данный запрос просто возвратил
полный список значений столбца j
ob
указанной таблицы.
Теперь
рассмотрим
запрос
select
distinct job from employee;
Он возвратит
следующие строки:
Здесь повторения
были удалены.
В
этом конкретном примере разница не
кажется слишком значительной — второй
результат лишь немного лаконичнее, но
в принципе ненамного лучше. Разница
может
оказаться более заметной для больших
таблиц с множеством повторений, но
результат все равно будет представлять
всю нужную информацию.
Следующим из рассмотренных нами выражений является GROUP BY. Оно позволяет распределить извлекаемые строки по группам и оказывается особенно полезным при его использовании в комбинации с функциями, применяемыми к группам строк.
Рассмотрим следующий запрос:
select count(*), job
from employee
group by job;
Этот запрос подсчитывает число служащих по группам должностей, т.е. выясняет число служащих, занимающих ту или иную должность. Выполнив этот запрос в базе данных employee, получим следующий результат:
Здесь следует отметить, что в MySQL и ANSI SQL выражение GROUP BY работает по-разному.
В ANSI SQL необходимо группировать по всем столбцам, указанным в исходном выражении SELECT. В MySQL в выражении SELECT разрешается указывать дополнительные столбцы, не входящие в выражение GROUP BY.
MySQL позволяет также сортировать порядок групп, в котором они должны быть представлены в результате. По умолчанию задан возрастающий порядок. Чтобы в нашем последнем запросе результаты были представлены в убывающем порядке, запрос следует изменить таким образом:
select count(*), job
from employee
group by job desc;
Результат будет примерно следующим:
Как видите, названия должностей теперь приводятся в порядке, обратном алфавитному. Для указания возрастающего порядка можно использовать ASС, но это значение используется по умолчанию, поэтому указывать его не требуется.
