Что такое sql

Введение в sql

Шпаргалка по типам данных SQL

Числовые типы данных

Command Описание
От -128 до 127 нормальный от 0 до 255 БЕЗЗНАКОВЫЙ.
От -32768 до 32767 нормально
От 0 до 65535 БЕЗЗНАКОВ.
От -8388608 до 8388607 нормально
От 0 до 16777215 БЕЗЗНАКОВ.
От -2147483648 до 2147483647 нормально
От 0 до 4294967295 БЕЗЗНАКОВ.
От -9223372036854775808 до 9223372036854775807 нормально
От 0 до 18446744073709551615 БЕЗЗНАКОВ.
Небольшое приблизительное число с плавающей десятичной точкой.
Большое число с плавающей десятичной точкой.
A DOUBLE хранится в виде строки, аллоwing для фиксированной десятичной точки. Выбор для хранения валютных ценностей.

Типы текстовых данных

Command Описание
Фиксированный раздел длиной от 0 до 255 символов.
Раздел переменной длиной от 0 до 255 символов.
Строка длиной не более 255 символов.
Строка длиной не более 65535 символов.
Строка длиной не более 65535 символов.
Строка длиной не более 16777215 символов.
Строка длиной не более 16777215 символов.
Строка длиной не более 4294967295 символов.
Строка длиной не более 4294967295 символов.

Другие типы данных

Command Описание
Для сохранения текстового значения, выбранного из списка предопределенных текстовых значений.
Это также используется для хранения текстовых значений, выбранных из списка предопределенных текстовых значений. Он может иметь несколько значений.
Синоним TINYINT(1), используемый для хранения логических значений.
Как и в случае с CHAR, разница в том, что тексты хранятся в двоичном формате.
Как и в случае с VARCHAR, разница в том, что тексты хранятся в двоичном формате.

Примеры использования предикатов

Предикаты представляют собой выражения, принимающие истинностное значение. Они могут представлять собой как одно выражение, так и любую комбинацию из неограниченного количества выражений, построенную с помощью булевых операторов AND, OR или NOT. Кроме того, в этих комбинациях может использоваться SQL-оператор IS, а также круглые скобки для конкретизации порядка выполнения операций

Предикат в языке SQL может принимать одно из трех значений TRUE (истина), FALSE (ложь) или UNKNOWN (неизвестно). Исключение составляют следующие предикаты: NULL (отсутствие значения), EXISTS (существование), UNIQUE (уникальность) и MATCH (совпадение), которые не могут принимать значение UNKNOWN.

Правила комбинирования всех трех истинностных значений легче запомнить, обозначив TRUE как 1, FALSE как 0 и UNKNOWN как 1/2 (где то между истинным и ложным).

AND с двумя истинностными значениями дает минимум этих значений. Например, TRUE AND UNKNOWN будет равно UNKNOWN.

OR с двумя истинностными значениями дает максимум этих значений. Например, FALSE OR UNKNOWN будет равно UNKNOWN.

Отрицание истинностного значения равно 1 минус данное истинностное значение. Например, NOT UNKNOWN будет равно UNKNOWN.

Помимо этого, используются предикаты сравнения.

Предикат сравнения представляет собой два выражения, соединяемых оператором сравнения. Имеется шесть традиционных операторов сравнения: =, >, <, >=, <=, <>.

Данные типа NUMERIC (числа) сравниваются в соответствии с их алгебраическим значением.

Данные типа CHARACTER STRING (символьные строки) сравниваются в соответствии с их алфавитной последовательностью. Если a1a2…an и b1b2…bn — две последовательности символов, то первая «меньше» второй, если а1<b1, или а1=b1 и а2<b2 и т.д. Считается также, что а1а2…аn<b1b2…bm, если n<m и а1а2…аn=b1b2…bn, т.е. если первая строка является префиксом второй. Например, ‘folder'<‘for’, т.к. первые две буквы этих строк совпадают, а третья буква строки ‘folder’ предшествует третьей букве строки ‘for’. Также справедливо неравенство ‘bar’ < ‘barber’, поскольку первая строка является префиксом второй.

Данные типа DATETIME (дата/время) сравниваются в хронологическом порядке.

Данные типа INTERVAL (временной интервал) преобразуются в соответствующие типы, а затем сравниваются как обычные числовые значения типа NUMERIC.

Пример. Получить информацию о компьютерах, имеющих частоту процессора не менее 500 Мгц и цену ниже $800:

SELECT * FROM PC

WHERE speed >= 500 AND price < 800;

Запрос возвращает следующие данные (Таблица 6.):

Таблица 6. – Пример информационного запроса.

Существуют так же и другие предикаты, например, BETWEEN, IN, LIKE.

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

Например, запрос:

SELECT ram AS Mb, hd Gb

FROM PC

WHERE cd = ’24x’;

переименует столбец ram в Mb (мегабайты), а столбец hd — в Gb (гигабайты). Этот запрос возвратит объемы оперативной памяти и жесткого диска для тех компьютеров, которые имеют 24-скоростной CD-ROM (Таблица 7.):

Таблица 7. – Пример запроса SELECT AS.

Получение итоговых значений:

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

Таблица 8 .– Описание (агрегатных) функций.

Все эти функции возвращают единственное значение. При этом, функции COUNT, MIN и MAX применимы к любым типам данных, в то время как SUM и AVG используются только для числовых полей. Разница между функцией COUNT(*) и COUNT() состоит в том, что вторая при подсчете не учитывает NULL-значения.

Пример. Найти минимальную и максимальную цену на персональные компьютеры:

SELECT MIN(price) AS Min_price, MAX(price) AS Max_price

FROM PC;

Результатом будет единственная строка, содержащая агрегатные значения (таблица 9.):

Таблица 9. – Строка содержащая (агрегатные) значения.

Для просмотра данных наиболее удобно использовать совместно значения оператора COUNT — счетчик (позволяет узнать количество записей в запросе), и оператора CURSOR — позволяет принимать не все записи сразу, а по одной (указанной пользователем).

Применение SQL в современном мире

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

Применение SQL затрагивает различные сферы деятельности, включая:

  • Веб-разработка: SQL используется для управления и обработки данных на веб-сайтах и веб-приложениях. Благодаря SQL можно создавать динамические страницы, отображать информацию из базы данных, реализовывать поиск по сайту и многое другое.
  • Аналитика: SQL позволяет осуществлять быстрый и эффективный анализ данных, извлекая ценную информацию и выводя статистику. Аналитические запросы с помощью SQL помогают принимать взвешенные решения на основе фактических данных.
  • Управление базами данных: SQL является основным инструментом для администрирования и управления базами данных. С помощью SQL можно создавать таблицы, индексы и ограничения, управлять пользователями и правами доступа, резервировать и восстанавливать базы данных и многое другое.
  • Мобильное приложение: SQL широко используется в мобильной разработке для работы с базами данных на устройствах. SQL помогает сохранять и извлекать данные, обновлять информацию и синхронизировать данные между мобильными устройствами и сервером.
  • Big Data и машинное обучение: SQL применяется при работе с большими объемами данных и машинным обучением. С помощью SQL можно проводить сложные аналитические запросы для поиска закономерностей и обнаружения паттернов в больших наборах данных.

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

Несколько слов про TSQL

В указанных выше пояснениях определили, что SQL — это язык запросов для большинства RDBMS-продуктов. Да, совместимость (compatibility) — это хорошо, но совместимости много не бывает. Именно поэтому некоторые поставщики СУБД создали собственные аналоги языков структурированных запросов (languages), а если быть точнее — расширили имеющееся решение, но уже с учетом потребностей своего продукта. Как раз таким аналогом и является процедурное расширение Transact Structure Query Language (TSQL). Это не что иное, как специализированная версия, заточенная под MS SQL Server (2012, 2016 и пр., версия неважна).

Используя TSQL-операторы, разработчик может писать запросы и выполнять нужные операции над таблицами, объединять их, добавлять ограничения, писать хранимые процедуры и индексы, осуществлять транзакции и многое другое. Язык TSQL поддерживает разные полезные функции, многие из которых присутствуют и в версии-первоисточнике. К примеру, агрегатные функции, которые выполняют вычисления на наборе значений. Либо оконные функции и инструкцию OVER (OVER определяет окно для использования оконной функции). Оконные функции не меняют выборку, как GROUP BY, а лишь добавляют дополнительную информацию о ней. Если же вспомнить JOIN, то, несмотря на одинаковую производительность конструкций JOIN и OVER, последняя предоставляет больше свободы, чем жесткий JOIN.

Как бы там не было, есть и отличия, так как в TSQL добавили:

— управляющие операторы;

— поддержку аутентификации Microsoft Windows;

— глобальные и локальные переменные;

— дополнительные функции, предназначенные для обработки дат, строк и пр.

SQL commands and syntax

SQL is, fundamentally, a programming language designed for accessing, modifying and extracting information from relational databases. As a programming language, SQL has commands and a syntax for issuing those commands.

SQL commands are divided into several different types, including the following:

  • Data Definition Language (DDL) commands are also called data definition commands because they are used to define data tables.
  • Data Manipulation Language (DML) commands are used to manipulate data in existing tables by adding, changing or removing data. Unlike DDL commands that define how data is stored, DML commands operate in the tables defined with DDL commands.
  • Data Query Language consists of just one command, SELECT, used to get specific data from tables. This command is sometimes grouped with the DML commands.
  • Data Control Language commands are used to grant or revoke user access privileges.
  • Transaction Control Language commands are used to change the state of some data — for example, to COMMIT transaction changes or to ROLLBACK transaction changes.

SQL syntax, the set of rules for how SQL statements are written and formatted, is similar to other programming languages. Some components of SQL syntax include the following.

SQL statements start with a SQL command and end with a semicolon (;), for example:

This SELECT statement extracts all of the contents of a table called customers.

SQL statements are case-insensitive, meaning they can be written using lowercase, uppercase or a combination. However, it is customary to write out SQL keywords — commands or control operators — in all-caps and table/column names in lowercase. Words in the statement can be treated as case-sensitive using quotes, so the following two statements produce identical results.

These two statements are different:

SQL statements are terminated only by the semicolon, meaning that more complex statements can be rendered across multiple lines, like this one:

This command selects the contents of the columns name, telephone and age in the table customers.

SQL statements can incorporate program flow controls, meaning that a statement can incorporate table and row selection — as in the previous example — and then operate on the data contained in those columns. For example, the following command selects the name, telephone number and birthdate for all customers whose age is over 21:

Детальный ответ

Что такое SQL (Structured Query Language)?

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

SQL был разработан компанией IBM в 1970-х годах и с тех пор стал широко распространен. Все реляционные базы данных, такие как MySQL, Oracle, Microsoft SQL Server и PostgreSQL, поддерживают SQL. Этот язык имеет простой синтаксис и лаконичность, что делает его дружественным для использования и изучения.

Что такое запросы SQL?

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

DML (Data Manipulation Language)

DML-запросы используются для изменения данных в таблицах базы данных. Некоторые из самых распространенных DML-операторов включают:

  • SELECT: Используется для извлечения данных из базы данных.
  • INSERT: Используется для добавления новых данных в таблицу базы данных.
  • UPDATE: Используется для обновления существующих данных в таблице базы данных.
  • DELETE: Используется для удаления данных из таблицы базы данных.

Пример использования оператора SELECT:

DDL (Data Definition Language)

DDL-запросы используются для определения структуры базы данных. Некоторые из самых распространенных DDL-операторов включают:

  • CREATE: Используется для создания новой таблицы, базы данных или других объектов.
  • ALTER: Используется для изменения структуры существующей таблицы или базы данных.
  • DROP: Используется для удаления существующей таблицы, базы данных или других объектов.

Пример использования оператора CREATE:

DCL (Data Control Language)

DCL-запросы используются для управления разрешениями доступа к данным. Некоторые из самых распространенных DCL-операторов включают:

  • GRANT: Используется для предоставления пользователю разрешений на выполнение определенных операций.
  • REVOKE: Используется для отзыва разрешений у пользователя.

Пример использования оператора GRANT:

Зачем изучать SQL?

Изучение SQL имеет несколько основных преимуществ:

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

SQL (Structured Query Language) — это мощный язык программирования для работы с реляционными базами данных. Он позволяет нам создавать, изменять и управлять данными в базе данных. Независимо от того, являетесь ли вы разработчиком ПО, аналитиком данных или просто любознательным студентом, знание SQL будет полезным и ценным навыком для вас. Изучение SQL открывает двери к миру баз данных и дает возможность более эффективно работать и анализировать данные.

Структура языка SQL

Основу языка SQL составляют команды, которые должны предоставлять пользователям следующие возможности:

  • создавать базу данных и таблицы с полным описанием их структуры;
  • выполнять основные операции манипулирования данными (добавление, изменение, удаление данных);
  • выполнять запросы, осуществляющие преобразование данных в необходимую информацию.

Поэтому, в язык SQL в качестве составных частей входят:

  • язык определения данных (Data Definition Language, DDL);
  • язык манипулирования данными (Data Manipulation Language, DML);
  • язык управления данными (Data Control Language, DCL);
  • команды управления транзакциями (Transaction Control Language, TCL).

Подчеркнем, что это не отдельные языки, а различные команды одного языка. Такое деление проведено только лишь с точки зрения различного функционального назначения этих команд.

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

Язык определения данных (DDL) используется для создания и изменения структуры базы данных и ее составных частей – таблиц, индексов, представлений (виртуальных таблиц), а также триггеров и хранимых процедур. Основными его командами являются:

  • CREATE DATABASE (создать базу данных)
  • CREATE TABLE (создать таблицу)
  • CREATE VIEW (создать представление)
  • CREATE INDEX (создать индекс)
  • CREATE TRIGGER (создать триггер)
  • CREATE PROCEDURE (создать хранимую процедуру)
  • ALTER DATABASE (модифицировать базу данных)
  • ALTER TABLE (модифицировать таблицу)
  • ALTER VIEW (модифицировать представление)
  • ALTER INDEX (модифицировать индекс)
  • ALTER TRIGGER (модифицировать триггер)
  • ALTER PROCEDURE (модифицировать хранимую процедуру)
  • DROP DATABASE (удалить базу данных)
  • DROP TABLE (удалить таблицу)
  • DROP VIEW (удалить представление)
  • DROP INDEX (удалить индекс)
  • DROP TRIGGER (удалить триггер)
  • DROP PROCEDURE (удалить хранимую процедуру).

Язык манипулирования данными (DML) позволяет получать доступ и манипулировать данными в существующих объектах базы данных (таблицах и представлениях). Он состоит из четырех команд:

  • SELECT (выбрать);
  • INSERT (вставить);
  • UPDATE (обновить);
  • DELETE (удалить).

Язык управления данными (DCL) используется для управления правами доступа к данным и выполнением процедур в многопользовательской среде. Более точно его можно назвать “язык управления доступом”. Он состоит из двух основных команд:

  • GRANT (дать права на ряд действий над некоторым объектом БД);
  • REVOKE (забрать права).

Команды управления транзакциями (TCL) позволяют управлять изменениями, сделанными в результате DML-запросов. Пользователь группирует DML-запросы (один или несколько) в логическую единицу, называемую транзакцией, которая является атомарной, т.е. выполняется целиком или не выполняется вовсе. Благодаря этим командам можно осуществлять следующие действия:

  • BEGIN TRANSACTION (начать транзакцию);
  • COMMIT TRANSACTION (завершить транзакцию);
  • ROLLBACK TRANSACTION (откатить транзакцию);
  • SAVEPOINT TRANSACTION (сохранить промежуточную точку выполнения транзакции).

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

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

Post Views: 729

Основные функции SQL

Ключевые функции этого языка предназначены для работы с реляционными таблицами и массивами данных, которые в них хранятся. Реляционная таблица – это любая база данных, в которой хранится структурированная информация. Упрощенно её можно представить, как таблицу Excel с бесконечно большим количеством столбцов, а также строк, в каждой ячейке которой хранится определённая информация.

Разберём, что такое база SQL на конкретном примере.  У вас есть база данных такси (Data base), где каждому клиентскому аккаунту соответствует номер телефона, карта, привязанная к аккаунту, каждая поездка, которую совершил клиент за всё время работы вашей службы. К тому же, клиенты могут ставить оценку водителю за каждый маршрут, писать комментарии, выбирать дополнительные опции.

Информация хранится в базе данных, которая не может проанализировать сама себя или выдать вам готовый массив данных в ответ на ваш запрос. Объяснить, что такое SQL в программировании можно на простом примере. У вас есть доступ к базе данных, но для отчётности нужно узнать, сколько клиентов совершили поездку на такси 01 марта 2023 года в период с 9:00 до 9:15 в вашем городе. Или сравнить количество поездок вашего города с соседним. Или уточнить, сколько клиентов оплатили поездку картой, а сколько – наличными. Анализ информации вручную может занять от нескольких часов до нескольких дней, поэтому на помощь клиенту приходит SQL. Он, как переводчик, объяснит базе данных смысл вашего запроса, проанализирует и соберёт данные, выдаст их в виде готовой таблицы, в которой не будет лишней информации (например, данных о поездках клиентов в другой промежуток времени).

Схема «Клиент-Переводчик-Аудитория» просто и наглядно объясняет, что такое сущность SQL. Как используется SQL

Любая, даже небольшая, компания может использовать SQL, что надо знать для работы – набор основных команд, которые позволят вам:

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

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

Список ключевых слов SQL:

АБСОЛЮТНЫЙ ДЕЙСТВИЯ ДОБАВЛЯТЬ ADMIN
ПОСЛЕ ОБЩИЙ ALIAS ВСЕ
ВЫДЕЛИТЬ ALTER А ТАКЖЕ ЛЮБОЙ
ЯВЛЯЮТСЯ ARRAY КАК ASC
УТВЕРЖДЕНИЕ УТВЕРЖДЕНИЕ В ATOMIC
РАЗРЕШЕНИЕ ДО НАЧАТЬ BIGINT
BINARY НЕМНОГО большой двоичный объект БУЛЕВЫ
И ТО И ДРУГОЕ ШИРИНА ОТ ВЫЗОВ
CASCADE каскадируемой ДЕЛО БРОСАТЬ
КАТАЛОГ CHAR ПЕРСОНАЖ ПРОВЕРЯТЬ
УЧЕБНЫЙ КЛАСС CLOB БЛИЗКО СОРТИРОВКА
COLLATION СБОР КОЛОНКА COMMIT
ЗАВЕРШЕНИЕ СОСТОЯНИЕ CONNECT ПОДКЛЮЧЕНИЕ
CONSTRAINT ТРУДНОСТИ КОНСТРУКТОР СОДЕРЖИТ
ПРОДОЛЖИТЬ КОРРЕСПОНДЕНТ СОЗДАЙТЕ ПЕРЕСЕКАТЬ
CUBE ТОК ТЕКУЩАЯ ДАТА current_path
ТЕКУЩАЯ РОЛЬ ТЕКУЩЕЕ ВРЕМЯ CURRENT_TIMESTAMP ТЕКУЩИЙ ПОЛЬЗОВАТЕЛЬ
КУРСОР ЦИКЛ ДАННЫЕ КАНАЛ ПЕРЕДАЧИ ДАННЫХ
ДАТА ДЕНЬ DEALLOCATE декабрь
ДЕСЯТИЧНЫЙ DECLARE ДЕФОЛТ откладываемые
УДАЛЯТЬ ГЛУБИНА DEREF DESC
DESCRIPTOR DESTRUCTOR ДИАГНОСТИКИ ТОЛКОВЫЙ СЛОВАРЬ
ОТКЛЮЧИТЬ ДЕЛАТЬ ДОМЕН DOUBLE
DROP ЭЛЕМЕНТ END-EXEC Равных
ПОБЕГ КРОМЕ ИСКЛЮЧЕНИЕ ВЫПОЛНИТЬ
ВЫХОД Увеличить РАСШИРЕНИЕ ЛОЖНЫЙ
ПЕРВЫЙ FLOAT ЗА ИНОСТРАННЫЕ
СВОБОДНО ОТ ФУНКЦИЯ FUSION
ГЕНЕРАЛЬНЫЙ ПОЛУЧИТЬ ГЛОБАЛЬНЫЙ ИДТИ К
GROUP GROUPING HANDLER HASH
ЧАС ИДЕНТИЧНОСТЬ ЕСЛИ ИГНОРИРУЙТЕ
СРОЧНАЯ В ИНДИКАТОР ИНИЦИАЛИЗИРОВАТЬ
ПЕРВОНАЧАЛЬНО ВНУТРЕННИЙ INOUT ВХОД
ВСТАВИТЬ INT INTEGER ПЕРЕСЕЧЕНИЕ
INTERSECTION ИНТЕРВАЛ В ЯВЛЯЕТСЯ
ИЗОЛЯЦИЯ ITERATE ПРИСОЕДИНИТЬСЯ KEY
ЯЗЫК БОЛЬШОЙ ПРОШЛОЙ LATERAL
ВЕДУЩИЙ ПОКИДАТЬ ОСТАВИЛ МЕНЬШЕ
УРОВЕНЬ ЛАЙК ПРЕДЕЛ МЕСТНЫЙ
МЕСТНОЕ ВРЕМЯ LOCALTIMESTAMP ЛОКАТОР LOOP
МАТЧ ЧЛЕН СООТВЕТСТВУЕТ MERGE
МИНУТЫ модифицирует ИЗМЕНИТЬ МОДУЛЬ
МЕСЯЦ MULTISET ИМЕНА НАЦИОНАЛЬНАЯ
ПРИРОДНЫЙ NCHAR NCLOB NEW
СЛЕДУЮЩИЙ НЕТ НИКТО NORMALIZE
НЕ НОЛЬ NUMERIC ОБЪЕКТ
О OFF OLD НА
ТОЛЬКО ОТКРЫТЬ РАБОТА ВАРИАНТ
ИЛИ ЖЕ ПОРЯДОК ORDINALITY ИЗ
ВНЕШНИЙ ВЫХОД PAD ПАРАМЕТР
ПАРАМЕТРЫ ЧАСТИЧНОЕ ДОРОЖКА СРОК
постфикс Precedes ТОЧНОСТЬ ПРЕФИКС
ПРЕДВАРИТЕЛЬНЫЙ ЗАКАЗ ПОДГОТОВИТЬ СОХРАНИТЬ ПЕРВИЧНЫЙ
ПРИОР ЛЬГОТЫ ПРОЦЕДУРА ОБЩЕСТВЕННОЕ
ЧИТАТЬ ЧИТАЕТ РЕАЛЬНЫЙ RECURSIVE
REDO REF РЕКОМЕНДАЦИИ СПРАВКА
РОДСТВЕННИК ПОВТОРЕНИЕ RESIGNAL RESTRICT
РЕЗУЛЬТАТ ВЕРНУТЬ ВОЗВРАТ КЕУОКЕ
ПРАВО РОЛЬ ROLLBACK СВЕРНУТЬ
РЕГЛАМЕНТНОЕ СТРОКА РЯДЫ SAVEPOINT
SCHEMA SCROLL ПОИСК ВТОРОЙ
РАЗДЕЛ ВЫБРАТЬ ПОСЛЕДОВАТЕЛЬНОСТЬ СЕССИЯ
SESSION_USER ЗАДАВАТЬ НАБОРЫ СИГНАЛ
РАЗМЕР SMALLINT КОНКРЕТНЫЙ SPECIFICTYPE
SQL SqlException SQLSTATE SQLWARNING
НАЧНИТЕ ГОСУДАРСТВО STATIC СОСТАВ
SUBMULTISET преуспевает SUM SYSTEM_USER
ТАБЛИЦА TABLESAMPLE ВРЕМЕННОЕ ПРЕКРАТИТЬ
ЧЕМ ЗАТЕМ ВРЕМЯ TIMESTAMP
TIMEZONE_HOUR TIMEZONE_MINUTE К TRAILING
СДЕЛКА ПЕРЕВОД ЛЕЧИТЬ СПУСКОВОЙ КРЮЧОК
ПРАВДА UESCAPE ПОД UNDO
UNION УНИКАЛЬНАЯ НЕИЗВЕСТНЫЙ ДО ТЕХ ПОР
ОБНОВИТЬ ИСПОЛЬЗОВАНИЕ USER С ПОМОЩЬЮ
ЗНАЧЕНИЕ ЦЕННОСТИ VARCHAR ПЕРЕМЕННЫЕ
VARYING ПОСМОТРЕТЬ КОГДА ВСЯКИЙ РАЗ, КОГДА
ГДЕ В ТО ВРЕМЯ КАК С ЗАПИСЫВАТЬ
ГОД ZONE

Преимущества и недостатки

Преимущества

Независимость от конкретной СУБД
Несмотря на наличие диалектов и различий в синтаксисе, в большинстве своём тексты SQL-запросов могут быть достаточно легко перенесены из одной СУБД в другую. Существуют системы, разработчики которых изначально ориентировались на применение по меньшей мере нескольких СУБД (например: система электронного документооборота Documentum может работать как с Oracle Database, так и с Microsoft SQL Server и DB2). Естественно, что при применении некоторых специфичных для реализации возможностей такой переносимости добиться уже очень трудно.

Наличие стандартов
Наличие стандартов и набора тестов для выявления совместимости и соответствия конкретной реализации SQL общепринятому стандарту только способствует «стабилизации» языка

Правда, стоит обратить внимание, что сам по себе стандарт местами чересчур формализован и раздут в размерах (например, базовая часть стандарта SQL:2003 состоит из более 1300 страниц текста).

Декларативность
С помощью SQL программист описывает только то, какие данные нужно извлечь или модифицировать. То, каким образом это сделать, решает СУБД непосредственно при обработке SQL-запроса

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

Недостатки

Несоответствие реляционной модели данных

Создатели реляционной модели данных Эдгар Кодд, Кристофер Дейт и их сторонники указывают на то, что SQL не является истинно реляционным языком. В частности, они указывают на следующие дефекты SQL с точки зрения реляционной теории:

  • SQL разрешает в таблицах строки-дубликаты, что в рамках реляционной модели данных невозможно и недопустимо;
  • SQL поддерживает неопределённые значения (NULL) и многозначную логику;
  • SQL использует порядок колонок и ссылки на колонки по номерам;
  • SQL разрешает колонки без имени и дублирующиеся имена колонок.

В опубликованном Кристофером Дейтом и Хью Дарвеном Третьем манифесте они излагают принципы СУБД следующего поколения и предлагают язык Tutorial D, который является подлинно реляционным.

Сложность
Хотя SQL и задумывался как средство работы конечного пользователя, в конце концов он стал настолько сложным, что превратился в инструмент программиста.
Отступления от стандартов
Несмотря на наличие международного стандарта ANSI многие разработчики СУБД вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Таким образом появляются специфичные для каждой конкретной СУБД диалекты языка SQL.

Основные операторы SQL

В SQL существует четыре больших группы операторов.

Операторы управления схемой данных

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

  • CREATE создает объект БД (саму базу, таблицу, представление, пользователя и т. д.),
  • ALTER изменяет объект,
  • DROP удаляет объект;
Операторы управления данными

это операторы, которые позволяют получать, создавать, изменять и удалять данные из созданных таблиц.

  • SELECT считывает данные, удовлетворяющие заданным условиям,
  • INSERT добавляет новые данные,
  • UPDATE изменяет существующие данные,
  • DELETE удаляет данные;
Операторы управления СУБД

это операторы, позволяющие настраивать СУБД, управлять разрешениями, создавать пользователей, и т.п.

  • GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом,
  • REVOKE отзывает ранее выданные разрешения,
  • DENY задает запрет, имеющий приоритет над разрешением;
Операторы управления транзакциями

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

  • COMMIT применяет транзакцию,
  • ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции,
  • SAVEPOINT делит транзакцию на более мелкие участки.

Рассмотрим некоторые из них более подробно.

Понравилась статья? Поделиться с друзьями:
Опытный компьютерщик
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: