Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
db-shpora.doc
Скачиваний:
14
Добавлен:
08.11.2018
Размер:
1.44 Mб
Скачать

Операторы drop

В языке SQL имеется множество других операторов и конструкций для определения данных. Одним из самых полезных среди них является оператор DROP TABLE. Но он одновременно является и одним из самых опасных, поскольку удаляет таблицу из базы данных вместе со всеми содержащимися в ней данными.

Если вам нужно удалить из базы данных таблицу под названием КЛИЕНТ и все содержащиеся в ней данные, используйте следующий оператор: DROP TABLE КЛИЕНТ.

Оператор DROP TABLE не выполняется, если таблица содержит или может содер­жать значения, необходимые для соблюдения ограничений ссылочной целостности. Например, столбец ИдПроекта таблицы ПРОЕКТ может содержать значения, необходимые для соблюдения ограничения внешнего ключа ПроектВК. Попытка передать СУБД на выполнение оператор DROP TABLE ПРОЕКТ окончится неудачей, и система выдаст сообщение об ошибке.

Если вы хотите удалить таблицу ПРОЕКТ, нужно сначала удалить либо ограничение внешнего ключа ПроектВК, либо всю таблицу НАЗНАЧЕНИЕ. Удалить ограничение можно при помощи следующего оператора: ALTER TABLE НАЗНАЧЕНИЕ DROP CONSTRAINT ПроектВК:

Если вы предпочитаете удалить всю таблицу, это можно сделать так: DROP TABLE НАЗНАЧЕНИЕ;

Выполнив любое из этих действий, вы сможете беспрепятственно удалить таблицу ПРОЕКТ.

  1. Основы языка sql: синтаксис операторов манипулирования данными (select, order by, встроенные функции, group by)

SELECT

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

Чтение заданных столбцов из одиночной таблицы. Следующий оператор запросит (прочтет) три из четырех столбцов таблицы ПРОЕКТ:

Листинг 4

SELECT Название, Отдел, МаксТрудозатраты

FROM ПРОЕКТ;

Если нужно, чтобы СУБД нашла и удалила одинаковые строки, при запросе необходимо использовать ключевое слово DISTINCT:

Листинг 5

SELECT DISTINCT Отдел

FROM ПРОЕКТ;

Чтение заданных строк из одиночной таблицы. Приведенные выше SQL-операторы выбирали определенные столбцы всех строк таблицы. Можно сделать и наоборот — выбрать все столбцы определенных строк. Например, следующий оператор запрашивает все столбцы из тех строк таблицы ПРОЕКТ, которые содержат сведения о проектах финансового отдела:

Листинг 6

SELECT ИдПроекта, Название, Отдел., МаксТрудозатраты

FROM ПРОЕКТ

WHERE Отдел = 'Финансы';

В условиях, задаваемых в предложении WHERE, значения столбцов, имеющих типы данных Char и VarChar, необходимо заключать в одинарные кавычки (апострофы). Для столбцов типов Integer и Numeric этого не требуется. Объединять несколько условий можно с помощью ключевого слова AND.

Листинг 7

SELECT *

FROM ПРОЕКТ

WHERE Отдел = 'Финансы' AND МаксТрудозатраты > 100;

Множества значений задаются с использованием ключевых слов IN (соответствие любому значению из списка) и NOT IN (несоответствие ни одному значению из списка).

Листинг 8

SELECT Имя. Телефон, Отдел

FROM СОТРУДНИК

WHERE Отдел IN ('Бухгалтерия', 'Финансы', 'Маркетинг');

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

Листинг 9

SELECT Имя. Отдел

FROM СОТРУДНИК

WHERE ТабельныйНомер BETWEEN 200 AND 500;

Шаблоны поиска можно задавать при помощи специальных символов _ (произвольный одиночный символ) и % (произвольная последовательность символов) в сочетании с ключевым словом LIKE. Для поиска пустых значений используются ключевые слова IS NULL.

Листинг 10

SELECT *

FROM ПРОЕКТ

WHERE Имя LIKE 'KB_ Анализ портфеля';

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

1000 КВЗ Анализ портфеля Финансы 75

1500 КВ4 Анализ портфеля Финансы 110

Чтобы найти всех сотрудников, чей номер телефона начинается с '285', можно четыре последние цифры номера представить символами подчеркивания:

Листинг 11

SELECT *

FROM СОТРУДНИК

WHERE Телефон LIKE '285-____':

Символ процента (%) представляет последовательность из одного или нескольких произвольных символов. Запрос, возвращающий строки сотрудников с номерами телефонов, начинающимися с '285', можно записать по-другому:

Листинг 12

SELECT *

FROM СОТРУДНИК

WHERE Телефон LIKE '2851%';

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

Финансы

Маркетинг

Маркетинг

Инф. системы

Инф. системы

Бухгалтерия

Бухгалтерия

Листинг 13

SELECT Имя, Отдел

FROM СОТРУДНИК

WHERE Телефон IS NULL;

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