- Исторические предпосылки SQL
- Возможности языка программирования
- Выражение ограничений целостности
- Типы данных в базах
- Атрибуты constraint SQL
- Создание отношений
- Создание таблицы
- Пример данных SQL alter table constraint
- Определение ключей
- Первичные ключи
- Ограничение внешнего ключа
- Триггер: гарантия ссылочной целостности
Этот язык, используемый для извлечения и управления БД в RDMS, место для хранения реляционных данных, имеющих несколько строк и столбцов. SQL позволяет извлекать и обрабатывать таблицы в RDMS.
В SQL можно создавать процедурные программы с итерациями и условиями. Можно получить доступ к базе данных, разместив команды так же, как в PHP, или с помощью визуального программного обеспечения, такого как phpMyAdmin, работающего на сервере или локально с помощью XAMPP, а также многих других локальных серверных программ. Практически все современные системы управления БД базируются на этом языке.
Исторические предпосылки SQL
Вам будет интересно:Как вставлять формулы в "Ворде-2003": описание инструмента и примеры использования
Аббревиатура SQL означает "Структурированный язык поиска", который понимает практически каждая СУБД. Он был разработан IBM в семидесятые годы с начальным названием SEQUEL, а его настоящее название датируется началом восьмидесятых годов. SQL был стандартизован Международной организацией по категории ISO. Вот основные шаги в этом процессе:
- стандарт ANSI в 1986 году;
- ISO (SQL1) в 1987 году, пересмотренный в 1989 году;
- ISO (SQL2) в 1992 году;
- SQL3, созданный в 1999 году ANSI и ISO.
Стандарт ISO SQL 2006 года используется для управления XML-файлами, такими как импорт XML-данных в базу или экспорт содержимого в XML и constraint SQL.
Несмотря на стандартизацию ISO, фактическое применение SQL различными редакторами СУБД имеет отличия относительно:
- деталей синтаксиса;
- написания заказов;
- точной работы органов управления;
- внедрение новых типов данных (изображений, анимации, видео, гипертекстовых ссылок и т. д.).
Независимо от используемого программного обеспечения MySQL (или MariaDB), PostgreSQL, Oracle, NoSQL, как и Cassandra — тот же синтаксис с незначительными отличиями. Короче говоря, существует только один язык SQL, но каждый редактор СУБД реализует собственный диалект. «Словарь», который позволяет переключаться с одного диалекта на другой, называется ODBC (Open Data Base Connectivity). Он был создан Microsoft в 1993 году для constraint SQL.
Возможности языка программирования
SQL - самый популярный среди компьютерных языков, связанных с системами управления БД. Самые перспективные направления обозначают структурированные запросы. Предмет нескольких международных стандартизаций, первый из которых относится к 1986 году и до сих пор развивается.
Реализация соответствует реляционной алгебре, но нередко отклоняется от традиционных вычислений. В реализациях обычно игнорируются различия между верхним и нижним регистром, за исключением строк. Ms SQL constraint позволяет:
- выполнять операции реляционной алгебры;
- редактировать экземпляры;
- редактировать отношения в БД.
Выражение ограничений целостности
Это предложение, которое ограничивает табличную модификацию, выполненную пользовательскими запросами, так что введенные данные, соответствуют ожидаемым результатам. Их накладывают при создании:
SQL определяет значение по умолчанию, когда поле базы не сообщается с помощью предложения DEFAULT. Это упрощает формирование таблиц и гарантирует, что поле непустое. В предложении DEFAULT, должно быть назначено значение.
Оно может быть одним из следующих типов:
- цифровая константа;
- буквенно-цифровая константа (строка);
- ключевое слово USER (имя пользователя);
- ключевое слово NULL;
- ключевое слово CURRENT_DATE (дата ввода);
- ключевое слово CURRENT_TIME (время ввода);
- ключевое слово CURRENT_TIMESTAMP (дата и время ввода).
Типы данных в базах
В синтаксисе, например, type_field1, field_type2 и т. д. указывают тип данных, который будет содержать соответствующее поле. В основном это правило используется для отправки их в систему, чтобы оно выделяло соответствующее пространство памяти, в зависимости от размера данных. Система не будет выделять одно и то же пространство для строки, как для целого числа. На phpMyAdmin можно видеть список принятых типов в раскрывающемся списке при создании таблицы.
Тип данных
тип
описание
NUMBER(n,[d])
Число n цифр [ d ( необязательно ) после десятичной точки]
SMALLINT
16-разрядное целое число со знаком
INTEGER
32-разрядное целое число со знаком
FLOAT
Номер плавающей точки
DATE
Формат даты dd / mm / yy
TIME
время
TIMESTAMP
Дата и время
CHAR(l)
Строка символов фиксированной длины l (l <16383)
VARCHAR(n)
Символьная строка из n символов максимум (n <16383)
Здесь приведен пример: CREATE TABLE table_name ( column1 Type_champ1 , column2 Type_champ2 , colonne3 Type_champ3 ... ).
Атрибуты constraint SQL
Чтобы иметь возможность создавать отношения, нужно знать ограничения целостности. К атрибуту применяются следующие ограничения:
- default val— val значение по умолчанию для этого атрибута;
- not null — пустое или неизвестное (нулевое) значение запрещено для этого параметра;
- null — для этого атрибута допустимо пустое или неизвестное (нулевое) значение (поведение по умолчанию);
- unique — все значения этого атрибута должны быть уникальными;
- check (te)— тест te должен быть истинным для этого параметра;
- pimary key — этот атрибут является первичным ключом (это SQL unique constraint может появляться однажды) и подразумевает not null unique;
- references ta [(at)] — этот параметр имеет существующее значение атрибута at, который является обязательным unique, таблицы ta, если at не указано, это первичный ключ, из ta;
- references ta [(at)] on delete cascade — идентично предыдущему ограничению, кроме того, если ta удаляется, то экземпляр, который ссылается на него в этой таблице, автоматически удаляется также.
Следующие ограничения add constraint SQL применяются к одному или нескольким атрибутам или к таблице:
- unique (at1, ..., atN) — все значения в этом наборе атрибутов должны быть уникальными;
- check (te) — тест te должен быть истинным для этого набора параметров.
Создание отношений
В SQL отношение также называется таблицей. Создание отношения выражается в SQL посредством предложения create table.
Созданная таблица пуста: она содержит атрибуты (столбцы), определенные при ее создании, но не вхождение (строка). Вполне возможно и уместно указать ограничения целостности для атрибутов.
И также можно назвать ограничение, чтобы легче идентифицировать его. В противном случае он получает имя, автоматически предоставляемое СУБД.
Создание таблицы
Ключевое слово NOT NULL позволяет указать, что необходимо ввести поле, то есть СУБД откажется вставлять строки, на которых не указано поле, включающее в себя предложение NOT NULL. Можно проверить поле с CHECK () , имеющее логическое условие для значения между круглыми скобками. Если это значение отличается от NULL, СУБД будет выполнять проверку с использованием логического условия с операторами SELECT.
Предложение UNIQUE позволяет проверить поля, и гарантирует значения столбцов разными. Ключевое слово CONSTRAINT присваивает имя ограничению, таким образом, чтобы оно отображалось, когда указанное предложение не проверено. Если предложение CONSTRAINT не указано, имя будет предоставлено произвольно СУБД. Однако маловероятно, чтобы оно было понятным, и вряд ли его можно осознать вообще, когда есть ошибка целостности.
Пример данных SQL alter table constraint
Чтобы проиллюстрировать следующие заказы, рассмотрим таблицу «продукт»:
id (идентификатор)
nom (имя)
categorie (категория)
stock (акции)
prix (цена)
1
компьютер
обработка данных
5
950
2
клавиатура
обработка данных
32
35
3
мышь
обработка данных
16
30
4
карандаш
поставка
147
2
Оператор add constraint SQL может присоединяться к нескольким условиям в запросе. Сохраняя ту же таблицу, что и раньше, чтобы фильтровать только компьютерные продукты, которые почти отсутствуют на складе (менее 20 наименований), запускают следующий запрос:
SELECT * FROM produitWHERE categorie = 'informatique' AND stock < 20
Этот запрос возвращает следующие результаты:
id (идентификатор)
nom имя
categorie (категория)
stock (акции)
prix (цена)
1
компьютер
обработка данных
5
950
3
мышь
обработка данных
16
30
Чтобы отфильтровать данные и иметь только информацию о продуктах «компьютер» или «клавиатура», необходимо выполнить следующий поиск:
SELECT * FROM produitWHERE nom = 'ordinateur' OR nom = 'clavier'
Этот простой запрос возвращает следующие результаты:
id (идентификатор)
nom (имя)
categorie (категория)
stock (акции)
prix (цена)
1
компьютер
обработка данных
5
950
2
клавиатура
обработка данных
32
35
Следует помнить, что операторы могут быть объединены для выполнения мощного поиска. Можно фильтровать продукты «компьютер» с запасом менее 20, а продукты «поставлять» с запасом менее 200 со следующим поиском SQL alter table add constraint:
SELECT * FROM produitWHERE ( categorie = 'informatique' AND stock < 20 )OR ( categorie = 'fourniture' AND stock < 200 )
Это возвращает следующие 3 результата:
id (идентификатор)
nom (имя)
categorie (категория)
stock (акции)
prix (цена)
1
компьютер
обработка данных
5
950
2
мышь
обработка данных
16
30
4
карандаш
поставка
147
2
Определение ключей
Благодаря SQL constraint foreign key, можно определить ключи, то есть, указать столбцы, знание которых позволяет назначать ровно один из них и одну строку. Набор столбцов, являющихся частью текущей таблицы, называется первичным ключом и определяется предложением PRIMARY KEY, за которым следует список столбцов, разделенных запятыми, в скобках.
Они больше не принимают значение NULL и должны быть такими, чтобы две строки не могли одновременно иметь одну и ту же комбинацию значений для этих столбцов. PRIMARY KEY (colonne1, colonne2, ...).
Когда список столбцов выполняемой таблицы позволяет определить первичный ключ, он использует предложение SQL add constraint foreign key, за которым следует список столбцов текущей таблицы, разделенное запятыми, в круглых скобках. Затем в скобках следует предложение REFERENCES, за ним имя внешней таблицы и список соответствующих столбцов, разделенных запятыми.
FOREIGN KEY (colonne1, colonne2, ...) REFERENCES Nom_de_la_table_etrangere(colonne1,colonne2,...)
Первичные ключи
Интересы СУБД за пределами хранения — это организовать это хранилище и разрешить устанавливать на нем определенные правила. Таким образом, для каждой из таблиц обычно определяется первичный ключ. Он будет однозначно идентифицировать поиск по строке при представлении. Поэтому при объявлении столбца в качестве ключа СУБД автоматически создает индекс с ограничения. Оно может быть выполнено:
Имя ограничения управляется СУБД, когда нужно назвать этот первичный ключ. ПК также может быть создан во второй раз через заказ alter в таблице. Этот первичный ключ будет абсолютным идентификатором для приложения. СУБД может обойтись без него благодаря rowid, поэтому необходимость наличия первичного ключа технически не существует, но не имеет большого смысла приложения. Этот первичный ключ также во многих случаях устанавливает ограничения целостности, то есть управление определенными данными в одной таблице по сравнению с другими показателями, принадлежащими другим таблицам.
Например, в базе данных управления клиентами запрещается наличие счета-фактуры без одного заказа. Создают внешний ключ в таблице счетов, который будет ограничен наличием ключа.
Ограничение внешнего ключа
Для ПК ограничение внешнего ключа (FK) определено созданием таблицы, благодаря механизму настройки ключей и связанным им индексам, которые будут созданы для FK, поэтому запросы к соединениям проще при подключении. В дополнение к ограничениям первичного или внешнего ключа существуют другие ограничения:
Например, ограничение единственности, отличное от того, которое соответствует первичному ключу. Нужно создать уникальный индекс:
create unique index num_sécu on personne.
Еще одна возможность ограничения - это лимитация проверки, которая обычно позволяет указать диапазон или формат значения. Положительное значение для потребления - показатель выбора по вежливости (эквивалентно ENUM для некоторых других СУБД) и хранится в верхнем регистре:
Таким образом, СУБД позволяет создавать ограничения целостности всех видов, однако, как только они применяются, не возможно управлять понятием активно/неактивно. Неактивное ограничение не влияет на работу базы (вставка, удаление, ...). Однако время, затрачиваемое на реактивацию напряжения, может быть длительным в зависимости от процедур, которые необходимо выполнить для проверки этого SQL alter constraint. Но обычно бывает интересно отключить ограничения.
Ограничение отключается следующим образом:
ALTER TABLE ma_table DISABLE CONSTRAINT ma_constraint;
И активируется:
ALTER TABLE ma_table ENABLE CONSTRAINT ma_constraint;
Разумеется, следует отметить, что любое (активированное) ограничение, применяемое к базе данных, требует дополнительной обработки при вставках, модификациях или удалениях. Эти процессы, как правило, замедляют использование базы, поэтому их следует применять экономно.
Команда ALTER TBLE изменяет структуру таблицы. Если она используется текущим запросом, команда ALTER ожидает его завершения.
Использование команды: Редактирования значение столбца. Установленные по умолчанию значения применяются к следующим командам INSERT, а не к строкам.
Переименование столбцов или таблиц без изменения типа, в этой комманде можно игнорировать столбец ключевых слов.
Язык не позволяет изменять ограничения. Вместо этого они должны удалить ограничение или создать его.
Поменяйте длину столбца varchar. Если таблица ссылается на хранимую процедуру, нельзя добавить или удалить столбец. Можно удалить хранимую процедуру перед выполнением команды ALTER TABLE, а затем воссоздать ее после редактирования таблицы.
Триггер: гарантия ссылочной целостности
Внешние ключи используются для определения столбцов таблицы, которая гарантирует достоверность другой таблицы. Таким образом, есть элементы, называемые триггерами, чтобы гарантировать все эти ограничения, которые обозначаются термином ссылочной целостности (s) и убеждаются, что строка, используемая из другой таблицы, фактически существует.
Эти триггеры находятся в состоянии «Удалить» и «Обновить»:
В поле «ОБНОВЛЕНИЕ» следуют аргументы в фигурных скобках, позволяющие указать действие, выполняемое при изменении строки таблицы, составляющей часть ключа:
Их синтаксис выглядит следующим образом: CREATE ASSERTION Nom_de_la_contrainte CHECK (expression_conditionnelle) Условие, которое должно выполняться, может быть сделано (и обычно) с помощью предложения SELECT.