Использование SQL для выборки данных из таблиц — КиберПедия 

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Использование SQL для выборки данных из таблиц

2022-02-11 25
Использование SQL для выборки данных из таблиц 0.00 из 5.00 0 оценок
Заказать работу

Лекция №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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.065 с.