Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ИП 2010-04-04 doc.doc
Скачиваний:
108
Добавлен:
13.05.2015
Размер:
5.96 Mб
Скачать

Группировка данных

Group By <колонка>[,<колонка>...]‑ задаются колонки, по которым производится группировка выходных данных. Все записи таблицы, для которых значения колонок совпадают, отображаются в выборке единствен­ной строкой. Группировка удобна для получения некоторых сводных ха­рак­те­ристик (сумма, число записей, среднее) группы.

Having <условие отбора>‑ опция задает критерий отбора данных в каждую сформированную в процессе выборки группу.

Сортировка

Order By <колонка> [Asc/Desc] [,<колонка> [Asc/Desc]...]‑ опция задает упорядочение по колонкам. По умолчанию сортировка вы­пол­няется по возрастанию (Asc), но может быть задана и по убыванию (Desc).

Примеры

1. Выборка всех полей из таблицы Kadr: Select * From kadr

2. Вывод минимального, максимального и среднего значений поля Szar (средняя зарплата). Select Min(szar), Max(szar), Avg(szar) From kadr

3. Вывод фамилий работников, получающих от 3000 до 8000 рублей.

Select fam From kadr Where szar Between 3000 And 8000

4. Выборка названий всех подразделений предприятия из таблицы Kadr: select Distinct podr From kadr

5. Выборка фамилий всех мужчин из таблицы Kadr.

Select fam From kadr Where pol='M'

6. Вывести фамилии и табельные номера по алфавиту и с другими именами колонок FAMILII и TABEL.

Select fam As familii, tab As tabel From kadr Order By fam

7. Вывод полей Fam и Tab, отсортированных по полям Pol и Fam в таблицу FamTab.

Select fam,tab From kadr Order By pol,fam Into FamTab

8. Вывод фамилий всех работников, работавших ранее в конструк­торском бюро (КБ).

Select fam From kadr Where per Like ‘%КБ%'

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

Select tab, Sum(vir) From brig Group By tab Order By tab

10. Вывод названий всех подразделений, количества сотрудников и значений суммарной заработной платы. Информация выводится только для подразделений, где количество сотрудников больше пяти.

Select podr, Count(*), SUM(szar) From kadr Group By podr Having Count(*)>5

11. Вывод табельного номера (Tab) работников из таблицы Kadr и выработки их (Vir) из таблиц Brig1, Brig2. Таблицы связаны по полюTab.

Select.Kadr.Tab, Brig1.Vir, Brig2.Vir, Brig1.Vir+ Brig2.Vir ­_

From Kadr, Brig1, Brig2 _

Where Kadr.Tab=Brig1.Tab And Kadr.Tab=Brig2.Tab

9.5.2. Запросы на обновление данных

Обновление полей

Update <таблица> Set <новое значение> [Where <условие>]

Пример. Увеличить оклад работникам цеха N2 в полтора раза.

Update Kadr Set Oklad=1.5*Oklad Where Cex=”Цех N2”

Включение новой записи

Insert Into ... Select ... { From ... | Values ...}

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

Insert into KadrArchive Select * From Kadr Where date<#10/11/99#

Пример. Добавить одну запись с заданными значениями.

Insert Into Kadr(fam, Datarogd, Oklad) Values (“Иванов”,#10/11/80#,1000)

Удаление записи: Delete From ... Where ...

Пример. Удалить запись о сотруднике по фамилии Иванов.

Delete From Kadr Where Fam=”Иванов”

9.5.3. Создание таблиц

Create Table <таблица> (<поле> <тип> [ (<размер>) ],...)

Пример. Создать таблицуKadr.

Create Table Kadr (Fam Text (30) , DataRogd Date, Oklad Currency)

9.5.4. Создание индекса таблицы

Create [Unique] Index <имя индекса>

On <таблица> (<поле> [Asc|Desc]),..

[With {Primary | Disallow Null | Ignore Null}]

Unique ‑ исключает повторение значения индекса.

Asc|Desc - сортировка по возрастанию или по убыванию значения индекса.

Primary - первичный ключ для связи с другими таблицами.

Disallow Null - запрет на наличие пустых значений в индексах записей.

Ignore Null - запрет на включение в индекс записей, имеющих значение Null в индексах.

Пример. Создать уникальный составной индекс Zavod_Izdelie_Date из полей: код завода (Kod_zavoda), код изделия (Kod_Izdeleij) и дата выпуска изделия (Data) для таблицы выпуска изделий Vipusk.

Create Unique Index Zavod_Izdelie_Date

On Vipusk (Kod_zavoda, Kod_Izdeleij, Date) With Ignore Null