- •Вводный раздел
- •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
Загрузка данных с помощью load data infile
Команда LOAD DATA INFILE позволяет вставлять данные из текстового файла в одну таблицу без необходимости использования операторов INSERT. Например, можно было бы заполнить данными таблицу department, используя следующий подход.
Запишем информацию, которую необходимо поместить в таблицу в текстовый файл
42 Финансовый отдел
128 Отдел проектирования
NULL Отдел кадров
NULL Отдел маркетинга
Этот файл находится в формате, используемом командой LOAD DATA INFILE по умолчанию, когда каждая запись (строка данных) размещается в списке в отдельной строке, а поля записи (значения столбцов) разделяются знаками табуляции.
Можно загрузить имеющуюся информацию в таблицу department с помощью следующего оператора
LOAD DATA INFILE
load data local infile 'department_infile.txt'
into table department;
Эта возможность особенно полезна при конвертировании данных из баз данных других форматов, электронных таблиц и CSV-файлов (файлов значений, разделенных запятыми).
Тема 4. Разработка и эксплуатация клиентской части.
4.1 Простые запросы
Общая форма оператора SELECT выглядит так:
SELECT столбцы
FROM таблицы
[WHERE условия]
[GROUP BY группа
[HAVING групповые_условия]]
[ORDER BY сортировка_столбцов]
[LIMIT пределы];
Это — не исчерпывающий синтаксис оператора SELECT. Оператор SELECT имеет много опций. Их можно использовать или не использовать, но они должны указываться именно в том порядке, в каком они приведены здесь.
Простейшей пример оператора SELECT выглядит следующим образом: select * from department;
Если выполнить этот запрос для данных, имеющихся в нашей базе данных employee, будет получен примерно такой результат:
С помощью этого запроса были выбраны все данные из указанной таблицы — в данном случае все строки и все столбцы из таблицы department.
Первым ограничением, которое мы можем использовать, является указание набора возвращаемых столбцов. В предыдущем запросе (select * from department) символ * означает "все столбцы таблицы". Вместо * можно указать список столбцов, значения которых мы хотели бы получить. Это может быть как один столбец, так и некоторое подмножество или даже полный набор столбцов таблицы в любом устраивающем нас порядке. Имена столбцов должны быть указаны в виде списка значений, разделенных запятыми.
Например, следующий запрос выбирает только значения полей employeelD; и name из таблицы employee:
select name, employeelD from employee;
Если выполнить этот запрос для нашей базы данных с информацией о служащих, получится примерно такой результат:
Как видите, запрос вернул значения только двух указанных нами столбцов. Обратите внимание на то, что в выводе эти столбцы показаны в том порядке, в котором мы указали их в нашем запросе, а не в том порядке, в котором они существуют в схеме базы данных.
Еще одной возможностью является возможность прямо указать базу данных и таблицу, которые мы имеем в виду. Например, можно представить ссылку на столбец name из таблицы employee в виде employee.name:
select employee.name from employee;
В результате мы получим следующее
select name
from employee.employee;
(Этот запрос должен выдать точно такой же результат, как и предыдущий.)
Здесь мы делаем явную ссылку на таблицу employee из базы данных employee, используя для этого нотацию вида база_данных. таблица.
Если требуется, вместе с базой данных и таблицей можно указать и принадлежащий таблице столбец. Тот же пример с использованием нотации база_данных. таблица . столбец можно записать так:
select employee.employee.name from employee;
Для указанных здесь простых запросов такие возможности синтаксиса не слишком полезны, но впоследствии, при использовании более сложных запросов, это позволит нам избежать двусмысленности при указании источника необходимой информации.
Теперь мы должны обсудить концепцию псевдонимов для имен столбцов и таблиц.
В операторе SELECT можно переименовать столбцы или назначить имя содержащим их выражениям, в результате чего в выводе оператора будет показано новое имя.
Например, можно ввести следующий запрос:
select name as employeeName from employee;
В данном случае
мы назначили столбцу name
новое имя employeeName
только
для этого запроса. Результат выполнения
этого запроса для базы данных employee
будет следующим
Как видите, в результатах вывода содержимое столбца name теперь показано в списке под заголовком employeeName.
Идентификаторы типа employeeName называют псевдонимами. Имеются определенные правила относительно того, что можно и чего нельзя делать с псевдонимами, и мы эти правила рассмотрим.
В этом конкретном примере польза от использования псевдонима не слишком велика. Вы сможете оценить преимущества использования псевдонимов тогда, когда мы начнем создавать сложные запросы и запросы, в которых применяются вычисления.
Можно также использовать псевдонимы для таблиц:
select e.name
from employee as e;
Результат выполнения этого запроса будет аналогичен результату выполнения запроса без псевдонимов. Соответствующая нотация окажется полезной, когда в следующей теме мы начнем создавать запросы с указанием нескольких таблиц.
В последних двух примерах ключевое слово AS не является обязательным. Можно было бы просто написать
select name employeeName from employee;
и
select e.name from employee e;
