Операторы манипулирования данными Data Manipulation Language DML 


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



ЗНАЕТЕ ЛИ ВЫ?

Операторы манипулирования данными Data Manipulation Language DML



 

Оператор Действие
DELETE Удаляет одну или несколько строк, соответствующих условиям фильтрации, из базовой таблицы. Применение оператора согласуется с принципами поддержки целостности, поэтому этот оператор не всегда может быть выполнен корректно, даже если синтаксически, он записан правильно  
INSERT   Вставляет одну строку в базовую таблицу. Допустимы модификации оператора, при которых сразу несколько строк могут быть перенесены из одной таблицы или запроса в базовую таблицу  
UPDATE   Обновляет значения одного или нескольких столбцов в одной или нескольких строках, соответствующих условиям фильтрации  

 

Язык запросов Data Query language (DQL)

 

Оператор Select-выбрать строки-Оператор, заменяющий все операторы реляционной алгебры и позволяющий сформировать результирующее отношение, соответствующее запросу

 

Средства администрирования данных

 

Оператор Действие
ALTER DATABASE Изменить набор основных объектов в БД, ограничений, касающихся БД
ALTER DBAREA Изменить ранее созданную область хранения
ALTER PASSWORD Изменить пароль для всей базы данных
CREATE DATABASE Создать новую базу данных, определив основные параметры для нее
CREATE DBAREA Создать новую область хранения и сделать ее доступной для размещения данных
DROP DATABASE Удалить существующую базу данных
DROP DBAREA Удалить существующую область хранения
GRANT Предоставить права доступа на ряд действий над некоторым объектом БД

Программный SQL

 

Оператор Действие
DECLARE Задаст некоторое имя и определяет связанный с ним запрос к БД, который соответствует виртуальному набору данных
OPEN Формирует виртуальный набор данных, соответствующий описанию указанного курсора и текущему состоянию БД
FETCH Считывает очередную строку, заданную параметром команды из виртуального набора данных, соответствующего открытому курсору
CLOSE Прекращает доступ к виртуальному набору данных, соответствующему указанному курсору
PREPARE Сгенерировать план выполнения запроса, соответствующего заданному оператору SQL
EXECUTE Выполняет ранее подготовленный план запроса

 

В дальнейшем для рассмотрения материала будем работать с учебной базой данных, состоящей из четырех таблиц

 

STUDENTS PREDMET

SNUM SFAM SIMIA SOTCH STIP
         
         
         
         
PNUM TNUM PDATA PCOURS
       
       
       
       

 

TEACHER USP

TNUM TFAM TIMIA TOTCH TDATA
         
         
         
         
UNAME SNUM PNUM OCENKA
       
       
       
       

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

В языке SQL/92 поддерживаются следующие типы данных:

CHARACTER(n) или CHAR(n) ─ символьные строки постоянной длины в n символов. При задании данного тина под каждое значение всегда отводится n символов, и если реальное значение занимает менее, чем n символов, то СУБД автоматически дополняет недостающие символы пробелами.

NUMERIC[(n,m)] ─ точные числа, здесь n ─ общее количество цифр в числе, m ─ количество цифр слева от десятичной точки.

DECIMAL[(n,m)] ─ точные числа, здесь n ─ общее количество цифр и числе, m ─ количество цифр слева от десятичной точки.

DEC[(n,m)1 - то же, что и DECIMAL[(n,m)].

INTEGER или INT ─ целые числа.

SMALLINT ─ целые числа меньшего диапазона.

FLOAT[(n)] ─ Числа большой точности, хранимые в форме с плавающей точкой. Здесь n ─ число байтов, резервируемое под хранение одного числа. Диапазон чисел определяется конкретной реализацией.

REAL ─ вещественный тип чисел, который соответствует числам с плавающей точкой, меньшей точности, чем FLOAT.

DOUBLE PRECISION специфицирует тип данных с определенной в реализации точностью большей, чем определенная в реализации точность для REAL.

VARCHAR(n) это строка символов переменной длины.

NCHAR VARYING(n) ─ строки локализованных символов переменной длины.

BIT(n) ─ строка битов постоянной длины.

BIT VARYING(n) ─ строка битов переменной длины.

DATE ─ календарная дата.

TIMESTAMP(TОЧНОСТЬ) ─ дата и время.

INTERVAL ─ временной интервал.

Достоинства языка SQL

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

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

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

Стандарт SQL определяется ANSI (Американским Национальным Институтом Стандартов) и в данное время также принимается ISO (МЕЖДУНАРОДНОЙ ОРГАНИЗАЦИЕЙ ПО СТАНДАРТИЗАЦИИ). Однако, большинство коммерческих СУБД расширяют SQL без уведомления ANSI, добавляя разные другие особенности в этот язык, которые, как они считают, будут весьма полезны. Иногда они несколько нарушают стандарт языка, хотя хорошие идеи имеют тенденцию развиваться и вскоре становиться стандартами "рынка" сами по себе в силу полезности своих качеств.

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

В целом, список преимуществ, на которые стоит обратить внимание в первую очередь, можно представить в следующем виде:

· независимость от конкретных СУБД;

· переносимость с одной вычислительной системы на другую;

· наличие стандартов;

· поддержка со стороны компании Microsoft (протокол ODBC);

· реляционная основа;

· высокоуровневая структура, напоминающая английский язык;

· возможность выполнения специальных интерактивных запросов:

· обеспечение программного доступа к базам данных;

· возможность различного представления данных;

· полноценность как языка, предназначенного для работы с базами данных;

· возможность динамического определения данных;

· поддержка архитектуры клиент/сервер.

Все перечисленные выше факторы явились причиной того, что SQL стал стандартным инструментом для управления данными на персональных компьютерах, мини-компьютерах и больших ЭВМ. Ниже эти факторы рассмотрены более подробно.

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

Собственно DDL базируется на трех командах SQL:

∙CREATE - создать, позволяющий определить и создать объект БД;

∙DROP - удалить, применяемый для удаления существующего объекта данных;

∙ALTER - изменить, с помощью которого можно изменить определение объекта БД.

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

Большинство многопользовательских БД имеют достаточно несложную организацию физической памяти, что обеспечивает повышение ее производительности. Например, в Microsoft SQL Server администратор БД может с помощью оператора CREATE DATABASE задать один или несколько именованных файлов: CREATE DATABASE <NAME_DATABASE> ON <FILE1>, <FILE2>, Подход, используемый в SQL Server, позволяет распределять содержимое БД по нескольким дисковым томам.

Создание таблиц Итак, после создания БД необходимо осуществить создание, изменение, а если нужно - то и удаление таблиц. Эти действия относятся к самим таблицам, а не к данным, которые в них содержатся. Таблицы создаются командой CREATE TABLE. Эта команда создает пустую таблицу, т.е. не содержащую записей. Очевидно, что значения в нее можно ввести с помощью команды INSERT. Главное в команде CREATE TABLE - это определение имени таблицы и описания набора имен полей, которые указываются в соответствующем порядке. Кроме того, этой командой также оговариваются типы данных и размеры полей таблицы.

Синтаксис команды CREATE TABLE следующий:

CREATE TABLE <TABLE NAME>

(<COLUMN NAME> <DATA TYPE> [(<SIZE>)],

<COLUMN NAME> <DATA TYPE> [(<SIZE>)]...);

Значение аргумента размера зависит от типа данных. Если его не указывать, то СУБД сама будет назначать значение автоматически. Тип данных CHAR требует обязательного указания размера. Аргумент размера - это целое число, определяющее максимальное количество символов, которое может вместить поле. Таблицы принадлежат пользователю, который их создал, а имена всех таблиц, принадлежащих данному пользователю, должны отличаться друга от друга точно так же, как и имена всех полей внутри данной таблицы. Однако разные таблицы могут использовать одинаковые имена полей, даже если они принадлежат одному и тому же пользователю. Например, поле с именем SNUM присутствует в таблицах STUDENTS и USP, ничуть не мешая друг другу.

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

Приведем пример команды, которая создаст структуру таблицы STUDENTS:

CREATE TABLE STUDENTS (SNUM INTEGER, SFAM CHAR (20), SIMA CHAR (10), SOTCH CHAR (15) STIP DECIMAL);

После того, как таблица была создана, ее можно изменять. Команда ALTER TABLE является широко доступным средством для того, чтобы изменить определение существующей таблицы. Чаще всего с ее помощью добавляют поля к таблице, хотя она может удалять или изменять их размеры. Типичный синтаксис этой команды для добавления столбца к таблице, такой: ALTER TABLE <TABLE NAME> ADD <COLUMN NAME> <DATA TYPE> <SIZE>;

ALTER TABLE не действует, когда таблица должна быть переопределена, однако при разработке БД не стоит исключать необходимость этого действия. Кроме того, изменение структуры таблицы в тот момент, когда она находится в использовании, также чревато потерей информации - например, запрос может потерпеть неудачу по той причине, что некоторого поля в таблице просто уже не существует.

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

DROP TABLE <TABLE NAME>; Пример: DROP TABLE STUDENTS;



Поделиться:


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

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