Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Топ:
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Интересное:
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Дисциплины:
2022-02-11 | 25 |
5.00
из
|
Заказать работу |
|
|
Лекция №15
Язык запросов SQL
Основные понятия
SQL (Structured Query Language – структурированный язык запросов) предназначен для обработки реляционных БД. Многие конструкции и операторы языка SQL связаны с операциями реляционной алгебры. С этой точки зрения методы реляционной алгебры являются базовыми для более глубокого понимания и использования языка SQL. В различных СУБД используются два типа языка SQL:
1) интерактивный SQL − используется для выполнения действий непосредственно над БД в оперативном режиме. Как правило, интерактивному SQL сопутствует некоторая программа-сервер SQL. Наиболее популярны в настоящее время Oracle SQL-Server, MS-SQL Server, My-SQL, Inter Base и некоторые другие;
2) встроенный SQL − состоит из команд SQL, включенных непосредственно в программы, которые написаны на другом языке программирования. Например, в таких системах программирования, как Delphi, C++ Builder, VBasic, VC++ имеется встроенный SQL. В различных СУБД, например в MS-Access, также имеются возможности использовать команды встроенного SQL.
В языке SQL существует множество команд, которые относятся к тем или иным выполняемым действиям. Таким образом, можно разделить SQL на определенные подмножества:
· DQL – язык запросов. Команды предназначены для извлечения данных из таблиц;
· DML – язык манипуляция данными;
· TPL – язык обработки транзакций. Команды позволяют объединить команды языка DHL в группы транзакций. Если одна из команд не может быть выполнена, то отменяются все предыдущие команды из этой же транзакции, – происходит «откат транзакции»;
· DDL – язык определение данных. Включает в себя также инструкции обеспечения целостности данных. Например, команды создания таблиц и организации связей между ними;
|
· CCL – язык управления курсором. Позволяет выбрать для обработки одну строку из результирующего множества запросов;
· DCL – язык управления данными. Содержит инструкции с помощью которых выполняется присваивание прав доступа к БД, множеству таблиц или представлений.
Использование SQL для выборки данных из таблиц
Запросы – наиболее часто используемый аспект SQL. Фактически для большой категории SQL-пользователей, маловероятно чтобы кто-либо использовал этот язык для чего-то другого. Поэтому будем начинать изучать SQL с обсуждения понятия «запрос», и с того как он выполняется на этом языке.
Запрос – это команда, которая выдается программе базы данных для поиска определенной информации из таблиц. Эта информация обычно посылается непосредственно на экран компьютера или терминала, которым вы пользуетесь, хотя в большинстве случаев, ее можно также послать на принтер, сохранить в файле (как объект в памяти компьютера) или представить как вводную информацию для другой команды или процесса.
Запросы обычно рассматриваются как часть языка DML. Однако, так как запрос не меняет информацию в таблицах, а просто показывает ее пользователю, будем рассматривать запросы как самостоятельную категорию среди команд DML, которые производят действие, а не просто показывают содержание базы данных.
Все запросы в SQL состоят из одиночной команды. Эта команда называется SELECT (выбор). Несмотря на простоту формата команды SELECT, с ее помощью можно выполнять достаточно сложную обработку данных. В самой простой форме команда SELECT инструктирует базу данных, чтобы извлечь информацию из таблицы указанной в предложении FROM. Например, для того чтобы вывести на экран таблицу Съемщик (см. отношения в предыдущем разделе) достаточно использовать такую команду:
Общий вид оператора SELECT
SELECT [ DISTINCT | ALL ] <выражение или имя поля>,...
FROM <ссылка на таблицу>,...
[WHERE <предикат>]
[GROUP BY <столбец, по которому выполняется группировка>,...]
|
[HAVING <предикат>]
[ORDER BY <столбец, по которому выполняется упорядочивание>
[ ASC | DESC ],... ]
Здесь квадратные скобки ([]) обозначают необязательные элементы. Многоточие (...) обозначает элементы, которые могут повторяться один или более раз. Рассмотрим каждый элемент команды SELECT подробнее.
Ключевое слово DISTINCT (отличие) “следит” за тем, какие значения (строки) были выведены ранее так, что бы они не были продублированы в списке. Это полезный способ избежать избыточности данных. Однако нужно следить за тем, чтобы не были потеряны некоторые важные данные, несмотря на то, что они дублируются в результате. DISTINCT может указываться только один раз в данном предложении SELECT.
В данном случае «|» означает альтернативу. То есть либо Ключевое слово DISTINCT
Либо Ключевое слово ALL.
«Выражение или имя поля» - описывает столбцы, функции агрегирования, константы, которые включаются в результирующую таблицу.
Ключевое слово FROM определяет имена таблиц или запросов, которые используются в данном запросе. В случае, если указывается несколько таблиц, СУБД автоматическая осуществляет декартово произведение этих таблиц, т.е. все записи сочетаются со всеми другими.
Ключевое слово WHERE позволяет устанавливать предикаты, условие которых может быть или верным или неверным для любой строки таблицы. Фактически это реализация операции выборки. В качестве предиката указывается условие.
Усложним задачу.
Например, если необходимо выбрать информацию по студенту Петров, то можно использовать такой запрос:
FROM Студенты
WHERE Фамилия = ‘Петров’;
Заметим, что если поле не является текстовым, то в операции сравнения кавычки указывать не нужно.
Например, выберем студентов, стипендия которых больше 1400 рублей:
FROM Студенты
WHERE Стипендия > 1400;
Ключевые слова ORDER BY используются для окончательной сортировки, полученных данных. Указываются столбцы, по которым нужно сортировать, при этом ключевое слово ASC означает сортировку по возрастанию, DESC – сортировку по убыванию.
Ключевые слова GROUP BY позволяют осуществлять группировку записей при использовании функции агрегирования. Функция агрегирования – это функция, которая позволяет агрегировать или объединять по группам некоторые из таблиц. Например, поиск максимума или минимума. Если используется GROUP BY, все столбцы, используемые в предложении SELECT, должны будут использоваться как группа столбцов, если они не содержатся в агрегатной функции.
|
Select Улица, Город, Плата
From Жилье
Where Город=’Пенза’ AND Плата<=400;
Для формирования более сложных предикатов можно использовать скобки, определяющие порядок вычисления значения предиката.
Предположим, нужно вывести цену за аренду жилья и рядом налог на имущество, выплачиваемый за это жилье. Результат выдать отсортированный по полям «город» и «адрес». Пусть налог на имущество за месяц представляет собой фиксированную сумму, равную 40 рублям плюс 13% от стоимости аренды:
FROM Жилье
ORDER BY Город, Улица;
Результат:
ЖNo | Город | Улица | Плата | СтавкаНалога | Налог |
ЖА14 | Астрахань | ул.Н-16 | 650,00р. | 40 руб. + 13% | 124,5рублей |
ЖЛ94 | Москва | ул.А-6 | 400,00р. | 40 руб. + 13% | 92рублей |
ЖЖ21 | Пенза | ул.D-18 | 600,00р. | 40 руб. + 13% | 118рублей |
ЖЖ4 | Пенза | ул.L-6 | 350,00р. | 40 руб. + 13% | 85,5рублей |
ЖЖ16 | Пенза | ул.N-5 | 450,00р. | 40 руб. + 13% | 98,5рублей |
ЖЖ36 | Пенза | ул.М-2 | 375,00р. | 40 руб. + 13% | 88,75рублей |
Пример 2. Выдать список сотрудников мужского пола старше 55 лет и женского пола старше 45 лет. В данном примере будем использовать дополнительную функцию Date (), которая возвращает текущую дату. Аналог такой функции присутствует в различных реализациях СУБД, но не рассматривается стандартом SQL:
Select Имя, Фамилия, Дрожд
From Сотрудники
Where (Пол=’М’ AND (Date()- Дрожд)>55) OR
(Пол=’Ж’ AND (Date ()- Дрожд)>45);
ПРИМЕР СОЗДАНИЯ ПРОСТОЙ БД в СУБД MS-ACCSES-2002
Создадим БД, имеющую 2 таблицы, 1 форму для ввода, 1 запрос и 1 отчет. БД описывает студентов учебного учреждения и их распределение по группам.
Создание новой БД
Для создания новой БД необходимо выбрать пункт Новая база данных в меню Создание. Либо использовать путь Файл => Создать Базу данных.
Сохранение БД под новым именем
Создание новой таблицы (отношения) в БД
Создание полей в таблице БД
Основные типы полей в MS-Access
- текстовое
- числовое
|
- дата/время
- денежное
- логическое
- поле счетчик
Пример создания поля денежного типа
Пример создания числового поля «одинарное с плавающей точкой»
Сохранение таблицы в БД
Добавление ключевого поля
Добавление ключевого поля «Номер студенческого билета»
Способ указать ключевое поле
Обозначение ключевого поля в списке полей таблицы
Основные режимы работы с таблицей:
- режим конструктора
- режим таблицы
Просмотр в режиме «Таблица» (пустая таблица)
Добавление данных (записей о студентах) в таблицу
Переход в окно «База данных»
Вид окна «База данных», раздел – «Таблицы»
Добавление новой таблицы «Группы» в БД
Вид окна «База данных», раздел – «Таблицы». Создано две таблицы «Студенты», «Группы»
Добавление связей между отношениями (таблицами) в меню «Сервис/схема данных»
В схеме данных (схеме связи отношений) указываются участвующие в связях таблицы.
Схема данных. Связи еще не установлены.
Запрос на тип связи и обеспечение целостности данных.
Система находится в состоянии ссылочной целостности, если каждое значение связного поля в дочерней таблице ссылается только на одно значение (одну строку) в родительской таблице. Дочерней в связи 1:М считается таблица там, где обозначена связь М.
Создание формы
Лекция №15
Язык запросов SQL
Основные понятия
SQL (Structured Query Language – структурированный язык запросов) предназначен для обработки реляционных БД. Многие конструкции и операторы языка SQL связаны с операциями реляционной алгебры. С этой точки зрения методы реляционной алгебры являются базовыми для более глубокого понимания и использования языка SQL. В различных СУБД используются два типа языка SQL:
1) интерактивный SQL − используется для выполнения действий непосредственно над БД в оперативном режиме. Как правило, интерактивному SQL сопутствует некоторая программа-сервер SQL. Наиболее популярны в настоящее время Oracle SQL-Server, MS-SQL Server, My-SQL, Inter Base и некоторые другие;
2) встроенный SQL − состоит из команд SQL, включенных непосредственно в программы, которые написаны на другом языке программирования. Например, в таких системах программирования, как Delphi, C++ Builder, VBasic, VC++ имеется встроенный SQL. В различных СУБД, например в MS-Access, также имеются возможности использовать команды встроенного SQL.
В языке SQL существует множество команд, которые относятся к тем или иным выполняемым действиям. Таким образом, можно разделить SQL на определенные подмножества:
· DQL – язык запросов. Команды предназначены для извлечения данных из таблиц;
|
· DML – язык манипуляция данными;
· TPL – язык обработки транзакций. Команды позволяют объединить команды языка DHL в группы транзакций. Если одна из команд не может быть выполнена, то отменяются все предыдущие команды из этой же транзакции, – происходит «откат транзакции»;
· DDL – язык определение данных. Включает в себя также инструкции обеспечения целостности данных. Например, команды создания таблиц и организации связей между ними;
· CCL – язык управления курсором. Позволяет выбрать для обработки одну строку из результирующего множества запросов;
· DCL – язык управления данными. Содержит инструкции с помощью которых выполняется присваивание прав доступа к БД, множеству таблиц или представлений.
Использование SQL для выборки данных из таблиц
Запросы – наиболее часто используемый аспект SQL. Фактически для большой категории SQL-пользователей, маловероятно чтобы кто-либо использовал этот язык для чего-то другого. Поэтому будем начинать изучать SQL с обсуждения понятия «запрос», и с того как он выполняется на этом языке.
Запрос – это команда, которая выдается программе базы данных для поиска определенной информации из таблиц. Эта информация обычно посылается непосредственно на экран компьютера или терминала, которым вы пользуетесь, хотя в большинстве случаев, ее можно также послать на принтер, сохранить в файле (как объект в памяти компьютера) или представить как вводную информацию для другой команды или процесса.
Запросы обычно рассматриваются как часть языка DML. Однако, так как запрос не меняет информацию в таблицах, а просто показывает ее пользователю, будем рассматривать запросы как самостоятельную категорию среди команд DML, которые производят действие, а не просто показывают содержание базы данных.
Все запросы в SQL состоят из одиночной команды. Эта команда называется SELECT (выбор). Несмотря на простоту формата команды SELECT, с ее помощью можно выполнять достаточно сложную обработку данных. В самой простой форме команда SELECT инструктирует базу данных, чтобы извлечь информацию из таблицы указанной в предложении FROM. Например, для того чтобы вывести на экран таблицу Съемщик (см. отношения в предыдущем разделе) достаточно использовать такую команду:
|
|
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!