Вопрос 8) Язык SQL – функции запросов и основные возможности 


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



ЗНАЕТЕ ЛИ ВЫ?

Вопрос 8) Язык SQL – функции запросов и основные возможности



Основные определения

База данных (database) -поименованная совокупность структурированных данных, относящихся к определенной предметной области.

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

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

Рост количества данных, необходимость их хранения и обработки привели к тому, что возникла потребность в создании стандартного языка баз данных, который мог бы функционировать в многочисленных компьютерных системах различных видов. Действительно, с его помощью пользователи могут манипулировать данными независимо от того, работают ли они на персональном компьютере, сетевой рабочей станции или универсальной ЭВМ.

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

Стандарт на язык SQL был выпущен Американским национальным институтом стандартов (ANSI) в 1986 г., а в 1987 г. Международная организация стандартов (ISO) приняла его в качестве международного. Нынешний стандарт SQL известен под названием SQL/92.

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

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

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

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

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

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

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

• язык манипулирования данными (Data Manipulation Language, DML)

• язык запросов (Data Query Language, DQL)

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

• язык управления данными (Data Control Language, DCL).

 

Язык манипулирования данными (Data Manipulation Language, DML) используется для манипулирования информацией внутри объектов реляционной базы данных посредством трех основных команд:

INSERT (вставить)

UPDATE (обновить)

DELETE (удалить).

 

 

Оператор INSERT применяется для добавления записей в таблицу. Формат оператора:

<оператор_вставки>::=INSERT INTO <имя_таблицы>

[(имя_столбца [,...n])]

{VALUES (значение[,...n])|

<SELECT_оператор>}

Здесь параметр <имя_таблицы> представляет собой либо имя таблицы базы данных, либо имя обновляемого представления.

INSERT INTO Товар (Название, Тип, Цена) VALUES(" Славянский ", " шоколад ", 12)Добавление в таблицу Товар новой записи.

Оператор DELETE предназначен для удаления группы записей из таблицы. Формат оператора:

<оператор_удаления>::=DELETE

FROM <имя_таблицы>[WHERE <условие_отбора>]

Здесь параметр <имя_таблицы> представляет собой либо имя таблицы базы данных, либо имя обновляемого представления.

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

DELETE

FROM Сделка

WHERE Год>2009

Удаление всех прошлогодних сделок

Оператор UPDATE применяется для изменения значений в группе записей или в одной записи указанной таблицы. Формат оператора:

<оператор_изменения>::= UPDATE имя_таблицы SET имя_столбца= <выражение>[,...n] [WHERE <условие_отбора>]

Параметр <имя_таблицы>– это либо имя таблицы базы данных, либо имя обновляемого представления. В предложении SET указываются имена одного и более столбцов, данные в которых необходимо изменить. Предложение WHERE является необязательным. Если оно опущено, значения указанных столбцов будут изменены во всех строках таблицы. Если предложение WHERE присутствует, то обновлены будут только те строки, которые удовлетворяют условию отбора. Выражение представляет собой новое значение соответствующего столбца и должно быть совместимо с ним по типу данных.

UPDATE Товар SET Товар.Цена=Товар.Цена*1.25WHERE Товар.Сорт=" Первый "

Обновление выбранных записей

Язык запросов (Data Query Language, DQL) наиболее известен пользователям реляционной базы данных, несмотря на то, что он включает всего одну команду SELECT (выбрать). Эта команда вместе со своими многочисленными опциями и предложениями используется для формирования запросов к реляционной базе данных.

Первое правило, само выражение SELECT обязательно включает, выражение FROM.

Выражение SELECT включает в себя список столбцов возвращаемых запросом.

Выражение FROM включает в себя список таблиц для выполнения запроса.

SELECT [ALL | DISTINCT ] {*|[имя_столбца [AS новое_имя]]} [,...n] FROM имя_таблицы [[AS] псевдоним] [,...n] [WHERE <условие_поиска>] [GROUP BY имя_столбца [,...n]] [HAVING <критерии выбора групп>] [ORDER BY имя_столбца [,...n]]
  • FROM – определяются имена используемых таблиц;
  • WHERE – выполняется фильтрация строк объекта в соответствии с заданными условиями;
  • GROUP BY – образуются группы строк, имеющих одно и то же значение в указанном столбце;
  • HAVING – фильтруются группы строк объекта в соответствии с указанным условием;
  • SELECT – устанавливается, какие столбцы должны присутствовать в выходных данных;
  • ORDER BY – определяется упорядоченность результатов выполнения операторов.

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

CREATE DATABASE (создать базу данных)

Создание базы данных в системе SQL-сервер осуществляется командой CREATE DATABASE. Следует отметить, что процедура создания базы данных в SQL-сервере требует наличия прав администратора сервера.

<определение_базы_данных>::= CREATE DATABASE имя_базы_данных [ON [PRIMARY] [ <определение_файла> [,...n] ] [,<определение_группы> [,...n] ] ] [ LOG ON {<определение_файла>[,...n] } ] [ FOR LOAD | FOR ATTACH ]

Параметр ON определяет список файлов на диске для размещения информации, хранящейся в базе данных.

Параметр PRIMARY определяет первичный файл. Если он опущен, то первичным является первый файл в списке.

Параметр LOG ON определяет список файлов на диске для размещения журнала транзакций. Имя файла для журнала транзакций генерируется на основе имени базы данных, и в конце к нему добавляются символы _log

 

CREATE TABLE (создать таблицу)

CREATE TABLE <TABLE-NAME> (<COLUMN name> <DATA type>[(<SIZE>)], <COLUMN name> <DATA type> [(<SIZE>)]...);

 

CREATE INDEX (создать индекс)

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

CREATE INDEX <INDEX name> ON <TABLE name>(<COLUMN name> [,<COLUMN name>]...);

 

ALTER DATABASE (модифицировать базу данных)

<изменение_базы_данных>::= ALTER DATABASE имя_базы_данных { ADD FILE <определение_файла>[,...n] [TO FILEGROUP имя_группы_файлов ] | ADD LOG FILE <определение_файла>[,...n] | REMOVE FILE логическое_имя_файла | ADD FILEGROUP имя_группы_файлов | REMOVE FILEGROUP имя_группы_файлов | MODIFY FILE <определение_файла> | MODIFY FILEGROUP имя_группы_файлов <свойства_группы_файлов>}

 

ALTER TABLE (модифицировать таблицу)

ALTER TABLE <TBODY></TBODY></TABLE><TABLE name>ADD <COLUMN name> <DATA type> <SIZE>; ALTER TABLE Клиент ADD Рас_счет CHAR(20)

ALTER INDEX (модифицировать индекс)

DROP DATABASE (удалить базу данных)

 

DROP DATABASE имя_базы_данных [,...n]

 

DROP TABLE (удалить таблицу)

DROP INDEX (удалить индекс)

 

DROP INDEX;

Удаление индекса не воздействует на содержание полей.

 

Команды управления данными (DCL - Data Control Language)позволяют управлять доступом к информации, находящейся внутри базы данных. Как правило, они используются для создания объектов, связанных с доступом к данным, а также служат для контроля над распределением привилегий между пользователями. Более точно его можно назвать “язык управления доступом”. Он состоит из двух основных команд:

GRANT (дать права)

GRANT ALTER ANY INDEX - разрешает изменение любого индекса в любой схеме;

REVOKE (забрать права)



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 339; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.120.133 (0.019 с.)