Similar presentations:
Создание_БД_простейшие_запросы_1
1. Создание БД. Простейшие запросы
МИРЭА - Российский технологический университетmirea.ru
Создание БД.
Простейшие запросы
2. SQL
МИРЭА - Российский технологический университетmirea.ru
SQL
SQL (Structured Query Language) —
это язык программирования,
созданный для управления
реляционными базами данных. Язык
SQL является стандартом для
взаимодействия с реляционными
базами данных.
2
3. Создание основных объектов БД
МИРЭА - Российский технологический университетmirea.ru
Создание основных объектов
БД
Команда в SQL представляет собой выражение, которое
завершается точкой с запятой. Когда пользователь вводит такую
команду, СУБД отправляет её серверу для выполнения. При вводе
команд SQL можно использовать любой регистр символов. После
выполнения команды на экране отображаются результаты, а затем
появляется приглашение mysql> (аналогично с другими СУБД),
указывающее на готовность системы к приёму следующей
команды.
3
4. Создание основных объектов БД
МИРЭА - Российский технологический университетmirea.ru
Создание основных объектов
БД
Результаты выполнения запроса СУБД
выводит в виде таблицы, состоящей
из строк и столбцов. В первой строке
этой таблицы содержатся заголовки
столбцов, которые представляют
собой имена столбцов из базы
данных. В последующих строках
таблицы приводятся результаты
выполнения запроса. В случае, если
результатом является не столбец
таблицы, а значение выражения,
СУБД присваивает столбцу имя этого
выражения. Кроме вывода
результатов, СУБД также отображает
информацию о количестве
возвращённых строк и времени
выполнения запроса.
4
5. Создание основных объектов БД
МИРЭА - Российский технологический университетmirea.ru
Создание основных объектов
БД
В одной строке можно разместить несколько SQL-команд
одновременно, при этом каждая команда должна
заканчиваться точкой с запятой. Однако, объединение всех
команд в одну строку не является обязательным. Можно
создавать длинные команды, которые занимают несколько
строк, и это никак не повлияет на работоспособность сервера
5
6. Создание БД
МИРЭА - Российский технологический университетmirea.ru
Создание БД
Чтобы начать работу с реляционной базой данных, сначала
необходимо создать саму базу данных. В SQL это делается с
помощью DDL-команды CREATE, а именно CREATE DATABASE
Этот запрос создаёт базу данных с именем «BD». После
этого можно использовать эту базу данных для создания
таблиц и манипуляции с данными.
6
7. Создание БД
МИРЭА - Российский технологический университетmirea.ru
Создание БД
В MySQL и других СУБД, после создания базы данных её
необходимо выбрать для использования.
7
8. Создание таблиц
МИРЭА - Российский технологический университетmirea.ru
Создание таблиц
Таблицы являются основными структурными
элементами базы данных, где хранятся
данные. Таблицы создаются с помощью
команды CREATE TABLE, в которой
указываются название таблицы и список
столбцов с их типами данных и
ограничениями.
8
9. Создание таблиц
МИРЭА - Российский технологический университетmirea.ru
Создание таблиц
Этот запрос создаёт таблицу Author с четырьмя столбцами:
• author_id — идентификатор автора, автоинкрементный первичный
ключ;
• name — имя автора, не может иметь значение NULL;
• surname — фамилия автора, не может иметь значение NULL;
• birth_date — дата рождения автора, не может иметь значение NULL;
• country_id — внешний ключ, который ссылается на таблицу «Country».
9
10. Создание таблиц
МИРЭА - Российский технологический университетmirea.ru
Создание таблиц
Автоинкремент — это механизм в реляционных базах данных, предназначенный для
автоматической генерации уникальных идентификаторов для каждой новой записи,
добавляемой в таблицу. Данный механизм обычно применяется для создания
первичного ключа, который обеспечивает уникальную идентификацию каждой строки
в таблице.
СУБД самостоятельно присваивает каждому новому элементу последовательности
следующий доступный идентификатор, освобождая пользователя от необходимости
ручного управления значениями первичных ключей.
В PostgreSQL существует специальный тип данных Serial (аналог INT), предназначенный
для упрощения создания автоинкрементных столбцов, которые автоматически
получают уникальные последовательные значения при вставке новых записей.
10
11. Создание таблиц
МИРЭА - Российский технологический университетmirea.ru
Создание таблиц
В реляционных базах данных связь между таблицами устанавливается через механизм внешнего ключа,
что позволяет обеспечить целостность и согласованность данных.
Ключевым условием для создания связи между таблицами является соответствие типов данных столбцов
первичного ключа родительской таблицы и внешнего ключа дочерней таблицы. Вторым важным
условием является индексация этих столбцов: первичный ключ автоматически индексируется при его
определении с помощью ключевого слова PRIMARY KEY, а индекс для внешнего ключа создается во время
обработки инструкции FOREIGN KEY.
В соответствии с требованиями минимальной нотации, после ключевого слова FOREIGN KEY указывается
имя столбца (или столбцов) внешнего ключа дочерней таблицы, за которым следуют имя родительской
таблицы и соответствующий столбец первичного ключа после ключевого слова REFERENCES.
При создании внешнего ключа можно дополнительно задать правила поддержания ссылочной
целостности, определяющие поведение системы при изменении (ON UPDATE) или удалении (ON DELETE)
данных в родительской таблице. Эти правила обеспечивают контроль целостности данных, проверяя, что
все ссылки на изменяемые или удаляемые записи остаются корректными. Если при создании внешнего
ключа поведение при изменении или удалении данных не было явно указано, то система по умолчанию
применяет режим RESTRICT, который предотвращает операции, нарушающие целостность данных.
11
12. Создание таблиц
МИРЭА - Российский технологический университетmirea.ru
Создание таблиц
Для просмотра созданных таблиц в MySQL используется команда SHOW. Для
просмотра структуры конкретной таблицы необходима команда DESCRIBE (можно
сокращать до DESC). В PostgreSQL для этих целей существует команда \dt . Для
просмотра структуры таблицы — \d.
12
13. Изменение таблиц
МИРЭА - Российский технологический университетmirea.ru
Изменение таблиц
В процессе разработки и эксплуатации БД часто возникает необходимость в
изменении структуры существующих таблиц. Эти изменения могут включать
добавление новых столбцов, изменение их типов, переименование таблиц или
столбцов, а также удаление столбцов, которые больше не нужны. Для выполнения
таких операций в SQL используется команда ALTER TABLE.
Команда ADD COLUMN используется для добавления нового столбца в
существующую таблицу. Этот столбец может иметь любое допустимое имя и тип
данных.
13
14. Изменение таблиц
МИРЭА - Российский технологический университетmirea.ru
Изменение таблиц
Команда RENAME COLUMN позволяет переименовать существующий столбец в
таблице.
Команда RENAME TO позволяет переименовать всю таблицу, изменив ее имя.
Команда DROP COLUMN используется для удаления столбца из таблицы
14
15. Изменение таблиц
МИРЭА - Российский технологический университетmirea.ru
Изменение таблиц
Команда MODIFY позволяет изменять тип данных существующего столбца или
добавления/удаления ограничений. В PostgreSQL для этой задачи используется
комбинация ALTER COLUMN … TYPE.
Для удаления таблицы достаточно команды DROP TABLE с указанием имени
таблицы.
15
16. Основные манипуляции с данными
МИРЭА - Российский технологический университетmirea.ru
Основные манипуляции с
данными
После создания таблиц необходимо заполнить их данными. Для этого необходимо
рассмотреть основные манипуляции с данными (DML-команды).
Команда INSERT используется для добавления новых строк в таблицу. В этой
команде указываются таблица, в которую нужно вставить данные, а также
значения, которые должны быть добавлены. Можно вставлять данные только в
определённые столбцы, остальные столбцы получат значения по умолчанию, если
они определены. Если значения вставляются во все столбцы таблицы, можно
опустить список столбцов
16
17. Основные манипуляции с данными
МИРЭА - Российский технологический университетmirea.ru
Основные манипуляции с
данными
Команда UPDATE используется для изменения существующих данных в таблице.
Она позволяет обновить значения в одном или нескольких столбцах для
выбранных строк. Запрос в примере обновляет фамилию автора с id равным 2 на
де Сент-Экзюпери. Если WHERE не используется, будут обновлены все строки
таблицы, что может привести к нежелательным последствиям.
Команда SET задаёт столбцы, которые нужно изменить, и новые значения для этих
столбцов. Условие WHERE позволяет ограничить обновление конкретными
строками. Это критически важно, чтобы избежать случайного обновления всех
данных в таблице.
17
18. Основные манипуляции с данными
МИРЭА - Российский технологический университетmirea.ru
Основные манипуляции с
данными
Команда DELETE используется для удаления строк из таблицы. Запрос в примере удаляет
строку из таблицы author, где id равен 2. Если пропустить условие WHERE, команда удалит
все строки в таблице.
Чтобы удалить все строки, можно также использовать TRUNCATE TABLE, которая очищает
таблицу быстрее, но с потерей связей с другими таблицами и без возможности возврата.
18
19. Выборка данных
МИРЭА - Российский технологический университетmirea.ru
Выборка данных
Команда SELECT позволяет выбрать конкретные столбцы из одной или
нескольких таблиц и возвращает результат в виде набора строк.
Для выбора данных необходимо указать имя столбца или столбцов, а также имя
таблицы, из которой необходимо извлечь данные. Если нужно выбрать все
столбцы из таблицы, можно использовать символ «*».
Когда в запросе используется оператор DISTINCT, SQL возвращает только
уникальные строки, игнорируя повторяющиеся. Это позволяет сократить
количество возвращаемых данных и сфокусироваться на уникальных
комбинациях значений.
19
20. Выборка данных
МИРЭА - Российский технологический университетmirea.ru
Выборка данных
Команда WHERE позволяет отфильтровать строки в таблице на основе заданных
условий. Она используется для извлечения только тех строк, которые
соответствуют определённым критериям. Запрос в примере возвращает имя и
фамилию автора, у которого идентификатор равен 1. Вместе с оператором
WHERE могут применяться различные типы ограничений, обеспечивающие более
точную фильтрацию данных в запросах SQL (синтаксис в СУБД MySQL и
PostgreSQL идентичен).
20
21. Выборка данных
МИРЭА - Российский технологический университетmirea.ru
Выборка данных
Сравнение значений. Осуществляется сравнение результатов вычислений одного
выражения с другим с использованием операторов сравнения. Эти операторы
позволяют проверить, является ли одно значение больше, меньше, равно или не
равно другому значению.
21
22. Выборка данных
МИРЭА - Российский технологический университетmirea.ru
Выборка данных
Проверка принадлежности к диапазону (BETWEEN). Этот тип ограничения
используется для проверки того, попадает ли результат вычисления выражения в
определённый диапазон значений.
Проверка принадлежности к определенному набору возможных значений (IN).
Этот тип используется, когда требуется отфильтровать строки на основе
нескольких конкретных значений
22
23. Выборка данных
МИРЭА - Российский технологический университетmirea.ru
Выборка данных
Соответствие шаблону (LIKE). Этот вид ограничения применяется для
проверки, удовлетворяет ли строковое значение определённому
шаблону. Шаблон может включать специальные символы и позволяет
искать строки, начинающиеся, заканчивающиеся или содержащие
определённые последовательности символов. В СУБД MySQL оператор
LIKE по умолчанию нечувствителен к регистру. Однако в PostgreSQL, LIKE
может быть чувствительным к регистру, и для нечувствительного поиска
используется оператор ILIKE.
«%» — представляет собой любое количество символов, включая 0
символов. Этот символ используется для поиска строк, содержащих
любые последовательности символов до, после или внутри шаблона.
Расположение «%» влияет на поиск необходимых символов.
«_» — представляет собой ровно один символ. Используется для поиска
строк, где на месте символа-шаблона должен быть любой один символ.
Расположение «_» влияет на поиск необходимых символов.
23
24. Выборка данных
МИРЭА - Российский технологический университетmirea.ru
Выборка данных
24
25. Выборка данных
МИРЭА - Российский технологический университетmirea.ru
Выборка данных
Проверка на неопределённость (NULL). Осуществляется проверка, содержит ли
конкретное поле неопределённое значение NULL. Это важно, поскольку NULL
представляет отсутствие данных, а не конкретное значение, и требует
специального подхода при фильтрации.
25
26. Сортировка данных
МИРЭА - Российский технологический университетmirea.ru
Сортировка данных
Команда ORDER BY используется для сортировки строк, возвращаемых SQLзапросом, по указанным столбцам.
По умолчанию строки сортируются в порядке возрастания (ключевое слово
ASC), но можно явно указать и убывающий порядок (ключевое слово DESC).
Синтаксис в СУБД MySQL и PostgreSQL идентичен.
26
27. Сортировка данных
МИРЭА - Российский технологический университетmirea.ru
Сортировка данных
Если требуется сортировка в обратном порядке, можно использовать ключевое
слово DESC.
SQL позволяет выполнять сортировку по нескольким столбцам одновременно. В
этом случае строки сначала сортируются по первому столбцу, затем по второму (для
строк с одинаковыми значениями в первом столбце), и так далее.
27
28. Сортировка данных
МИРЭА - Российский технологический университетmirea.ru
Сортировка данных
В запросах можно указывать номера позиций столбцов в списке SELECT, вместо их
имён. Это полезно, когда имя столбца длинное или используется агрегатная функция.
При сортировке данных в таблицах, содержащих NULL значения, важно понимать,
как они обрабатываются. В большинстве СУБД NULL значения считаются
"наименьшими" и при сортировке по возрастанию размещаются в начале списка.
28
29. Практическая работа
МИРЭА - Российский технологический университетmirea.ru
Практическая работа
Для сдачи практической работы необходимо выполнить все запросы,
содержащиеся в файлах «Практика SQL 1» и «Практика SQL 2» по УТВЕРЖДЕННОЙ
предметной области (файлы находятся в папке «Материалы к практическим
занятиям» в СДО). Минимальное количество кортежей в таблицах – 10. После
выполнения задания необходимо показать получившиеся таблицы и выполнить
запросы, которые потребует преподаватель.
29
database