Основные типы SQL запросов по их видам




Язык SQL

Язык SQL, предназначенный для взаимодействия с базами данных, появился в середине 1970-х гг. (первые публикации датируются 1974 г.) и был разработан в компании IBM в рамках проекта экспериментальной реляционной системы управления базами данных. Исходное название языка – SEQUEL (Structured English Query Language) – только частично отражало суть этого языка. Первоначально, сразу после его изобретения и в первичный период эксплуатации языка SQL, его название являлось аббревиатурой от словосочетания Structured Query Language, что переводится как «Язык структурированных запросов». Конечно, язык был ориентирован главным образом на удобную и понятную пользователям формулировку запросов к реляционным базам данных. Но, в действительности, он почти с самого начала являлся полным языком баз данных, обеспечивающим, помимо средств формулирования запросов и манипулирования базами данных, следующие возможности:

1) средства определения и манипулирования схемой базы данных;

2) средства определения ограничений целостности и триггеров (о которых будет упомянуто позднее);

3) средства определения представлений баз данных;

4) средства определения структур физического уровня, поддерживающих эффективное выполнение запросов;

5) средства авторизации доступа к отношениям и их полям.

 

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

 

В настоящее время SQL – это уже не аббревиатура, а название самостоятельного языка.

 

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

 

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

 

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

 

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

 

Основные команды SQL

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

Фактически, SQL является набором стандартов, для написания запросов к БД. Последняя действующая редакция стандартов языка SQL — ISO/IEC 9075:2016.

Основываясь на указанных стандартах языка SQL, ряд организаций выпустили свои, расширенные версии стандартов указанного языка. Подобные версии иногда называют диалектами SQL.

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

Наиболее применяемые на сегодня СУБД, использующие свои стандарты (расширения) SQL:

· MySQL – СУБД, принадлежащая компании Oracle;

· PostgreSQL – свободная СУБД, поддерживаемая и развиваемая сообществом;

· Microsoft SQL Server – СУБД, принадлежащая компании Microsoft. Применяет диалект Transact-SQL (T-SQL).

SQL запосы

Коснемся классификации SQL запросов.

Выделяют такие виды SQL запросов:

· DDL (Data Definition Language) — язык определения данных. Задачей DDL запросов является создание БД и описание ее структуры. Запросами такого вида устанавливаются правила того, в каком виде различные данные будут размещаться в БД.

· DML (Data Manipulation Language) — язык манипулирования данными. В число запросов этого типа входят различные команды, используя которые непосредственно производятся некоторые манипуляции с данными. DML-запросы нужны для добавления изменений в уже внесенные данные, для получения данных из БД, для их сохранения, для обновления различных записей и для их удаления из БД. В число элементов DML-обращений входит основная часть SQL операторов.

· DCL (Data Control Language) — язык управления данными. Включает в себя запросы и команды, касающиеся разрешений, прав и других настроек СУБД.

· TCL (Transaction Control Language) — язык управления транзакциями. Конструкции такого типа применяют чтобы управлять изменениями, которые производятся с использованием DML запросов. Конструкции TCL позволяют нам производить объединение DML запросов в наборы транзакций.

Основные типы SQL запросов по их видам

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

Основные команды:

CREATE DATABASE - создание бд

USE – выбор бд для работы с ней

CREATE TABLE – создание таблиц

DROP – удаление данных (например, таблицы)

INSERT – добавление новых значений(записей) в таблицу БД

SELECT – выборка данных

UPDATE - осуществляет модификацию данных в таблице

DELETE - операция удаления определенной строки из таблицы в БД

 

 

Структура создания новой таблицы в БД:

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

<1_столбец> <тип столбца>,

<2_столбец> <тип столбца>,

.

.

<n_столбец> <тип столбца>,

PRIMARY KEY (<1_столбец>),

FOGEIGN KEY (<n_столбец>) REFERENCES <имя_2таблицы> (<n_столбец>)

 

- необходимо отметить, что ячейка не может иметь значение NULL

 

Пример создания БД и таблиц:


create database Students //создание бд

 

use Students //использовать бд

 

create table Groupe(//создание 1 таблицы

Id int not null identity Primary Key,

IdSpeciality int,

IdQualification int,

IdFormEducation int,

Faculty nvarchar(100) not null,

Name nvarchar(10) not null,

Course smallint not null,

CountStudent smallint not null,

CountSubgroup smallint)

 

create table Speciality(//создание 2 таблицы

Id int not null identity Primary Key,

NameSpeciality nvarchar(100) not null,

Profile nvarchar(100) not null)

 

create table Qualification(//создание 3 таблицы

Id int not null identity Primary Key,

NameQualification nvarchar(100) not null)

 

create table FormEducation(//создание 4 таблицы

Id int not null identity Primary Key,

NameForm nvarchar(20) not null)

 

Alter table Groupe //определение вторичного ключа в 1 и 2 таблице

Add Constraint FK_Groupe_Speciality Foreign Key(IdSpeciality)

References Speciality(Id)

 

Alter table Groupe //определение вторичного ключа в 1 и 3 таблице

Add Constraint FK_Groupe_Qualification Foreign Key(IdQualification)

References Qualification(Id)

 

Alter table Groupe //определение вторичного ключа в 1 и 4 таблице

Add Constraint FK_Groupe_FormEducation Foreign Key(IdFormEducation)

References FormEducation(Id)

 

Пример формирования данных:

//формирование данных в 1 таблице

insert into Groupe(IdSpeciality, IdQualification, IdFormEducation, Faculty, Name, Course, CountStudent, CountSubgroup)

values (3, 1, 1, 'Торгового дела', 'ТОР-211', 1, 21, 2),

(3, 2, 1, 'Торгового дела', 'ТОР-221', 2, 17, 1),

(2, 1, 1, 'Компьютерных технологий и информационной безопасности', 'ИБ-311', 1, 15, 1),

(2, 1, 1, 'Компьютерных технологий и информационной безопасности', 'ИСТ-321', 2, 20, 2),

(4, 1, 2, 'Юридический', 'СЭ-631', 3, 23, 2),

(4, 1, 1, 'Юридический', 'ЮР-611', 1, 24, 2),

(5, 2, 1, 'Лингвистики и журналистики', 'ЖУР-711', 1, 19, 2),

(5, 1, 3, 'Лингвистики и журналистики', 'РЕГ-731', 3, 11, 1),

(6, 1, 2, 'Менеджмента и предпринимательства', 'ЭБ-111', 1, 20, 2),

(6, 1, 1, 'Менеджмента и предпринимательства', 'МЕН-121', 2, 18, 1),

(7, 1, 1,'Учетно-экономический', 'ЭК-411', 1, 22, 2),

(7, 2, 2,'Учетно-экономический', 'ЭК-421', 2, 17, 2)

 

 

insert into Speciality(NameSpeciality, Profile) //формирование данных во 2 таблице

values ('Прикладная математика и информатика', 'Математика'),

('Информационная безопасность', 'Информатика'),

('Товароведенье', 'Торговая реклама'),

('Юриспруденция', 'Уголовно-правовой'),

('Лингвистика', 'Перевод и переводоведение'),

('Менеджмент', 'Финансовый менеджмент'),

('Экономика', 'Бухгалтерский учет')

 

 

insert into Qualification(NameQualification) //формирование данных в 3 таблице

values ('бакалавр'),

('магистр')

 

 

insert into FormEducation(NameForm) //формирование данных в 4 таблице

values ('очная'),

('заочная'),

('очно-заочная')

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-04-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: