SQL – язык структурированных запросов



 

SQL – непроцедурный язык, ориентированный на работу с реляционными базами данных. Теоретически, все его функции можно было бы выполнять с помощью любого объектно-ориентированного ЯП. Определить объект «таблица», который содержал бы любое количество строк и написать процедуры для помещения в это объект данных, извлечение, поиск и т.д. (что-то похожее на работу со стеком). Однако занятие получается очень трудоемкое и непростое. Для того чтобы всего этого избежать, создан SQL. Пользователь работает с простым набором команд, вся обработка выполняется внутри СУБД.

 

Существует 2 формы SQL.

· Интерактивный SQL. Применяется для непосредственной работы с БД с целью получения результатов для последующего использования. Результат (если он существует) сразу выводится на экран. (Запросы в Access).

· Встроенный SQL. Является частью приложения или программного модуля, SQL-код включается в текст программы, написанный на другом языке. (Например, на C). Результат работы операторов SQL перенаправляется в переменные, которыми оперирует базовая программа. SQL-код может быть статическим или динамическим (генерироваться во время выполнения программы). Встроенный SQL – это расширение интерактивного SQL.

 

Любая форма SQL делится на несколько подразделов. Наиболее часто упоминаются следующие:

· Язык определения данных (Data Definition Language, DDL). Состоит из команд, которые создают объекты БД (таблицы, представления и т.д.).

· Язык манипулирования данными (Data Manipulation Language, DML). Команды для работы с данными в таблицах.

· Язык управления данными (Data Control Language, DCL). Включает в себя средства подтверждения прав пользователей на выполнение определенных действий. В ISO рассматривается как часть DDL.

 

Мы будем рассматривать интерактивный SQL, команды языка манипулирования данными.

Команды SQL создаются с помощью ключевых слов и аргументов команд. Ключевые слова принято писать заглавными буквами. Каждая команда SQL завершается символом «;» . Строковые данные заключаются в апострофы.

 


Создание таблиц

 

Для создания таблиц используется инструкция CREATE TABLE.

 

CREATE TABLE имя_таблицы

(имя_столбца тип данных [NULL | NOT NULL], …)

 

CREATE TABLE Plants

(id_plant int,

P_name char(20),

p_definition varchar(200));

 

Имена таблиц и полей не могут содержать пробелов (или должны заключаться в []). Порядок столбцов в таблице будет таким же, как и в запросе.

 

CREATE TABLE Zombies

(id_zombie int,

Z_name char(20),

z_definition varchar(200));

 

Для каждого столбца можно указать параметр NULL | NOT NULL. Значение NOT NULL означает, что столбец не может быть пустым (должен содержать данные). По умолчанию столбцы создаются с параметром NULL.

 

CREATE TABLE Plants

(id_plant int NOT NULL,

P_name char(20),

p_definition varchar(200));

 

Для создания счётчика используется команда IDENTITY. Для счётчика свойство NOT NULL устанавливается по умолчанию.

 

CREATE TABLE Plants

(id_plant int IDENTITY,

P_name char(20),

p_definition varchar(200));

 

Для объявления первичного ключа используется команда PRIMARY KEY. Ключ можно объявить на уровне столбца или таблицы.

Объявление на уровне столбца (простой ключ). Параметр PRIMARY KEY указывается сразу после типа данных столбца.

 

CREATE TABLE Plants

(id_plant int PRIMARY KEY IDENTITY,

P_name char(20),

p_definition varchar(200));

 

Объявление на уровне таблицы (для ключа из нескольких столбцов). Параметр PRIMARY KEY указывается после описания всех полей таблицы. В скобках через запятую перечисляются поля, входящие в состав ключа.

 


CREATE TABLE Plants

(id_plant int IDENTITY,

P_name char(20),

P_definition varchar(200)

PRIMARY KEY (id_plant));

Объявление первичного ключа устанавливает для ключевого поля значение NOT NULL.

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

Например, укажем, что название растения должно содержать не менее пяти символов.

 

CREATE TABLE Plants

(id_plant int IDENTITY,

P_name char(20) ,

P_definition varchar(200)

PRIMARY KEY (id_plant),

CHECK (LEN(p_name) > 5));

Ограничение может включать в себя несколько условий. Для их объединения можно использовать операторы AND, OR, NOT. Также в описании условий применяются следующие конструкции:

 

LEN(p_name) BETWEEN 18 AND 100 – длина имени должна быть в пределах от 18 до 100 символов

LEN(p_name) IN (10, 20, 30) – длина имени может быть равна 10, 20 или 30 символам.

Для объявления внешнего ключа применяют инструкции REFERENCES и FOREIGN KEY.

Так же, как и первичный, внешний ключ можно объявить двумя способами: на уровне столбца (для простых ключей) и таблицы (для простых и составных ключей).

 

Объявление на уровне столбца:

 

CREATE TABLE Shop

(id_product int IDENTITY,

Pr_name char(20),

Pr_definition varchar(150),

Pr_cost int,

fk_plant int REFERENCES Plants (id_plant));

 

Здесь поле fk_plant – внешний ключ таблицы Shop, который ссылается на поле id_plant (первичный ключ таблицы Plants).

 

Объявление на уровне таблицы:

 

CREATE TABLE Shop

(id_product int IDENTITY,

Pr_name char(20),

Pr_definition varchar(150),

Pr_cost int,

Fk_plant int,

FOREIGN KEY (fk_plant)

REFERENCES Plants (id_plant));

 

Пример создания составного внешнего ключа:

 

CREATE TABLE Shop

(id_product int IDENTITY,

Pr_name char(20),

Pr_definition varchar(150),

Pr_cost int,

Fk_plant int,


Дата добавления: 2018-06-27; просмотров: 184; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!