Сделай Сам Свою Работу на 5

Упорядочение строк в запросах





Используется оператор order by (order by deptno)

Пример: выбрать имена, оклады и дожности сотрудников отдела 30 в порядке возростания оклада и убывания табельного номера

Select sal, job, ename from emp

Where deptno=40 and

Order by sal, empno desc;

(order sal asc)

Устранение строк-дубликатов

Для предохранение от выбора дублирующих строк используется ключевое слово DISTINCT.

Пр:

Select distinct job From emp;

Агрегатные функции

Для группировки данных по каким либо признакам используется предикат group by (count, sum, avg, mas, min)

Пример:

Select deptno, max(sal)

From emp

group by deptno;

результат:

deptno max(sal)

10 5000

20 1000

Пример 2: вывести суммарный оклад для каждой должности в каждом отделе

Select dname, fob, sum(sal), count(*),

Avg(sal)

From emp, dept

Where emp.deptno=dept.deptno

Group by dname, fob;

 

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

Select dname, job, sum(sal), count(*),

avg(sal)

where emp.deptno = dept.deptno

group by dname, job

having count(*)>=2;

Ложные запросы

SQL позволяет вкладывать запросы друг в друга. Обычно внутренний запрос генерирует значения, проверяемый на соответствие условие внешнего запроса.



Пример: вывести список сотрудников занимающих такую же должность как сотрудник по имени Igor

Select ename , job, sal

From emp

Where job=(select job from emp where

Where ename =’игорь”);

Пример: вывести список сотрудников, оклады которых превышают средние значения

Select ename, sal

From emp

Where sal>(select avg(sal) from emp)

Операторы DDL

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

Для создания таблиц используется оператор create table. Изменение структуры таблицы выполняется с помощью оператора alter table.

Пример: добавить поле loc в таблицу emp

Alter table emp add (loc char(80));

Drop table

Создание представлений

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

Пример: создать и использовать представление для вывода списка сотрудников из отдела 10

Create view emp10 as

Select empno, ename, job

From emp

Where deptno=10;

Select*from emp10;

 

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

Create view myemp as

Select* from emp



Where deptno in(select deptno from emp where ename=user);

Операторы DSL

Операторы этой группы используются для защиты данных.

Предоставление привилегий пользователям

Для этого используется оператор grant

Grant<привилегия>or<таблица или view>

To <пользователь или группа nview>

 

Пример: разрешить пользователю “Игорь” выбирать данные из таблицы emp

Grant select on emp

 

Отмена привилегий

Для отмены привилегий, используется оператор revoke

Revoke<привилегия>or<таблица или View>

From <пользователь или группа>

Пример: Запретить пользователю добавлять в строки (записи) в таблицу emp

Revoke Insert dept from Игорь;

Тригеры и хранимые процедуры

Серверные СУБД могу хранить не только данные, но и исполняемый код. Он обычно храниться в триггерах и хранимых процедурах.

Хранимые процедуры – это выполняемы программы, хранящиеся как часть метаданных серверной БД. Хранимые процедуры могут иметь входные и выходные параметры, могут возвращать или не возвращать наборы данных. (курсоры)

Существует два вида хранения процедур: процедуры для выбора данных, которые могут быть использованы вместо таблиц или запроса; и выполняемые процедуры, которые могут ничего не возвращать.

Тригеры – исполняемый код, связанный с таблицей или представлением, автоматически выполняющийся при поступлении какого либо события (вставка, удаление или модификация данных). Тригер никогда не вызывается непосредственно.

 

Основные понятия, используемые в БД

Множество однотипных объектов, называемых экземплярами, при этом каждый экземпляр индивидуален и отличается от другого. Типичными примерами сущностей могут быть сущности: «врач», «пациент», «специальность», а примера экземпляров – «Иванов», «Петров», «программист».



 

Аттрибут – характеристика сущности. Выражает одно завершенное и определенное свойство сущности (пример – дата рождении пациента).

Связь – логическое отношение между сущностями, выражающее некоторое ограничение или бизне-правила.

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

Нормализация данных

Один из основополагающих принципов построения данных в БД – нормализация, позволяющая существенно сократить объем хранимой информации и устраняющий аномалии в организации хранения данных. Степень нормализации данных может быть разной.

 

принести флешку

1 лаб. по делфи

2 лаборат. по mysql

3 по с++

 

 

Тема: Основные ключевые понятия БД

Любая таблица РБД состоит из строк (записями) и столбцов (полями).

Так как строки в таблице неупорядоченные, нам нужен столбец (или набор столбцов), для уникальной идентификации каждой строки. Такой столбец (или набор столбцов) называется первичным ключом (primary key). Первичный ключ любой таблицы обязан содержать уникальные непустые значения для каждой строки.

Если первичный ключ состоит из более чем одного столбца, он называется составным первичным ключом (composite primary key).

Столбец, указывающий на запись в другой таблице, связанную с данной записью, называется внешним ключом (foreign key). Внешний ключ – это столбец или набор столбцов, чьи значения совпадают с имеющимися значениями первичного ключа другой таблицы.

Подобные взаимоотношения между таблицами называются связью (relationship). Связь между таблицами устанавливается путем присваивания внешнего ключа одной таблице значений первичного ключа другой таблицы.

Группа связанных таблица называется схемой БД.

Информация о таблицах, их столбцах (имена, тип данных, длина поля), первичных и внешних ключах, а так же иных объектов БД называется метаданными.

 

Объекты БД.

Большинство БД содержит несколько разных типов объектов – таблицы, индексы (для сортировки данных и поддержки ключей), ограничения и правила ( нужны для поддержки целостности и ограничения объемов данных,) триггеры и хранимые процедуры, для хранения исполняемого кода.

Таблицы поддерживаются всеми СУБД и могут хранить данные разных типов, и представления View

Наиболее типичные типы данных для таблиц:

1) Строки – строки могут содержать однобайтовые и двухбайтовые символы.

2) Числа (numbers) – бывают разных типов

3) Денежный формат (currency)

4) Дата/время

5) BLOB – поля (Binary Large Objects) – это просто набор байтов. В таком поле можно хранить данные разных форматов (текст, графика, мультимедийные данные, OLE – объекты.

 

 

Индексы.

В большинство реляционных СУБД ключи реализуются с помощью объектов, называемых индексами.

Можно определить индекс как список номеров записей (строк), указывающей, в каком порядке их отображать. Большинство СУБД требует наличие индексов для полей, являющихся первичными ключами.

 

Ограничения и правила.

В большинство серверных СУБД содержатся специальные объекты – ограничения и правила. Эти объекты содержать сведения об ограничениях, предъявляемых к возможным значениям полей (столбцов).

 

Фактически View - это хранимый запрос.

 

Триггеры и хранимые процедуры.

Это специальные процедуры. которые выполняются сервером БД. Хранимые процедуры пишутся на процедурном языке, которые зависят от СУБД. Они могут вызывать друг друга, считывать и изменять данные в таблицах, и их можно вызвать из приложения, работающего с БД.

 

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

 

Запрос к БД (это тоже объект БД query)

Одним из способов манипулирования данными называется QBE (Queries by examples) – представляет собой визуальное связывание таблиц и выбор полей, которые следует отобразить в результате запроса.

 

Курсоры (объект БД)

Не редко результатом запросы является набор строк и столбцов (rowset). В отличие от реляционной таблицы, в таком наборе строки упорядочены, и их порядок определяется исходным запросом (а иногда наличием индексов). Поэтому мы можем определить текущую строку в этом наборе, и указатель на нее называется курсором ( cursor). Большинство современных СУБД поддерживает так называемые двунаправленные курсоры, которые позволяют перемещаться по результирующему набору данных вперед и назад. Но бывают СУБД которые поддерживают только однонаправленные курсоры.

 

 

Механизмы доступа к данным.

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

Подавляющее большинство СУБД содержат библиотеки, предоставляющие специальный прикладной программный интерфейс (API – Application Programming Interface) для доступа к данным этой СУБД. Обычно этот интерфейс представляет собой набор функций, вызываемых из клиентского приложения. Использование клиентского API (иногда COM–объектов – модель компонентных объектов), является наиболее эффективным с точки зрения производительности.

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

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

1) Open DataBase Connectivity (ODBC);

2) OLE DB;

3) ActiveX Data Objects (ADO);

4) Borland DataBase Engine (BDE)

 

ODBC – широко распространенные программный интерфейс фирмы Microsoft удовлетворяющий стандартам ANSI и ISO для интерфейсов, обращений к базам данных (Call Level Interface - CLI). Для доступа к данным конкретной СУБД с помощью ODBC по мимо клиентской части этой СУБД нужен ODBC-administrator (Приложение, позволяющее определить, какие источники данных доступны для данного компьютера с помощью ODBC, и описать новые источники данных). Кроме того, нужен ODBC-драйвер для доступа к этой СУБД. ODBC-драйвер представляет собой динамически загружаемую библиотеку (.dll), которую клиентское приложение может загрузить в сове адресное пространство и использовать для доступа к источнику данных для каждой СУБД нужен собственный ODBC-драйвер, так как ODBC-драйверы используют функции клиентских API , используемый для каждой СУБД.

 

OLE DB и ADO – часть универсального механизма доступа к данным фирмы Microsoft, позволяющая осуществлять доступ, как реляционным, так и к не реляционным источником данных, таким как файловая система, данные электронной почты, многомерные хранилища данных и так далее.

 

ADO – это набор библиотек, содержащих COM-объекты, реализующие прикладной программный интерфейс, для доступа к таким данным и используемые в клиентских приложениях, ADO использует библиотеки OLE DB, предоставляющие низкоуровневый интерфейс для доступа к данным. OLE DB предоставляет доступы к данным с помощью COM-интерфейса. OLE DB можно использовать непосредственно, минуя ADO.

Для доступа к источнику данных с помощью OLE DB требуется чтобы на компьютере, где используется клиентское приложение был установлен OLE DB-провайдер - это динамическая библиотека, загружаемая в адресное пространство клиентское приложение и используемая для доступа к источнику данных.

 

BDE – механизм BDE широко использовался при работе с делфи. Затем, средство разработки фирмы Borland были преобразованы в средства быстрой разработки приложений (Rapid Application Development, RAD). Большинство вызовов BDE API были включены в компоненты доступа к данных библиотеки визуальных компонентов VCL (Visual Component Library). Раньше BDE был практически единственным механизмом, для доступа к данным из клиентских приложений, написанных в Delphi.

 

 








Не нашли, что искали? Воспользуйтесь поиском по сайту:



©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.