Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Пример 1. Создать новую таблицу План счетов в БД ОС.MDB

Создать новую таблицу План счетов в БД ОС.MDB.

CREATE TABLE [План счетов]([Номер счета] CHAR (3), [Номер субсчета] CHAR (2), [Номер месяца] CHAR (2),[Сальдо дебет] SINGLE, [Сальдо кредит] SINGLE)

Индекс таблицы может создаваться в момент создания таблицы оператором CREATE TABLE, либо позже с помощью инструкции:

CREATE [UNIQUE] INDEX индекс ON таблица (поле [ASC|DESC] [, поле [ASC|DESC],...]) [WITH {PRIMARY | DISALLOW NULL|IGNORE NULL }]

Индекс таблицы имеет уникальное имя. Значения индекса могут быть уникальными (UNIQUE), то есть значения индексируемого поля в записях таблицы не повторяются. Условия на значения индексируемых полей:

l DISALLOW NULL — в новых записях нельзя иметь пустые значения полей индекса;

l IGNORE NULL — запрет включения в индекс записей, имеющих значения Null в индексированных полях;

l PRIMARY — индексированные поля являются первичным ключом (уникальный индекс).

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

DROP INDEX индекс ON таблица

Изменения структуры загруженной таблицы предполагает:

l добавление столбцов — ADD COLUMN (с указанием имени поля, его типа и размера);

l удаление столбцов — DROP COLUMN (с указанием имени поля);

l добавление составного индекса — ADD CONSTRAINT;

l удаление составного индекса — DROP CONSTRAINT.

ВНИМАНИЕ

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

При удалении таблицы удаляются как данные, так и определение таблицы в БД. Перед удалением таблицы должны быть закрыты. Оператор удаления таблицы:

DROP TABLE таблица

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

SELECT [предикат] { * | таблица.* | [таблица.]поле1 [AS псевдоним1] [, [таблица.]поле2 [AS псевдоним2] [,...]]}FROM выражение [,...] [IN внешняя_база_данных][WHERE... ][GROUP BY... ][HAVING... ][ORDER BY... ] [WITH OWNERACCESS OPTION]

Предикат управляет отображением данных в выходной структуре и принимает значения:

ALL Отбор всех записей, соответствующих условиям
DISTINCT Отбор записей с неповторяющимися значениями указанных полей
DISTINCTROW Отбор записей, не повторяющихся в полном составе всех полей (игнорируется, если запрос содержит только одну таблицу или все поля всех таблиц)
TOP n   Отбор определенного числа записей (n) в начале диапазона записей согласно ORDER BY

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

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

l симметричная (INNER);

l внешнее объединение слева: LEFT JOIN;

l внешнее объединение справа RIGHT JOIN.

Для группирования выходных данных используется фраза GROUP BY. Можно использовать до 10 имен полей группирования. Порядок следования полей группирования слева направо определяет уровень итога выходных данных. С помощью данного предложения можно осуществлять групповые вычисления с использованием статистическихфункций SQL: SUM, COUNT, MAX, MIN, AVG и др.

ВНИМАНИЕ

При использовании GROUP BY все поля в списке полей SELECT должны быть либо включены в предложение GROUP BY, либо использоваться в качестве аргументов статистической функции SQL.

Предложение WHERE обеспечивает фильтрацию записей, участвующих в обработке. При совместном использовании WHERE и GROUP BY записи, не удовлетворяющие условиям,исключаются из группирования и вычисления итогов. ПредложениеHAVINGявляется фильтром для записей после их группирования. Оно может содержать до 40 выражений, связанных логическими операторами AND, OR, NOT. Для упорядочения строк выводимой информации используется фраза ORDER BY — сортировка записей.

Результат запроса на языке SQL можно сохранить в новой таблице с помощью инструкции:

SELECT поле1[, поле2[,...]] INTO новая_таблица [IN внешняя_база_данных] FROM источник

Поля в новой таблице наследуют типы и размеры базовых полей. С помощью предложения IN можно подключиться только к одной внешней БД — источнику. Фраза FROM обеспечивает выборку из нескольких таблиц.

Для полной или частичной очистки таблицы от ненужных записей выполняется оператор:

DELETE [таблица.*] FROM таблица WHERE условие_отбора

Оператор DELETE особенно удобен для группового удаления записей, удовлетворяющих условиям отбора. Фразы FROM и WHERE обеспечивают совместную обработку связанных таблиц и задание условий удаления записей в определенной таблице.

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

INSERT INTO назначение [IN внешняя_база_данных] [(поле1[,поле2[,...]])]
SELECT [источник.]поле1[,поле2[,...] FROM выражение

Ввод данных по записям поддерживается командой:

INSERT INTO назначение [(поле1[,поле2[,...]])] VALUES (значение1[, значение2[,...])

Групповое обновление данных в таблицах выполняется с использованием оператора:

UPDATE таблица SET новое_значение WHERE условие_отбора

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

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

[TABLE] запрос-1 UNION [ALL] [TABLE] запрос-2 [UNION [ALL] [TABLE] запрос- n [... ]]

В одной операции UNION можно объединить в любой последовательности несколько таблиц и результатов текущих запросов (SELECT). Повторяющиеся записи в источниках объединения не возвращаются при использовании операции UNION, если не указан предикат ALL. В предложении ORDER BY осуществляется ссылка на поля по их названиям в первом предложении SELECT. В каждом отдельном запросе можно использовать свое предложение GROUP BY и/или HAVING для группирования возвращаемых данных. В конец последнего запроса можно включить предложение ORDER BY для сортировки возвращаемых данных.

 

<== предыдущая лекция | следующая лекция ==>
Язык запросов SQL | Информационное общество. Глубина и масштабность процесса информатизации всех сфер жизнедеятельности общества на основе новых информационных технологий дает основание говорить об
Поделиться с друзьями:


Дата добавления: 2014-01-15; Просмотров: 364; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.