Создание SQL-запросов в реляционных базах данных

Обоснование применения языка структурированных запросов SQL в реляционных базах данных. Описание выбора модели данных, используемой на концептуальном уровне. Рассмотрение реляционной модели базы данных на примере Кокандского педагогического института.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 14.03.2022
Размер файла 3,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Кокандский государственный педагогический институт им. Мукими, Коканд, Узбекистан

Создание SQL-запросов в реляционных базах данных

Cапияхон Хайдарова

Аннотация

запрос база данные реляционный

В статье изложены методы создания SQL-запросов в реляционных базах данных. Обосновано применение языка структурированных запросов SQL в реляционных базах данных. Приведены сведения о стандарте SQL и трехуровневой системе организации базы данных. Описан выбор модели данных, используемой на концептуальном уровне. Рассмотрена реляционная модель базы данных на примере Кокандского педагогического института. Составлена реляционная концептуальная схема информационной модели педагогического института, и данная схема изображена с помощью кластера. Представлена схема данных реляционной базы данных, соответствующей данной концептуальной схеме. Объекты предметной области изображены в виде таблиц, которые отличаются друг от друга геометрическими формами или цветом. Представлены взаимосвязи между таблицами в Microsoft Access. Рассмотрены основные правила создания и заполнения таблиц на языке SQL с помощью инструкций CREATE TABLE и INSERT INTO. Рассмотрена также задача построения запросов на извлечение данных. Приведен синтаксис оператора SELECT. Перечислены все предложения инструкции SELECT и порядок их следования. Приведены примеры на составление простых запросов и подзапросов на языке SQL с помощью инструкции SELECT для базы данных Кокандского педагогического института. Даны сведения о порядке выполнения внутренних и внешних запросов. Рассмотрено предложение ORDER BY инструкции SELECT для сортировки результатов запроса.

Ключевые слова: язык структурированных запросов, модели концептуального уровня, концептуальная схема, схема данных, инструкции CREATE TABLE и INSERT INTO, извлечение данных, SQL-оператор SELECT, простые запросы, подзапросы, внутренний подзапрос, внешний запрос, предложение ORDER BY, ключевое слово DISTINCT

Creating SQL-queries in relational databases

Sapiahon Khaidarova

Mukimi Kokand State Pedagogical Institute, Kokand, Uzbekistan

Abstract

The article outlines the methods for creating SQL queries in relational databases. The use of the structured query language SQL in relational databases is substantiated. It provides information about the SQL standard and the three-tier database organization system. The author describes the choice of a data model based on the conceptual level using to that end an example of the Kokand Pedagogical Institute as the relational database model. A relational conceptual diagram of the information model of a pedagogical institute is compiled. Such a conceptual diagram is depicted using a cluster. Objects of the subject area are depicted in the form of tables, which differ from each other in geometric shapes or colors. The relationships between tables in Microsoft Access are presented. The basic rules for creating and filling tables in SQL using the instructions CREATE TABLE and INSERT INTO are considered. The syntax of the SELECT statement is given. All offers of the SELECT statement and their order are listed. Examples are given for compiling simple queries and subqueries in SQL using the SELECT statement for the database of the Kokand Pedagogical Institute. Information about the order of execution of internal and external requests is given. The article considers the ORDER BY offer of a SELECT statement for sorting query results.

Keywords: structured query language, conceptual level models, conceptual diagram, data schema, CREATE TABLE and INSERT INTO instructions, data extraction, SQL SELECT statement, simple queries, sub queries, internal sub query, external query, offer ORDER BY, keyword DISTINCT

Введение

В настоящее время язык SQL является самым популярным языком баз данных. Для взаимодействия с базами данных требуется хорошее практическое знание реляционного языка SQL. В повседневной жизни нам приходится работать с базами данных, язык SQL предназначен именно для этого.

Каждый раз при выборе имени в адресной книге электронной почты идет обращение к базе данных. Когда что-то ищется с помощью поискового сайта в Интернете, то посылаются запросы к базе данных. При регистрации на офисном компьютере вводятся имя и пароль, которые затем сравниваются со значениями, хранящимися в базе данных. И даже если пластиковая карта вставляется в банкомат, проверка РШ кода и остатка на счете идет через базу данных [Форта 2014].

SQL (Structured Query Language) - это язык структурированных запросов, который был специально разработан для взаимодействия с базами данных. Он предназначен для определения структуры баз данных, манипулирования данными в реляционных базах данных.

В отличие от других языков, таких как Java, C# или PHP, SQL состоит всего из нескольких слов. Многие поставщики СУБД расширили возможности SQL, введя в язык дополнительные операторы или инструкции. Эти расширения необходимы для обеспечения дополнительной функциональности или для упрощения определенных операций. И хотя часто они бывают очень полезны, подобные расширения специфичны для конкретной СУБД и редко поддерживаются более чем одним поставщиком.

Стандарт SQL контролируется комитетом ANSI (Американским национальным институтом стандартов) и соответственно называется ANSI SQL. Все крупные СУБД, даже те, у которых есть собственные расширения, поддерживают ANSI SQL. Этот стандарт в данное время также принимается ISO (Международной организацией по стандартизации).

В процессе исследований, посвященных тому, как именно должна быть устроена СУБД, американским комитетом по стандартизации ANSI сформулирована трехуровневая система организации БД: уровень внешних моделей, концептуальный уровень и физический уровень [Баканов, Романова, Крюкова 2010].

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

Модели концептуального уровня должны выражать информацию о предметной области в виде, который не зависит от используемой СУБД. Эти модели называются инфологическими, или семантическими, и отражают фиксацию и описание объектов предметной области, их свойств и взаимосвязей в естественной и удобной для разработчиков и других пользователей форме.

Реляционная концептуальная схема

Рассмотрим реляционную модель на примере Кокандского педагогического института. Начнем работу с составления реляционной концептуальной схемы.

Под концептуальной схемой понимается описание логической структуры всей БД. Концептуальная схема педагогического института включает в себя 6 отношений под названиями ЗДАНИЕ, ФАКУЛЬТЕТ, ЗАНЯТИЯ, ПРЕДМЕТ, ГРУППА, ЭКЗАМЕН.

Ниже (рис. 1) приведена реляционная концептуальная схема информационной модели педагогического института:

Рис. 1. Концептуальная схема информационной модели

Рис. 2. Таблицы реляционной базы данных

Реляционная БД состоит из шести таблиц (рис. 2). Эту базу можно сколько угодно расширять. После создания этих таблиц можно будет создать запросы - например, получить ключи всех экзаменов, принимаемых Иномовым на факультете Ф. Из таблицы видно, что на факультете физики Инобов принимает два экзамена: первый экзамен с кодом Ф-1 проводится по астрономии в ц-й группе, а второй с кодом Ф-к - по физике твердых тел в 4-й группе.

Реляционная концептуальная схема информационной модели педагогического института изображена с помощью кластера (см. рис. 3). В этой концептуальной схеме обиенты предметной области изображены в виде таблиц.

Рис. 3. Реляционная концептуальная схема

Взаимосвязи между таблицами в Microsoft Access представлены не рис. 4.

Рис. 4. Схема данных

Создание и заполнение таблиц на языке SQL

Для создания таблиц программным способом на языке SQL предназначена инструкция CREATE TABLE. Точный синтаксис инструкции CREATE TABLE может немного отличаться в различных реализациях SQL, поэтому следует обратиться к документации своей СУБД за дополнительной информацией.

Чтобы создать таблицу с помощью инструкции CREATE TABLE, нужно указать следующие данные:

имя новой таблицы, которое задается после ключевых слов CREATE TABLE;

имена и определения столбцов таблицы, разделенные запятыми;

в некоторых СУБД также требуется, чтобы было задано расположение таблицы.

Следующая инструкция создает таблицу ЭКЗАМЕН, используемую в данной статье.

CREATE TABLE ЭКЗАМЕН (

КОД_ПРЕДМЕТА CHAR(10) NOT NULL, ШИФР_ФАКУЛЬТЕТА CHAR(10) NOT NULL, НОМЕР_ГРУППЫ INTEGER NOT NULL,

ДАТА DATETIME NOT NULL,

ЭКЗАМЕНАТОР NOT NULL);

Все столбцы таблицы определены как NOT NULL, т. е. не допускающие значений NULL.

После создания таблиц необходимо выполнить сценарий их заполнения. Заполнение таблицы ЭКЗАМЕН осуществляется с помощью инструкции INSERT. Следующая инструкция INSERT INTO заполняет первую строку таблицы ЭКЗАМЕН:

INSERT INTO ЭКЗАМЕН (КОД_ПРЕДМЕТА,

ШИФР_ФАКУЛЬТЕТА,

НОМЕР_ГРУППЫ,

ДАТА,

ЭКЗАМЕНАТОР)

VALUES(`М-8',

`М',

`1',

`8.06.14',

`Акбаров');

В результате выполнения данной инструкции первая строка будет вставлена в таблицу ЭКЗАМЕН. Таким же образом заполняются остальные строки таблицы ЭКЗАМЕН, используя инструкцию INSERT INTO.

Создание SQL-запросов в реляционных базах данных

После создания и заполнения всех таблиц можно будет создать запросы. Для применения SQL на практике понадобится база данных и СУБД, в которой можно выполнить SQL-запросы. В качестве СУБД был выбран Access, в котором при обращении к БД также применяется язык SQL.

Любой запрос, построенный с помощью мастера или конструктора, имеет соответствующее представление на языке SQL. Конструктор - лишь визуальное средство для создания запросов. В Access можно редактировать запросы непосредственно в режиме SQL. Для переключения режимов отображения запросов используется кнопка «Вид» панели инструментов.

Чаще всего возникает задача построения запросов на извлечение данных, для чего используется SQL-оператор SELECT.

Синтаксис оператора SELECT выглядит следующим образом: SELECT [ALL/DISTINCT] <имя столбцов>

FROM <имя таблиц >

[WHERE <условие выборки >]

[GROUP BY < имя столбцов >]

[HAVING <условие>]

[ORDER BY < имя столбцов >]

Предложения инструкции SELECT должны указываться в определенном порядке. В таблице на рис. 5 перечислены все предложения в порядке, в котором они должны следовать.

Рис. 5. Предложения инструкции SELECT и порядок их следования

Инструкция SELECT предназначена для извлечения одного или нескольких столбцов из таблицы. Чтобы при помощи инструкции SELECT извлечь данные из таблицы, нужно указать, как минимум два параметра: что именно требуется извлечь и откуда. Начнем с простой инструкции SELECT.

Примері. Требуется получить ключи всех экзаменов, принимаемых Иномовым на факультете Ф.

Для решения этой задачи можно написать следующий запрос: SELECT КОД_ПРЕДМЕТА, ШИФР_ФАКУЛЬТЕТА, НОМЕР_

ГРУППЫ FROM ЭКЗАМЕН

WHERE ЭКЗАМЕНАТОР = `Иномов' AND ШИФР_ФАКУЛЬТЕТА='Ф';

Результат данного запроса:

КОД_ПРЕДМЕТА ШИФР_ФАКУЛЬТЕТА НОМЕР_ГРУППЫ

Ф-2 Ф 4

Ф-1 Ф 5

Пример 2. Требуется получить все коды предметов, по которым принимает экзамены Закирова.

SELECT КОД_ПРЕДМЕТА FROM ЭКЗАМЕН

WHERE ЭКЗАМЕНАТОР = `Закирова'

Результат представляет собой коды предметов, по которым принимает экзамены Закирова:

КОД_ПРЕДМЕТА

Ф-4

Все инструкции, с которыми мы имели дело, представляли собой простые запросы: посредством отдельных инструкций извлекались данные из определенных таблиц. Для извлечения данных из нескольких таблиц в SQL применяются подзапросы: запросы, которые вложены в другие запросы.

Пример 3. Найти номера всех зданий, в которых могут заниматься группы второго курса.

Для решения этой задачи можно написать следующий подзапрос:

SELECT НОМЕР_ЗДАНИЯ

FROM ЗАНЯТИЯ

WHERE ШИФР_ФАКУЛЬТЕТА IN (SELECT ШИФР_ ФАКУЛЬТЕТА

FROM ГРУППА WHERE КУРС =2);

Подзапросы всегда обрабатываются, начиная с самой внутренней инструкции SELECT в направлении «изнутри наружу». При обработке предыдущей инструкции СУБД в действительности выполняет две операции.

Вначале она выполняет внутренний подзапрос:

SELECT ШИФР_ФАКУЛЬТЕТА FROM ГРУППА WHERE КУРС =2

Результат внутренного подзапроса:

ШИФР_ФАКУЛЬТЕТА

ФГ

`уГУ

Ж

Внутренний подзапрос возвращает два шифра факультета: ФГ и Ж, которые затем используются как предложение WHERE внешнего запроса в формате с разделителем в виде запятой, необходимом для оператора IN.

Теперь внешний запрос становится таким:

SELECT НОМЕР_ЗДАНИЯ FROM ЗАНЯТИЯ WHERE ШИФР_ФАКУЛЬТЕТА IN (ФГ,Ж)

Запрос внешнего уровня возвращает искомые данные: НОМЕР_ЗДАНИЯ

1

4

Теперь рассмотрим предложение ORDER BY инструкции SELECT для сортировки результатов запроса. В нем указывается имя одного или нескольких столбцов, по которым и сортируются результаты запроса. Рассмотрим следующий пример.

SELECT ЭКЗАМЕНАТОР FROM ЭКЗАМЕН ORDER BY ЭКЗАМЕНАТОР;

Эта инструкция заставляет СУБД отсортировать данные в алфавитном порядке по столбцу ЭКЗАМЕНАТОР. Результат показан ниже.

ЭКЗАМЕНАТОР

Акбаров

Джураев

Закирова

Иномов

Иномов

Солиев

Инструкция SELECT вернула 6 строк, хотя в списке всего пять экзаменаторов. Для того чтобы получить список уникальных значений, применяется ключевое слово DISTINCT:

SELECT DISTINCT ЭКЗАМЕНАТОР FROM ЭКЗАМЕН;

Запрос возвращает только записи с отличающимися значениями ЭКЗАМЕНАТОР, и в результате получено пять строк.

Заключение

В статье рассмотрены методы создания SQL-запросов в реляционных базах данных. SQL является самым популярным языком баз данных, который предназначен для формирования, манипулирования и извлечения данных из реляционной базы данных. Преимущество реляционных баз данных заключается в том, что они могут оперировать гигантскими объемами данных. При использовании реляционных баз данных следует владеть методами взаимодействия с данными баз, что требует хорошего практического знания SQL.

Следует отметить, что язык SQL является не только языком реляционных баз данных, но одновременно служит для взаимодействия с множеством баз данных. Приведенные примеры подходят для систем управления базами данных IBM DB2, Microsoft Access, Microsoft SQL Server, My SQL, Oracle, PostgreSQL, SQLite, MariaDB и Apache OpenOffice Base. Даже при будущем переходе MySQL на программу типа Microsoft SQL Server большая часть команд выглядит одинаково.

Литература

1. Баканов, Романова, Крюкова 2010 - Баканов М.В., Романова В.В., Крюкова Т.П. Базы данных. Системы управления базами данных. Кемерово: Кемеровский технологический институт пищевой промышленности, 2010.

2. Форта 2014 - Форта Б. Освой самостоятельно SQL за 10 минут. М.: Вильямс, 2014.

References

1. Bakanov, M.V., Romanova, V.V. and Kryukova, T.P. (2010), Bazy dannykh. Sistemy upravleniya bazami dannykh [Database. Database management systems], Kemerovskii tekhnologicheskii institut pishchevoi promyshlennosti, Kemerovo, Russia.

2. Forta, B. (2014), Osvoy samostoyatel'no SQL za 10 minut [Master SQL Yourself in 10 Minutes], Williams, Moscow, Russia.

Размещено на Allbest.ru


Подобные документы

  • Базы данных с двумерными файлами и реляционные системы управления базами данных (СУБД). Создание базы данных и обработка запросов к ним с помощью СУБД. Основные типы баз данных. Базовые понятия реляционных баз данных. Фундаментальные свойства отношений.

    реферат [57,1 K], добавлен 20.12.2010

  • Язык структурированных запросов SQL (Structured Query Language) и его место в сфере доступа к информации в реляционных базах данных. Структура и основные типы данных языка. Синтаксис и семантика главных операторов SQL, последние стандарты языка.

    реферат [98,7 K], добавлен 29.03.2012

  • Определение архитектуры реляционных СУБД. Рассмотрение кластеризации как основного способа минимизации числа дисковых операций ввода-вывода данных. Применение индексов для повышения производительности SQL-запросов. Процесс кэширования в базах данных.

    курсовая работа [61,1 K], добавлен 15.07.2012

  • Эволюция концепций баз данных. Требования, которым должна удовлетворять организация базы данных. Модели представления данных. Язык SQL как стандартный язык баз данных. Архитектуры баз данных. Среда Delphi как средство для разработки СУБД.

    дипломная работа [278,9 K], добавлен 26.11.2004

  • Построение инфологической концептуальной модели предметной области. Структура базы данных Microsoft Office Access. Формы, запросы и отчеты. Создание форм, запросов и отчетов в базах данных. Схема данных физической и логической сущности в Erwin 4.0.

    курсовая работа [5,1 M], добавлен 13.12.2011

  • Сущность базы данных. Процесс построения концептуальной модели. Построение реляционной модели, создание ключевого поля. Процесс нормализации. Проектирование базы данных в ACCESS. Порядок создание базы данных. Создание SQL запросов и работа в базе данных.

    курсовая работа [185,6 K], добавлен 08.11.2008

  • Основные проблемы проектирования реляционных баз данных "МВД". Инфологическое описание сущностей и атрибутов программного обеспечения. Разработка датологической модели данных и гарантирование ее безопасности и целостности. Реализация запросов на SQL.

    курсовая работа [3,0 M], добавлен 28.06.2011

  • Изучение реляционной модели данных. Выявление потребности задач в данных и определение состава и структуры информационных объектов. Построение концептуальной модели предметной области. Создание форм, запросов и отчетов с помощью конструктора запросов.

    курсовая работа [6,3 M], добавлен 09.10.2021

  • Сущность и функциональные особенности баз данных, их классификация и типы, внутренняя структура и элементы. Модели данных, хранящихся в базах: иерархическая, сетевая, реляционная, многомерная, объектно-ориентированная. Виды запросов и типы таблиц.

    дипломная работа [66,7 K], добавлен 06.01.2014

  • Особенности разработки инфологической модели и создание структуры реляционной базы данных. Основы проектирования базы данных. Разработка таблиц, форм, запросов для вывода информации о соответствующей модели. Работа с базами данных и их объектами.

    курсовая работа [981,4 K], добавлен 05.11.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.