Базовая форма опертора Select

Select список_полей

From название_таблицы

Пример

Select id_pok, pok, adr

From zakazchiki

Если требуется выбрать все поля из таблицы, то вместо списка полей используется символ *.

Если после клюючевого слова Select ключевое слово DISTINCT, тов результат не включаются записи, содержащие повторяющиеся значения

Пример

SELECT DISTINCT kod_pok FROM zakaz

Когда необходимо отобрать записи по определенному условию, то можно воспользоваться ключевым словом WHERE, за которым следует условие отбора. В нем используется операции сравнения (ЮбБб=Б <>, <=, >=) логические операции or, and, not и ( ). В результирующий НД попадают только те, записи значения которых удовлетворяют заданному условию:

Select список_полей

From название_таблицы

Where условие

Пример

SELECT pok, adr, phone FROM zakazchiki

WHERE( pok = “Афина”)

Для сортирвки результирующего НД необходимо исользовать ключевые слова ORDER BY, после которых указывается поле, по которому выполняется сортировка. По умолчанию она выполняется в возрастающем порядке. Для сортировки в порядке убывания после имени поля добавляется ключевое слово DESC

Пример

SELECT pok, adr, phone FROM zakazchiki

WHERE( pok <>“Афина”)

ORDER BY adr DESC

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

Пример

SELECT zakaz.kol, zakazhikik.pok

FROM Zakaz, Zakazchiki

WHERE zakaz.kod_pok = zakazchiki.id_pok

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

Пример. Выбрать из таблицы zakazchiki fpdfybt тольок тех фирм, которые начинаются с буквы А

SELECT pok FROM zakazchiki

WHERE pok LIKE ‘”a%”

ORDER BY pok

При определении части текстового поля в операции LIKE символ % указывает, что на его месте могут стоять любые символы.

Пример. Вырбать з таблицы zakazchiki название только тез фирм, в которых хтя бы раз встречается буква А

SELECT pok FROM zakazchiki

WHERE pok LIKE ”%a%”

ORDER BY pok

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

Пример. Выберем из таблицы zakazchiki название первой и третьей фирмы

SELECT pok FROM zakazchiki

WHERE id_pok IN (1,3)

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

C помощью зарезервированного слова BETWEEN можно укащывать диапазон допустимых значений.

 

Пример. Отобразить список фирм заказавших запасные части в сентябре 2008 года, сортировка по дате заказа.

SELECT pok, date_zak FROM zakazchiki, zakaz

WHERE zakazchiki.id_pok= zakaz.kod_pok

AND

Date_zak BETWEEN “01.09.2008” and “30.02.2008”

Order by date_zak

 

 

№53 Агрегатные функции и групировка записей

Вместо имен полей и наклонная черта и/или вместе сними в операторе SELECT можно использовать одну из следуюшихагрегатных функций

1) AVG – возврещает среднее значение аргумента

2) COUNT – подсчитывает колтчества вхoждения аргумента dj все записи НД

3) SUM – суммиhetn значение аргумента

4) MIN – возвращает минимальное значение аргумента

5) MAX – возвращает максимальное значение аргумента

В качестве аргумента при обращении к агрегатной функции может стоять произвольное изобажение составленное из поле НД

Пример, выдать спсиовк всех …. С указанием общего кол-ва заказанных запасных частей. Сортировка по убыванию поле pok

Для подобного рода запросов которых вместе с агрегатными функциями выводятся и поля таблиц, SQL требует секции группировки GROPU BY, в которой в обязательном порядке перечисляются все поля, указанные в секции Select.

SELECT pok, SUM(kol)

FROM zakaz, zakazchiki

WHERE kod_pok=id_pok

GROUP BY pok

Order by pok desc

При использовании агрегатных функций иногда требуется сключить из списка повторяющиеся значенрия полей ( ключ слово distinct)

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

///////

 

 

…..

Tovar (KodT, Naimen, Kol, Cena, Nommang)

Prodazha (Nchek, Nommang, KodT, Date_R, KolKupl, KodSotr)

Sotrudniki (KodSotr, FIO, Homeadr, God_r, Dolzh)

Отобразить список товаров продынных заданным сотрудником ( код этогосторудника ввводим в Edit1) с указание его фио, наименование товара, цены товара, его проданного количества в аппреле 2008 го года

SELECT FIO, naimen, cena, sum(kolkupl)

FROM tover, prodazha, sotrudnikik

WHERE Tover.kodt= prodazha.kodt and sotrudniki.kodsotr=prodazha.kodsotr and date_r between “01.05.2008” and “30.05.2008” and prodazha.kodsotr=: olya

GROUP BY FIO, NAIMEN, CENA

Dm.Query1.ParamByNAme(‘Olya’).AsInteger := strtoint (Edit1.Text);

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

SELECT FIO,dolzh

FROM sotrudniki

WHERE god_r =”1983” and homeadr is null

№54 Вставка, изменения и удаление записей

В таблицу БД запись вставляется с помощью оператора Insert:

INSERT INTO ИМЯ_ТАБЛИЦЫ (список полей) Vlues (список значений)

Типы значений в списке значений должны соответствовать типам значений в списке полей.

INSERT INTO zakaz (nom_zak, date_zak, KOd_pok) VALUES (1070, “20.11.2008”,2)

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

INSERT INTO zakaz

VALUES (1070, “20.11.2008”,20)

C помощью оператора Update выполняет изменения значений отдельных полей таблицы

UPDATE Имя_таблицы

SET поля=значение

WHERE условие_выборки

Пример

UPDATE ZAKAZCHIKI

SET adr=”P.ijjcr1”

WHERE id_pok =3

За зарезервированым словом SET может стоять произвольное количесво полейс указанием из значений; два сосеlних присваивания – имя поля=знаечние разделяются запятой, если опутить секцию WHERE то будет изменено значение поля во всех заисях таблицы.

Дл удаления записей используется опертор DELETE:

DELETE FROM имя_таблицы

WHERE условие_выборки

Удлаение всех записейв таблице

DELETE FROM zakaz

 

 

№55 Создание и удаление таблицы индексов

Для создания таблицы используется оператор:

CREATE TABLE имя_таблицы (определения полей)

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

Привет

CREATE TABLE Avto(Marka Char (50), Nom_avto INT)

Допустимые типы полей в общем случае зависят от типа таблиц, так как в файл-серверных БД delopi создает таблицы типа Paradox то в операторе CREAT Table можно использовать след. Типы полей:

1) Char(N), Character (N) – символьное поле длиной N символов (до 255)

2) INT, INTEGER – соответствует типу integer языка Delphi

3) SmallInt - -//- языка Delphi

4) BLOB – цепочка байтов неопределенной длины

5) Float - -\\- real языка Delphi

6) Date – поле для хранения даты

7) Boolean -\\- Boolean языка Delphi

За типом поле при его описании можно указывать зарезервированные слова, (NOT null – поле не может быть пустым, Primary key- по полю строиться первичный ключ, UNIQUE – значения поля уникальны).

Для удаления существующей таблицы используется оператор:

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

Для создания индекса служит оператор:

CREATE INDEX имя_индекса ON имя_таблицы (список полей)

Пример

CREATE INDEX MyInd ON Avto ( Marka, Nom_avto)

Для удаления существующего индекса служит оператор

DROP INDEX имя_индекса

 








Дата добавления: 2017-02-20; просмотров: 416;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.018 сек.