Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Шпаргалки по БД и SQL

.doc
Скачиваний:
379
Добавлен:
01.05.2014
Размер:
71.68 Кб
Скачать

http://www.dis00.narod.ru/halyava.html

Язык StructuredQueryLanguage—язык структурированных запросов, был создан Microsoft в конце 70-х годов и получил через некоторое время широкое распространение. Он позволяет формировать весьма сложные запросы к базам данных. Запрос—это вопрос к базе данных, возвращающий запись или множество записей, удовлетворяющих запросу. Общие правила синтаксиса SQL очень просты. Язык SQL не чувствителен к регистру. Если используется программа из нескольких операторов SQL, то в конце каждого оператора ставится «;». Комментарий можно написать в стиле Си: /*<комментарий>*/, а в некоторых системах и в стеле Pascal: {<комментарий>}Вот, собственно, и все правила. Операторы SQL условно делятся на 2 подъязыка: DataDefinitionLanguage и DataManipulationLanguage.

DDL

CREATE TABLE <имя таблицы> (<имя столбца><тип данных>[NOT NULL]…)

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

PRIMARY KEY-указывает на то, что данное поле входит в первичный ключ

UNIQUE-значение этого поля должно быть уникальным и не может быть две записи с идентичными значениями таких полей

NOT NULL-значение этого поля должно быть обязательно задано в каждой записи

DEFAULT<значение>-значение поля по умолчанию

ALTER TABLE <имя таблицы> ({ADD, MODIFY, DROP}<имя столбца>[тип данных][NOT NULL]…)

Изменение структуры таблицы

ADD-добавить новый столбец

DROP -удалить столбец

MODYFY-изменение столбца

DROP TABLE <имя таблицы>

Удаление таблиц

Тип данных не указывается

CREATE UNIQUE INDEX <имя индекса> ON <имя таблицы> (<имя столбца> [ASC/DESC]…)

Создание индекса для одного или нескольких столбцов заданной таблицы с целью ускорения запросных и поисковых операция

ASC-по возрастанию (идёт по умолчанию)

DESC-по убыванию

DROP INDEX <имя индекса>

Удаление индекса

CREATE VIEW <имя представления> [<имя столбца>…] AS <оператор SELECT>

Создание представления

Если имена столбцов не указывается, тогда будут использоваться имена столбцов из запроса, описываемого оператором SELECT.

DROP VIEW<имя представления>

GRANT и REVOKEоператоры управления правом доступа

Оператор передачи прав на таблицу. По соображениям безопасности не каждому пользователю может быть разрешено получать информацию из какой-либо таблицы, а тем более изменять в ней данные. Для определения прав пользователей относительно объектов в БД в SQL определена пара команд: GRANT и REVOKE

GRANT ON <имя таблицы> [<список столбцов>] TO <имя пользователя>

Тип прав на таблицу определяется следующими ключевыми словами:

  1. SELECT-право на получение информации

  2. UPDATE-изменение

  3. INSERT-добавление

  4. DELETE-удаление

  5. INDEX-индексирование

  6. ALTER-изменение схем в таблицах

  7. ALL-все права

REVOKE – то же самое, только отмена прав.

DML

SELECT

Оператор возвращает одно или множество значений указанных полей записей, удовлетворяющих заданному условию и упорядоченных по заданному критерию.

SELECT [ALL/DISTINCT]<список данных> FROM <список таблиц> [WHERE

<условия выборки>[GROUP BY

<имя столбца> [HAVING

<условие поиска>[ORDER BY

<спецификация>…]

После оператора FROM указываются имена таблиц, из которых производится выборка. Список данных включает имена столбцов, участвующих в запросе, а также выражения над столбцами, т.е. здесь можно записывать выражения, содержащие имена столбцов, знаки арифметических операций, константы, круглые скобки. Если выборка производится из нескольких таблиц, то для пояснения того, к какой таблице относится тот или иной столбец имя столбца записывается полностью: <имя таблицы>.<имя столбца> После оператора WHERE записываются условия, которым должны удовлетворять записи в результирующей таблице. Выражение условия выборки является логическим, в него могут входить имена столбцов, операции сравнения, арифметические операции, круглые скобки и некоторые специальные функции. Оператор GROUP BY позволяет выделить в результирующей таблице т.н. группы. К группе относятся записи с совпадающими значениями в столбцах, которые перечислены за словами GROUP BY. В выражении можно использовать групповые операции: ABG-среднее значение в группе, MAX-максимум, MIN-минимум, SUM-сумма, COUNT-число. Оператор HAVNG используется совместно с оператором GROUP BY для дополнительного отбора записей во время определения групп. Условие поиска строится по тем же правилам, что и выборка в WHERE. Оператор ORDER BY задает порядок сортировки записей в результирующей таблице [ORDER BY <имя столбца>[ASC/DESC]

UPDATE<имя таблицы> SET<имя столбца>= {<выражение>, NULL}… [WHERE <условие>]

Оператор изменяет значения в столбцах таблицы, указанных после слова SET, для тех записей, которые удовлетворяют условию, записанному после оператора WHERE. Если новые значения в записи пустые, то пишется NULL, иначе вычисляются значения заданным выражением

INSERT INTO <имя таблицы> [(<список столбцов>)] VALUES (<список значений>)

Оператор предназначен для ввода новых записей с заданными значениями в столбцах.

<предложение SELECT>

Предназначается для ввода в заданную таблицу новых строк, выбранных из других таблиц с помощью предложения SELECT

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

Реляционная модель данных некоторой предметной области представляет собой набор отношений, изменяющихся во времени. При создании ИС совокупность отношений позволяет хранить данные об объектах и моделировать отношения между ними.

Элементы реляционной модели.

Отношения

…— двумерная таблица, содержащая некоторые данные

Схема отношений

…— строка заголовков столбцов таблицы; список имен атрибутов.

Картеж

…— строка таблицы.

Сущность

…— объект любой природы, данные о к-ом хранятся в отношении; описание св-в объекта.

Атрибут

…— свойства, характеризующие сущность; заголовок столбца таблицы.

Домен

…— мн-во всех возмож. знач. опред. атрибута. Каждый домен образуют значение одного типа данных.

Значение атрибута

…— значение поля в записи

Первичный ключ

…— атрибут отношения однозначно идентифицирующий каждый из его картежей.1

Тип данных

…— тип значений элементов таблицы

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

Ключи обычно используют для достижения следующих целей. 1)Исключение дублирования значений в ключевых атрибутах 2)Упорядочение картежей. П: по возрастанию или убыванию значений в ключевых атрибутах. 3)Ускорение работы с картежами отношений. 4)Организация связывания таблиц

Пусть отношение R1 имеет неключевой атрибут A, значениями которого являются значения ключевого атрибута В другого отношения R2, тогда атрибут A отношения R1 называется внешним ключом. С помощью внешних ключей устанавливается связь между отношениями.

Реляционная модель данных накладывает на внешние ключи ограничения, для обеспечения целостности данных—это ссылочная целостность—каждому значению внешнего ключа должны соответствовать строки, связываемых отношений.

Правила (условия), при которых таблица является отношением:

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

2— Имена столбцов в таблице должны быть различны

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

К отношениям можно применять операции, позволяющие получать одни отношения из других. Основной единицей обработки данных в реляционной модели является отношение, а не отдельные его картежи. Индексирование.Термин индекс тесно связан с понятием «ключ». Индекс—это средство ускорения операции поиска записи в таблице и других операций, использующих поиск (извлечение, модификация, сортировка). Таблица, для которой используется индекс называется индексированной. Индекс выполняет роль оглавления таблицы, просмотру которого предшествует обращению к записям таблицы. В некоторых системах индексы хранятся в отдельных от таблиц файлах. Для быстрого поиска с помощью индексов обычно используют один из двух методов: последовательный и бинарный. Связывание таблиц.При проектировании БД информацию обычно размещают в нескольких связанных таблицах. Установление связи между таблицами облегчает доступ к данным при выполнении таких операций, как поиск, просмотр, редактирование, выборка и подготовка отчета, а также уменьшает количество явных обращений к таблице и число манипуляций в каждой из них. Основные виды связи таблиц.Между таблицами могут устанавливаться связи: а) бинарные (между двумя); б) тернарные (между тремя); в) n-арные. При связывании двух таблиц выделяют основную и дополнительную (подчиненную). Логическое связывание производится с помощью ключа связи. Он состоит из одного или нескольких полей связи. Суть связывания состоит в установлении соответствия полей связей основной и дополнительной таблиц. Поля связей основной таблицы могут быть обычными и ключевыми. В качестве полей связи подчиненной таблицы обычно используют ключевые поля. Существует 4 основных вида связи 1:1Образуется в случае, когда все поля связи основной и дополнительной таблиц являются ключевыми; поскольку значения в ключевых полях обеих таблиц не повторяются, обеспечивается взаимно-однозначное соответствие записей из этих таблиц. Здесь таблицы равноправны. Сопоставление записей двух таблиц означает по существу образование новых «виртуальных» записей или псевдозаписей (). На практике это используется редко, т.к. хранимую в двух таблицах информацию легко объединить в одну таблицу, которая занимает гораздо меньше места, памяти ЭВМ. … На практике в связь обычно вовлекается сразу несколько таблиц, при этом одна из таблиц может иметь различного рода связи с несколькими таблицами. Таким образом может образоваться иерархия или дерево связи.

Контроль целостности связи.

На практике наиболее широко используют связь 1:М. Связь вида 1:1 можно считать частным случаем связи 1:М. Связь М:1—это, фактически, зеркальное отображение 1:М. Связь М:М характеризуется как слабый вид связи или даже как её отсутствие..

Контроль целостности связи означает анализ содержимого двух таблиц на соблюдение следующих правил:

  • Каждой записи основной таблицы соответствует 0 или более записей дополнительной таблицы.

  • В дополнительной таблице нет записей, которые не имеют родительских записей в основной таблице

  • Каждая запись дополнительно таблицы имеет только одну родительскую запись в основной таблице.

Рассмотрим контроль целостности при трёх основных операциях:

  1. Ввод новых записей. Здесь возникает вопрос определения последовательности ввода записей так, чтобы не допустить нарушения целостности. Исходя из правил, данные вводят сначала в основную, потом в дополнительную таблицу. В процессе заполнения основной таблицы контроль ведётся, как контроль обычного ключа (на совпадение со значениями тех же полей других записей). Заполнение полей связи дополнительной таблицы контролируется на предмет совпадения со значениями полей связи основной таблицы. Если вновь вводимое значение не совпадает ни с одним значением в записях основной таблицы, то его ввод должен блокироваться.

  2. Модификация записей. При редактировании полей связи дополнительной таблицы необходимо чтобы новое значение поля связи совпадало с соответствующим значением какой-либо записи основной таблицы, т.е. дополнительная запись может сменить родителя, но остаться без него не должна. Правила редактирования поля связи основной таблицы:

а) Редактировать записи у которых нет подчиненных записей (если есть подчиненные записи—блокировать модификацию полей связи

б) Изменения в полях связи основной таблицы мгновенно передавать во все поля связи всех записей дополнительной таблицы (каскадное обновление).

  1. Удаление записей. Основная таблица подчиняется одному из следующих правил:

а) Удалять можно запись, которая не имеет подчиненных записей

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

1

Соседние файлы в предмете Базы данных