Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SHPORY DLYA TEL.doc
Скачиваний:
41
Добавлен:
30.04.2015
Размер:
462.34 Кб
Скачать

28 Язык sql и его возможности, выборка данных средствами sql

SELECT – оператор DML языка SQL, возвращающий набор данных (выборку) из базы данных, удовлетворяющих заданному условию.

В большинстве случаев, выборка осуществляется из одной или несколь­ких таблиц. В последнем случае говорят об операции слияния (JOIN (SQL)). В тех СУБД, где реализованы представления (англ. view) и хранимые процедуры (англ. stored procedure), также возможно получение соответствующих наборов данных.

При формировании запроса SELECT пользователь описывает ожидаемый на­бор данных: его вид (набор столбцов) и его содержимое (критерий попадания за­писи в набор, группировка значений, порядок вывода записей и т. п.).

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

Особую роль играет обработка NULL-значений, когда при слиянии, например, двух таблиц – главной (англ. master) и подчинённой (англ. detail) – имеются или отсутствуют соответствия между записями таблиц, участвующих в слиянии. Для решения этой задачи используются механизмы внутреннего (англ. inner) и внеш­него (англ. outer) слияния.

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

Структура SELECT:

SELECT список полей FROM список таблиц WHERE условия…

Основные ключевые слова, относящиеся к запросу SELECT:

- WHERE – используется для определения, какие строки должны быть вы­браны или включены в GROUP BY.

- GROUP BY – используется для объединения строк с общими значениями в элементы меньшего набора строк.

- HAVING – используется для определения, какие строки после GROUP BY должны быть выбраны.

- ORDER BY – используется для определения, какие столбцы используются для сортировки результирующего набора данных

SELECT DeptID, SUM(SaleAmount) FROM Sales

WHERE SaleDate = '01-Jan-2000'

GROUP BY DeptID

HAVING SUM(SaleAmount) > 1000

29 Язык sql и его возможности редактирование данных sql

DELETE – операция удаления записей из таблицы. Критерий отбора записей для удаления определяется выражением where. В случае, если критерий отбора не определён, выполняется удаление всех записей.

Общий синтаксис команды:

DELETE FROM <Имя Таблицы> WHERE <Условие отбора записей>

Пример:

DELETE ab, b

FROM Authors AS a, AuthorArticle AS ab, Articles AS b

WHERE a.AuthID=ab.AuthID AND ab.ArticleID=b.ArticleID

AND AuthorLastName='Henry';

INSERT – оператор языка SQL, который позволяет добавить строки в таблицу, заполняя их значениями. Значения можно вставлять перечислением с помощью слова values и перечислив их в круглых скобках через запятую или оператором select.

Используя перечисление значений, с указанием столбцов:

INSERT INTO <название таблицы> ([<Имя столбца>, ... ]) VALUES (<Значение>,...)

Используя перечисление значений, без указания столбцов:

INSERT INTO <название таблицы> VALUES (<Значение>,...)

Используя select:

INSERT INTO <название таблицы> SELECT <имя столбца>,... FROM <название таблицы>

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

UPDATE – оператор языка SQL, позволяющий обновить значения в заданных столбцах таблицы.

UPDATE [top(x)] <объект>

SET <присваивание1 [, присваивание2, ...]>

[WHERE <условие>];

top(x) – команда выполнится только х раз;

<объект> – объект, над которым выполняется действие (таблица или представление);

<присваивание> – присваивание, которое будет выполняться при каждом выполнении условия <условие>, или для каждой записи, если отсутствует раздел where; <условие> – условие выполнения команды;

SET – после ключевого слова должен идти список полей таблицы, которые будут обновлены и непосредственно сами новые значения в виде;

имя поля="значение";

UPDATE top(10) tbl_books SET price = 0 WHERE quantity = 0;

UPDATE per­sons SET street = 'Nis­sesti­en 67', ci­ty = 'Sand­nes' WHERE lastname = 'Tjes­sem' AND firs­tna­me = 'Ja­kob';

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