Лабораторная работа №2. 1. Пелих А.С. ''Бизнес-план или как организовать собственный бизнес''
1. Пелих А.С. ''Бизнес-план или как организовать собственный бизнес'' 2. Буров В.П., Ломакин А.Л., Морошкин В.А. Бизнес-план фирмы: Теория и практика. – М.: Ассоциация авторов и издателей «Тандем». Издательство «Экмос», 2000. – 210 с. 3. Российское Агентство поддержки малого и среднего бизнеса; Методическое пособие по разработке бизнес-плана в рамках проекта Тасис Европейского Союза - URL: http://www.siora.ru 4. Попов В.М., Кураков Л.П., Ляпунов С.И., Мингазов Х.Х. “Бизнес-план: отечественный и зарубежный опыт. Современная практика и документация”. М.: Финансы и статистика, 1999. – 112 с. 5. Васильева Н.Э., Козлова Л.И. Формирование цены в рыночных условиях.- М.: АО "Бизнес- Школа "Интел - Синтез", 1997.- 64 с. 6. Справочник директора предприятия/ Под ред. М.Г.Лапусты.-М.:ИНФРА-М, 1999. – 55 с. 7. Основы предпринимательской деятельности (Экономическая теория. Маркетинг. Финансовый менеджмент) / Под ред. В.М.Власовой.-М.:Финансы и статистика, 1999. – 102 с.
Лабораторная работа №2 SQL: ВЫБОРКА ДАННЫХ. Знакомство с командами выборки данных языка plpgsql. Синтаксис инструкции SELECT. Выборка без использования предложения WHERE. Выборка c использованием предложения WHERE. Выборка с упорядочением. Выборка и агрегирование данных. Преобразование типов данных в инструкции SELECT. Использование SELECT для соединения двух и более таблиц. Вложенные подзапросы. Реализация операций реляционной алгебры c помощью предложения SELECT. Литература: http://ods.com.ua/koi/db/postgres/tutorial/tutorial.html http://www.opennet.ru/docs/RUS/psql_tutor733/psql_tutor733-db.html.gz 1. Знакомство с Query Tool pgAdmin Для ввода и тестирования инструкций и операторов языка plpgsql будем использовать приложениеQuery Tool, входящее в комплект поставки PosgreSQL. Для запуска Query Tool необходимо ввести одноименную команду из меню Toolsкомандного меню pgAdmin. В открывшемся окне (рис. 2.1) выбрать базу данных из списка и создать новый запрос или загрузить сохраненный ранее SQL-скрипт. Рис.2.1. Основное окно Query Tool. Query Tool — многооконное графическое средство, которое позволяет: · вводить (New query, Load SQL script), редактировать, выполнять (Execute quer y), и сохранять (Save query/result) запросы и их результаты в текстовом (text) и графическом виде (image); · визуально строить запросs (Graphical Query Builder); · получать пояснения, как запросы анализируются, оптимизируются и выполняются, и представлять в графическом виде схему выполнения запроса (Explain query); · получать статистическую информацию о запросе (Message); · сохранять результаты выполнения запроса в файле (Export). 2. Синтаксис инструкции SELECT. Все запросы на получение практически любого количества данных из одной или нескольких таблиц выполняются с помощью единственного предложения SELECT. В общем случае результатом реализации предложения SELECT является другая таблица. К этой новой (рабочей) таблице может быть снова применена операция SELECT и т.д., т.е. такие операции могут быть вложены друг в друга. Представляет исторический интерес тот факт, что именно возможность включения одного предложения SELECT внутрь другого послужила мотивировкой использования прилагательного "структурированный" в названии языка SQL. Инструкция SELECT используется в основном как:
В этой работе рассматриваются только два первых варианта использования SELECT и его синтаксис, ограниченный конструкциями, используемыми при реализации этих вариантов, а остальные - в последующих работах практикума. Здесь и далее в синтаксических конструкциях используются следующие обозначения:
Инструкция SELECT (выбрать) имеет следующий формат (упрощенный): SELECT [[ALL] | DISTINCT] { * | элемент_SELECT [[AS] [псевдоним_столбца] [,элемент_SELECT [AS] [псевдоним_столбца]]...}FROM {базовая_таблица | представление} [AS] [псевдоним] [,{базовая_таблица | представление} [AS] [псевдоним]]...[WHERE условие_where][GROUP BY список_ group_by [HAVING условие_having]][ORDER BY список_order_by [ FOR UPDATE [ OF таблица [....]]] [ LIMIT { число | ALL } [ { OFFSET |. } начало ] ]Различные элементы этой инструкции позволяют указать условия для выбора нужных данных и (если требуется) их обработки: SELECT (выбрать) данные из указанных столбцов и (если необходимо) выполнить перед выводом их преобразование в соответствии с указанными выражениями и (или) функциями; FROM (из) перечисленных таблиц, в которых расположены эти столбцы; WHERE (где) строки из указанных таблиц должны удовлетворять указанному перечню условий отбора строк; GROUP BY (группируя по) указанному перечню столбцов с тем, чтобы получить для каждой группы единственное агрегированное значение, используя в списке элементов SELECT агрегирующие SQL-функции, например: SUM (сумма), COUNT (количество), MIN (минимальное значение), MAX (максимальное значение) или AVG (среднее значение); HAVING (имея) в результате лишь те группы, которые удовлетворяют указанному перечню условий отбора групп; ORDER BY (группируя) результаты выбора данных; при этом упорядочение можно производить в порядке возрастания — ASC (ASCending) или убывания —DESC (DESCending), а по умолчанию принимается ASC; Синтаксические конструкции, введенные выше, определяются следующим образом: Элемент_SELECT::= [таблица.]* | выражение выражение::= константа где: константа - одиночные алфавитно-цифровые символы, строки символов и числовые константы (символьные данные и данные типа дата/время берутся в одинарные кавычки); скалярная_функция - SQL-функция, возвращающая скалярное значение, например SUM, CAST и др.(выражения, выступающие в качестве параметров SQL-функций, не должны содержать вложенных SQL-функций) базовая_скалярная_функция::= | {SUM|AVG|MIN|MAX|COUNT} ([[ALL]|DISTINCT][таблица.]столбец)| {SUM|AVG|MIN|MAX|COUNT} ([ALL] выражение)| COUNT(*)псевдоним - временный идентификатор, присваиваемый таблице с помощью служебного слова AS в предложении FROM; столбец - собственно имя столбца, но не четырехсоставное имя, состоящее из имени базы данных, владельца, таблицы и имени столбца; скалярный_подзапрос - подзапрос, возвращающий скалярный результат; подзапрос - это инструкция SELECT, вложенная в: · предложения WHERE, HAVING или SELECT другой инструкции SELECT; · инструкции INSERT, UPDATE и DELETE, предназначенные для модификации данных в таблицах; · другой подзапрос. Предложение WHERE включает набор условий для отбора строк: условие_where::= [NOT] условие [[AND|OR][NOT] условие]... условие::= выражение { = | <> | < | <= | > | >= } { выражение | (подзапрос) }выражение_1 [NOT] BETWEEN выражение _2 AND выражение _3выражение [NOT] IN { (константа [,константа]...) | (подзапрос) }выражение IS [NOT] NULL[таблица.]столбец [NOT] LIKE 'строка_символов' [ESCAPE 'символ']EXISTS (подзапрос)Кроме традиционных операторов сравнения (= | <> | < | <= | > | >=) в предложении WHERE используются условия BETWEEN (между), LIKE (похоже на), IN (принадлежит), IS NULL (не определено) и EXISTS (проверка на существование данных, удовлетворяющих критериям подзапроса; если данных нет, то результат – ложь), которые могут предваряться оператором NOT (не). Критерий отбора строк формируется из одного или нескольких условий, соединенных логическими операторами AND, OR, NOT (с учетом их приоритета и скобок). При обработке условия числа сравниваются алгебраически — отрицательные числа считаются меньшими, чем положительные, независимо от их абсолютной величины. Строки символов сравниваются в соответствии с их представлением в коде, используемом в конкретной СУБД, например, в коде ASCII. Если сравниваются две строки символов, имеющих разные длины, более короткая строка дополняется справа пробелами для того, чтобы они имели одинаковую длину перед осуществлением сравнения. Синтаксис модификатора GROUP BY имеет вид GROUP BY [таблица.]столбец [,[таблица.]столбец]... [HAVING условие_having]GROUP BY инициирует перекомпоновку формируемой таблицы по группам, каждая из которых имеет одинаковое значение в столбцах, включенных в перечень GROUP BY. Далее к этим группам применяются агрегирующие функции, указанные в списке выбора SELECT, что приводит к замене всех значений группы на единственное значение (сумма, количество и т.п.). В результате выполнения GROUP BY остаются только уникальные значения столбцов, по умолчанию отсортированные по возрастанию. С помощью предложения HAVING, где условие_having определяется так же, как и условие_where, можно исключить из результата группы, не удовлетворяющие заданным условиям. Список параметров модификатора ORDER BY имеет вид список_order_by::={[таблица.]столбец | номер_элемента_SELECT} [[ASC] | DESC] [, {[таблица.]столбец | номер_элемента_SELECT} [[ASC] | DESC]] …В отличие от GROUP BY модификатор ORDER BY не удаляет повторяющиеся значения. Список параметров предложения COMPUTE состоит из агрегирующих функций, с помощью которых генерируются итоговые значения, отображаемые как дополнительные строки, и имеет следующий синтаксис: SQL_функция [, SQL_функция] … [BY столбец [,столбец]…] 2.1. Выборка без использования предложения WHERE.
|