Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety1_moi.docx
Скачиваний:
7
Добавлен:
15.04.2019
Размер:
819.58 Кб
Скачать

Пример.

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

SELECT NOM, FIO

FROM PERSON

WHERE SUMD < (SELECT MAX(MONEYS) FROM PROFIT);.

Вложенный запрос – оператор SELECT, заключенный в круглые скобки, и используемый в предложениях WHERE или HAVING.

Отличия:

  1. таблица результатов вложенного запроса всегда состоит из 1-го столбца. Список возвращаемых столбцов во вложенном запросе всегда должен иметь только 1 элемент.

  2. во вложенный запрос не может входить предложение ORDER BY для экономии времени.

  3. вложенный запрос не может быть запросом на объединение нескольких различных операторов SELECT.

  4. особенность: имена столбцов используемых во вложенном запросе могут являться ссылками на столбцы главного или внешнего запроса.

  1. Корректировка данных в SQL.

Добавление новых элементов.

Наименьшей единицей информации, которую можно добавить в базу данных, является одна строка.

Существует 2 способа добавления новых строк:

  1. однострочный оператор INSERT, включающий в таблицу 1 строку

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

При добавлении новой строки в таблицу всем столбцам, имена которых отсутствуют в списке оператора INSERT, СУБД автоматически присваивает нулевое значение, либо значение, заданное по умолчанию при описании структуры таблицы.

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

2) Многострочный оператор

Обеспечивает извлечение строк из одной базы данных (таблицы) в другую таблицу.

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

INSERT INTO PERSON (FIO, RDATE, POL,SUMD, ADR)

SELECTАлов Наум Наумович’, ’01-JAN-1970’, ‘М’, SUMD, ‘Зеленоград, 1001 - 51’

FROM PERSON

WHERE NOM = 16.

При отсутствии строки под номером 16, СУБД выдаст сообщение об ошибке, т.к. невозможно совершить преобразование пустой строки.

Удаление существующих данных

Наименьшей единицей информации, которую можно удалить из БД является 1 строка. Для удаления строк из 1-й таблицы используется оператор DELETE.

DELETE FROM <таблица> WHERE <условие отбора>

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

Обновление существующих данных

Наименьшей единицей информации, которую можно обновить в реляционной БД, является значение одного столбца в одной строке значений.

Для обновления 1-го или нескольких столбцов 1-й таблицы существует оператор UPDATE

Пример.

В таблице «Учебный план» увеличить количество часов на 2 для дисциплин 1-го семестра с формой отчетности «экзамен»

UPDATE Учебный_план

SET Количество_часов = Количество_часов +2

WHERE (Отчетность = ‘экзамен’) AND (Семестр = 1)

Используя оператор UPDATE, можно одновременно изменить несколько столбцов.

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

Язык обработки данных (DML) состоит из операторов UPDATE, DELETE.

DML – Data Manipulation Languages.

DDL – Data Definition Languages.

  1. SQL. Создание объектов.

Для создания объектов используется команда CREATE. Можно создать таблицу, представление, индекс

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

(

{<определение_столбца> | <определение_ограничения_таблицы>}

[,…,

{<определение_столбца> | <определение_ограничения_таблицы>}

короче, определение всех столбцов]

)

Возьмем таблицу PERSON, опишем ее структуру:

CREATE TABLE PERSON (INTERBASE)

( NOM INTEGER NOT NULL,

FIO CHAR(30) NOT NULL,

RDATE DATE NOT NULL,

POL CHAR(1),

SUMD FLOAT DEFAULT 0.00,

ADR CHAR(30),

PRIMARY KEY (NOM),

FOREIGN KEY (ADR) REFERENCES FLAT,

CHECK (POL IN(‘М’,’Ж’)))

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

Вид ограничения ---------- [порядковый номер ограничения]

PK – первичный ключ.

FK – вторичный ключ.

CK –

DU – условие уникальности данных.

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

Причины использования представлений:

  1. позволяет сделать так, чтобы разные пользователи могли видеть базу данных по-разному;

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

  3. представления упрощают доступ к БД, показывая пользователю структуру хранимых данных в наиболее подходящем для пользователя виде.

Представление является виртуальной таблицей, содержимое которой определяется запросом.

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

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

CREATE VIEW имя_представления (имя столбца) AS запрос

CREATE VIEW INFORM (ADR, NUMBER, TOTAL) AS SELECT ADR, COUNT(*), SUM(SUMD) FROM PERSON GROUP BY ADR.

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

Для создания индекса в языке SQL существует оператор CREATE INDEX; синтаксическая диаграмма:

CREATE INDEX имя_индекса ON имя_таблицы (имя_столбца) – значения в индексе будут расположены в алфавитном порядке.

Удаление индекса: DROP INDEX имя_индекса.

  1. SQL. Встроенный JOIN.

Ключевое слово JOIN используется в разделе FROM для связывания таблиц. Слово OUTER в большинстве СУБД можно не писать.

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

LEFT [OUTER] JOIN - выбираются все строки левой таблицы, независимо от того, есть для них соотв. строки в правой таблице. Если в правой нет строки, то для столбцов в правой таблице, включенных в выборку, устанавливается значение NULL.

RIGHT [OUTER] JOIN – аналогично тому, что выше, только теперь выбираются все строки из правой таблицы.

FULL [OUTER] JOIN – в результат включаются все строки обеих таблиц. Альтернатива одновременному применению LEFT JOIN и RIGHT JOIN.

Пример.

SELECT наименование, семестр, количество_часов

FROM Учебный_план JOIN Дисциплины ON Учебный_план.Код_дисциплина = Дисциплины.Код_дисциплина

WHERE количество_часов > 60;

  1. SQL. Понятие курсора. Использование курсоров.

Курсоры обычно используются в рамках SQL, встроенного в про­граммы, написанные на языке процедурного типа. Использование курсоров вызвано необходимостью стыковать позаписные включаю­щие языки и теоретико-множественный язык SQL. Курсор определяется посредством оператора объявления курсора (DECLARE CURSOR). Этот оператор определяет имя курсора, а так же содержит в своем составе запрос, выходные данные которого сохраняются для последующей обработки включающей программой:

DECLARE <имя_курсора> [INSENSITIVE] [SCROLL] CURSOR

FOR <подзапрос> [<предложение для обновления>]

Курсор находится либо в открытом состоянии, либо в закрытом. Начальное состояние курсора - закрытое. Для открытия курсора ис­пользуется оператор OPEN CURSOR <имя курсора>. Запрос, описанный при определении курсора, выполняется именно при откры­тии курсора. При первом открытии курсор устанавливается перед первой строкой. Позиция курсора в открытом состоянии может быть перед определенной строкой, на определенной строке или после пос­ледней строки. Если курсор установлен на строку, то эта строка явля­ется текущей строкой курсора.

Для построчного извлечения данных из курсора используется опе­ратор FETCH. Этот оператор продвигает позицию открытого курсора на следующую строку в порядке этого курсора, извлекает значения полей этой строки в переменные и имеет следующий синтаксис:

FETCH [[orientation]FROM] имя курсора

INTO целевая спецификация.,..;

orientation::=

NEXT | PRIOR | FIRST | LAST | {ABSOLUTE | RELATIVE

спецификация значения}

Значения NEXT, PRIOR, FIRST, LAST понятны без дополнитель­ного пояснения. Значение ABSOLUTE N вызывает перемещение на N-ю строку, а значение RELATIVE N - перемещение на N строк впе­ред, если N - положительное число, и на N строк назад, если N -отрицательное число.

Если задано предложение INSENSITIVE (нечувствительный), то, пока курсор открыт, все изменения над данными курсора будут игно­рироваться.

Строки открытого курсора имеют определенный порядок. Для того чтобы установить нужный порядок, можно использовать в операторе SELECT предложение ORDER BY. В противном случае порядок ус­танавливается реализацией.

Если задано предложение SCROLL, то не обязательно извлекать строки в том порядке, который задан при открытии.

Курсоры могут быть двух типов: обновляемые и только для чте­ния. Чтобы курсор был обновляемым, он должен базироваться на од­ной и только одной таблице, не содержать предложения ORDER BY, не объявляться как INSENSITIVE или SCROLL.

Курсор возвращается в закрытое состояние посредством исполь­зования оператора закрытия курсора CLOSE <имя курсора.>

  1. SQL. Группировка данных. Использование обобщающих функций.

Агрегирование данных. SQL-функций. Кроме специального случая COUNT(*) каждая из этих функций оперирует совокупностью значений столбца некоторой таблицы и создает единственное значение, определяемое так:

COUNT - число значений в столбце,

SUM - сумма значений в столбце,

AVG - среднее значение в столбце,

MAX - самое большое значение в столбце,

MIN - самое малое значение в столбце.

Для функций SUM и AVG рассматриваемый столбец должен содержать числовые значения.

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

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

SELECT {<список выбираемых полей >}

FROM < таблица >

GROUP BY <список полей для группировки>

HAVING <агрегатная SQL-функция>;

Пример. Вывести самый дорогой заказ, оформленный каждым продавцом за каждый день. При этом заказ должен быть дороже 1000.

SELECT код_продавца, дата, MAX (стоимость_заказа)

FROM Заказы

GROUP BY код_продавца, дата

HAVING MAX (стоимость_заказа) >1000;

  1. SQL. Возможности совместной обработки таблиц.

В SQL есть механизм для одновременной или последовательной обработки данных из нескольких взаимосвязанных таблиц. В нем реализованы возможности "соединять" или "объединять" несколько таблиц и так называемые "вложенные подзапросы" (см. билет 1.2).

Запросы, использующие соединения:

  • Декартово произведение таблиц - Для получения декартова произведения нескольких таблиц надо указать во фразе FROM перечень перемножаемых таблиц, а во фразе SELECT – все их столбцы.

  • Эквисоединение таблиц - Если из декартова произведения убрать ненужные строки и столбцы, то можно получить актуальные таблицы, соответствующие любому из соединений.

SELECT Меню.*, Трапезы.*, Вид_блюд.*, Блюда.*

FROM Меню, Трапезы, Вид_блюд, Блюда

WHERE Меню.Т = Трапезы.Т

AND Меню.В = Вид_блюд.В

AND Меню.БЛ = Блюда.БЛ;

  • Естественное соединение таблиц – Легко заметить, что в эквисоединение таблиц вошли дубликаты столбцов, по которым проводилось соединение (Т, В и БЛ). Для исключения этих дубликатов можно создать естественное соединение тех же таблиц:

SELECT Т, В, БЛ, Трапеза, Вид, Блюдо, Основа,Выход, Труд

FROM Меню, Трапезы, Вид_блюд, Блюда

WHERE Меню.Т = Трапезы.Т

AND Меню.В = Вид_блюд.В

AND Меню.БЛ = Блюда.БЛ;

  • Композиция таблиц - Для исключения всех столбцов, по которым проводится соединение таблиц, надо создать композицию

SELECT Трапеза, Вид, Блюдо, Основа, Выход, Труд

FROM Меню, Трапезы, Вид_блюд, Блюда

WHERE Меню.Т = Трапезы.Т

AND Меню.В = Вид_блюд.В

AND Меню.БЛ = Блюда.БЛ;

  • Тета-соединение таблиц - позволяет выбрать из полученного ранее декартова произведения таблиц Вид_блюд и Трапезы лишь те строки, в которых значение трапезы "меньше" (по алфавиту) значения вида блюда

SELECT Вид_блюд.*, Трапезы.*

FROM Вид_блюд, Трапезы

WHERE Вид > Трапеза;

  • Соединение таблиц с дополнительным условием При формировании соединения создается рабочая таблица, к которой применимы все операции: отбор нужных строк соединения (WHERE фраза), упорядочение получаемого результата (ORDER BY фраза) и агрегатирование данных (SQL-функции и GROUP BY фраза).

SELECT Вид, Блюдо, Основа, Выход, 'Номер -', БЛ

FROM Меню, Трапезы, Вид_блюд, Блюда

WHERE Меню.Т = Трапезы.Т

AND Меню.В = Вид_блюд.В

AND Меню.БЛ = Блюда.БЛ

AND Трапеза = ’Завтрак’;

  • Соединение таблицы со своей копией

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

SELECT Блюдо, Копия.Блюдо, Основа

FROM Блюда, Блюда Копия

WHERE Основа = Копия.Основа

AND Блюдо < Копия.Блюдо;

или двумя ее копиями (Первая и Вторая):

SELECT Первая.Блюдо, Вторая.Блюдо, Основа

FROM Блюда Первая, Блюда Вторая

WHERE Первая.Основа = Вторая.Основа

AND Первая.Блюдо < Вторая.Блюдо;

  1. SQL. Упорядочение данных. Операция объединения.

Упорядочение

Сортировка — это упорядочение записей по возрастанию или убыванию значений полей. Поля, по которым выполняется сортировка, указываются в операнде ORDER BY. Порядок следования полей определяет порядок сортировки. Сначала записи упорядочиваются по значениям поля, указанного в этом списке первым. Затем записи, имеющие одинаковое значение первого поля, упорядочиваются по второму полю и т. д.

Поля в списке обозначаются именами или номерами, которые соответству­ют номерам полей в списке полей после слова SELECT.

По умолчанию сортировка происходит в порядке возрастания значений по­лей. Для задания указания обратного порядка сортировки по какому-либо полю нужно указать после имени этого поля описатель DESC.

Пример. Сортировка записей.

SELECT * FROM Personnel.db ORDER BY Name

Сортировка записей задана по полю Name

Пример. Сортировка по двум полям.

SELECT Name, Post, Salary FROM Personnel.db ORDER BY Post, Salary DESC

или

SELECT Name, Post, Salary FROM Personnel.db ORDER BY 2, 3 DESC

В набор данных входят поля Name, Post и salary всех записей. Записи отсор­тированы по полям Post и Salary, при этом по полю Salary упорядочение выполняется по убыванию значений. Если по полям Post и salary построен индекс, то операции с набором дан­ных будут выполняться быстрее.

Объединение (UNION)

SELECT {<список выбираемых полей >}

FROM < таблица 1 >

UNION

SELECT {<список выбираемых полей >}

FROM < таблица 2 >

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

  1. Кол-во столбцов в объединяемых ТРЗ (Таблица Результата Запроса) должно быть одинаковым.

  2. Типы данных соответствующих столбцов из 1-й и 2-й таблиц должны совпадать.

  3. Ни одна из объединяемых таблиц не должна быть отсортирована с помощью ORDER BY.

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

С помощью оператора UNION можно объединить несколько таблиц.

  1. SQL. Возможности задания состава колонок, выводимых в ответ.

Запрос SELECT способен извлечь информацию из строго определенных столбцов таблицы. Для этого искомые столбцы перечисляются в запросе.

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

DISTINCT – аргумент, устраняющий повторные значения из выборки запроса SELECT

Задание состава колонок при объединении таблиц:

JOIN <…> USING (column_list) служит для указания списка столбцов, которые должны существовать в обеих таблицах. Такое выражение USING, как:

семантически идентично выражению ON, например:

   A LEFT JOIN B USING (C1,C2,C3,...)

C1=B.C1 AND A.C2=B.C2 AND A.C3=B.C3,…

Выражение NATURAL [LEFT] JOIN для двух таблиц определяется так, чтобы оно являлось семантическим эквивалентом INNER JOIN или LEFT JOIN с выражением USING, в котором указаны все столбцы, имеющиеся в обеих таблицах.

При использовании представления (view), набор колонок определяется запросом, создающим представление. Пример синтаксиса:

CREATE VIEW view1

AS SELECT column1, column2, column(n)

FROM table1, table2, table(n)

WHERE [condition];

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

  1. SQL. Возможности задания условий отбора.

SELECT {<список выбираемых полей >}

FROM < таблица >

WHERE <условие отбора>;

Указывает, какие строки следует отбирать. Задается условие поиска, как критерий отбора.

Виды условий поиска:

  1. Сравнение. =, <>, <, >, <=, >=.

  2. Проверка на принадлежность к диапазону значений. `Проверяемое выражение` (NOT) BETWEEN `Нижнее выражение` AND `Верхнее выражение`.

  3. Проверка на принадлежность к множеству значений. `Проверяемое выражение` (NOT) IN (константа, константа…).

  4. Проверка на соответствие шаблону. `Проверяемое выражение` (NOT) LIKE (шаблон).

  5. Проверка на равенство неопределенному значению. `Проверяемое выражение` IS (NOT) NULL.

  1. SQL. Создание и использование представлений.

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

Синтаксис предложения CREATE VIEW имеет вид

CREATE VIEW имя_представления

[(столбец[,столбец] ...)]

AS подзапрос

[WITH CHECK OPTION];

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

необязательная фраза "WITH CHECK OPTION" (с проверкой) указывает, что для операций INSERT и UPDATE над этим представлением должна осуществляться проверка, обеспечивающая удовлетворение WHERE фразы подзапроса;

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

а) хотя бы один из столбцов подзапроса не имеет имени (создается с помощью выражения, SQL-функции или константы);

б) два или более столбцов подзапроса имеют одно и то же имя;

если же список отсутствует, то представление наследует имена столбцов из подзапроса.

Например, создадим представление Мясные_блюда

CREATE VIEW Мясные_блюда

AS SELECT БЛ, Блюдо, В, Выход

FROM Блюда

WHERE Основа = 'Мясо';

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

Уничтожение ненужных представлений выполняется с помощью предложения DROP VIEW (уничтожить представление), имеющего следующий формат:

DROP VIEW представление;

Для создания объектов используется команда CREATE. Можно создать таблицу, представление, индекс

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

(

{<определение_столбца> | <определение_ограничения_таблицы>}

[,…,

{<определение_столбца> | <определение_ограничения_таблицы>}

короче, определение всех столбцов]

)

Возьмем таблицу PERSON, опишем ее структуру:

CREATE TABLE PERSON (INTERBASE)

( NOM INTEGER NOT NULL,

FIO CHAR(30) NOT NULL,

RDATE DATE NOT NULL,

POL CHAR(1),

SUMD FLOAT DEFAULT 0.00,

ADR CHAR(30),

PRIMARY KEY (NOM),

FOREIGN KEY (ADR) REFERENCES FLAT,

CHECK (POL IN(‘М’,’Ж’)))

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

Вид ограничения ---------- [порядковый номер ограничения]

PK – первичный ключ.

FK – вторичный ключ.

CK –

DU – условие уникальности данных.

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

Причины использования представлений:

  1. позволяет сделать так, чтобы разные пользователи могли видеть базу данных по-разному;

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

  3. представления упрощают доступ к БД, показывая пользователю структуру хранимых данных в наиболее подходящем для пользователя виде.

Представление является виртуальной таблицей, содержимое которой определяется запросом.

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

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

CREATE VIEW имя_представления (имя столбца) AS запрос

CREATE VIEW INFORM (ADR, NUMBER, TOTAL) AS SELECT ADR, COUNT(*), SUM(SUMD) FROM PERSON GROUP BY ADR.

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

Для создания индекса в языке SQL существует оператор CREATE INDEX; синтаксическая диаграмма:

CREATE INDEX имя_индекса ON имя_таблицы (имя_столбца) – значения в индексе будут расположены в алфавитном порядке.

Удаление индекса: DROP INDEX имя_индекса.

Ввод

  1. Возможности ввода информации в реляционных СУБД.

Ввод данных в таблицу может быть осуществлен в режиме Таб­лица при работе с объектом ТАБЛИЦА.

Если таблица была создана ранее и в настоящий момент она зак­рыта, то попасть в режим Таблица можно, позиционировавшись на вкладке Таблица в окне БД на имени нужной таблицы и щелкнув по кнопке Открыть.

При создании новой таблицы после описания ее структуры мож­но сразу перейти в режим Таблица и приступить к вводу данных.

Каждая таблица содержит пустую запись, которая следует за по­следней существующей записью и предназначена для ввода новых данных. Эта запись отмечена слева символом «звездочка» (*). Пози­ционироваться на эту запись можно разными способами, например, щелкнув по соответствующей кнопке Новая запись в панели пере­мещения по записям или выбрав позицию меню Вставка/Но­вая запись, или просто мышью.

Введенные данные автоматически сохраняются при переходе к другой записи.

Для перехода между записями можно использовать кнопки внизу окна таблицы в панели перемещения по записям (к первой, следую­щей, предыдущей, последней записи).

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

Значение по умолчанию. Обычно в этом качестве указывается какое-то постоянное значение, однако можно использовать и выраже­ние. Например, для ввода текущей даты можно в качестве значения по умолчанию использовать функцию =Date(). Значение, введенное по умолчанию, может быть впоследствии изменено.

Выражения, которые используются в качестве значений по умол­чанию, не должны содержать ссылок на элементы управления и дру­гие поля, а также функций, определенных пользователем. Выраже­ния могут записываться непосредственно или строиться с помощью «Построителя выражений».

Маска ввода (InputMask). Использование маски позволяет оп­ределить значения, которые можно ввести в поле, и не только обес­печивает контроль правильности ввода данных, но и облегчает их ввод. Значение свойства «Маска ввода» может быть введено вручную или с помощью Мастера масок ввода.

Используемые в масках знаки и их интерпретация приведены в приложении 1.

Рассмотрим некоторые примеры использования масок ввода.

  1. Маска ввода для поля «Телефоны» может выглядеть следующим образом:

\(999")-"999\-9999

В приведенном примере константы (скобки, дефисы) отражаются на экране, но в базу данных не вводятся.

  1. Пусть на фирме адрес электронный почты (ЭП) сотрудников формируется следующим образом: префикс - любые четыре симво­ла, а затем для всех указывается @firm.ru

В этом случае маска может выглядеть следующим образом:

АААА"@ firm "."ru";0

Значение свойства «Маска ввода» может содержать до трех раз­делов, разделенных точкой с запятой (;). Первый представляет саму маску ввода, второй - определяет режим занесения в таблицу тексто­вых констант, добавляемых к знакам, вводящимся пользователем. «О» в данном компоненте указывает, что текстовые константы сохраня­ются вместе с введенными пользователем значениями; значение «1» или пустое значение данного раздела указывает, что сохраняются толь­ко знаки, введенные пользователем. В данном примере постоянная часть адреса электронный почты сохраняется в БД. Третий раздел определяет знак, используемый для изображения пустых позиций в маске ввода, в которые помещаются вводящиеся пользователем знаки.

Свойство «Формат поля» (Format). Кроме свойства «Маска вво­да» в Microsoft Access можно задать еще свойство «Формат поля» (Format). Их использование приводит к похожим результатам.

Свойство «Формат поля» влияет только на отображение значения, но никак не влияет на значение, хранимое в таблице. Для управления вводом данных удобнее использовать маску ввода.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]