Basics

Problem

  • Как удобно обращаться к базе данных?

Solution

  • Использовать SQL для обращения к RDBMS и не только к ним

Intro

SQL

  • SQL - один из самых востребованных языков

  • SQL (Structured Query Language - язык структурированных запросов)

  • SQL - формальный декларативный язык, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей системой управления базами данных

  • Первоначально SQL был основным средством доступа пользователя к информации базы данных

SQL

  • Первоначально SQL позволял выполнять следующие операции с таблицами БД:

    • создание новой таблицы

    • добавление записей в таблицу

    • изменение содержимого записей

    • удаление записей из таблицы

    • чтение записей из одной или нескольких таблиц

    • изменение структур таблиц

SQL

  • По мере развития СУБД SQL усложнился и обогатился новыми конструкциями типа:

    • индексы

    • представления

    • триггеры

    • хранимые процедуры

SQL

  • SQL стал приобретать черты, свойственные языкам программирования

  • На SQL реализуется и простая бизнес-логика, если текущей БД достаточно для ее реализации

  • Сейчас SQL - это инструмент разработчика, а не конечного пользователя

Почему SQL так популярен?

  • Строгая математическая основа

    • Реляционная модель данных

    • реляционная алгебра

    • реляционное исчисление

  • Стандарты

    • ANSI SQL-86SQL:2019

  • Большое количество людей знают SQL

    • Производители СУБД реализуют поддержку SQL для расширения количества пользователей

SQL Dialects

  • SQL Dialect != SQL Standard.

  • Не все производители RDBMS реализуют SQL Standard.

  • Поэтому стоит учить и использовать SQL Standard, а не SQL Dialect конкретного производителя.

  • Популярные диалекты:

    • PL/pgSQL для PostgreSQL

    • T-SQL для SQL Server

    • PL/SQL для Oracle® Database

SQL

SQL

  • DDL (Data Definition Language)

  • DQL (Data Query Language)

  • DML (Data Manipulation Language)

  • DCL (Data Control Language)

  • TCL (Transaction Control Language)

SQL

Command types

DDL (Data Definition Language)

  • DDL (Data Definition Language) - язык определения данных;

  • используется для определения структур хранящихся в БД данных

  • Операторы DDL позволяют создавать, изменять и удалять объекты в БД.

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

DQL (Data Query Language)

  • DQL (Data Query Language) - язык запросов данных;

  • используется для извлечения данных из таблиц

DML (Data Manipulation Language)

  • DML (Data Manipulation Language) - язык манипуляции данными;

  • используется для вставки, изменения и удаления данных в таблицах

DCL (Data Control Language)

  • DCL (Data Control Language) - язык определения доступа к данным;

  • используется для контроля доступа к информации БД.

  • Операторы DCL определяют привилегии пользователя и позволяют выдавать и отбирать права на использование DDL и DML определенных операторов к определенным объектам БД.

TCL (Transaction Control Language)

  • TCL (Transaction Control Language)- язык управления транзакциями;

  • используется для контроля обработки транзакций в БД.

  • Операторы TCL включают, как правило, оператор COMMIT для сохранения изменений, сделанных в ходе транзакции, и ROLLBACK для их отмены.

  • Оператор SAVEPOINT можно использовать для разбиения транзакции на несколько частей, и, в зависимости от определенных условий, часть из них "откатить".

Database and Schema

Database and Schema

  • База данных/Database - это упорядоченный набор структурированной информации или данных, необходимых для данной предметной области.

  • Схема/Schema с точки зрения базы данных представляет собой контейнер объектов типа таблиц, триггеров, хранимых процедур и т.п.

Database and Schema for PostgreSQL

  • Schema создается внутри объекта Database.

  • Сервер может управлять несколькими Databases, каждая из которых может включать несколько Schemas.

  • Schema не связана с учетной записью пользователя.

Database and Schema for MariaDB

  • Понятие Schema имеет тождественный смысл с Database.

  • Database является контейнером объектов, к которым пользователь получает доступ.

Database and Schema for SQL Server

  • Начиная с версии 2005 жесткая связь между пользователями и схемами была отменена.

  • Пользователи могут получить доступ на выполнение определенных операций с объектами схемы:

    • чтение

    • запись

    • обновление

    • выполнение

Database and Schema for Oracle® Database

  • Schema привязывается к пользователю

  • Наименование схемы, как правило, является учетной записью пользователя

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

  • Кроме этого она позволяет создавать схему как контейнер одновременно с объектами базы данных.

Типы данных SQL

Типы данных SQL

  • Boolean types

  • Character types

  • Integer types

  • Decimal types

  • Binary data

  • Date/time types

Таблицы

Ограничения

Изменение структуры таблицы