Чтобы отношение находилось в третьей нормальной форме, необходимо, чтобы неключевые атрибуты в нем не зависели от других неключевых атрибутов, а зависели только от первичного ключа [6].


Клиенты

Код клиента

Клиент

1

Иванов

2

Петров

3

и копыта»

4

111»

5

Сидоров


Товары

Код товара

Товар

Цена

1

Хлеб

24,50 р.

2

Молоко

30,00 р.

3

Хвосты

2,00 р.


Продажи

Код клиента

Код товара

Количество

Код продажи

1

1

2

1

2

2

3

1

3

3

25

1

4

2

1

1

5

1

3

1



Методические рекомендации к задачам №16-21



Команда отбора данных

Общий вид:

SELECT  ПОЛЕ1, ПОЛЕ2,..., ПОЛЕn,  FROM  ТАБЛИЦА  WHERE  УСЛОВИЕ

Если условие не указано, выбираются все записи из таблицы.

Исходная таблица:

ZARP

FIO

SUMMA

ИВАНОВ

ПЕТРОВ

СИДОРОВ

1000

2000

3000


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

SELECT  FIO  FROM  ZARP

Набор данных примет вид:

НД


FIO

ИВАНОВ

ПЕТРОВ

СИДОРОВ


*- позволяет выбрать все поля таблицы.

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

SELECT  *  FROM  ZARP

Набор данных примет вид:

НД


FIO

SUMMA

ИВАНОВ

ПЕТРОВ

СИДОРОВ

1000

2000

3000


Примеры использования условия

Операции отношения >, <, =, >=, <=, <>.

Логические операции AND, OR, NOT.

Операции отношения имеют более высокий приоритет, чем операции отношения.

Исходная таблица:

ZARP

FIO

SUMMA

ИВАНОВ

ПЕТРОВ

СИДОРОВ

1000

2000

3000


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

НЕ нашли? Не то? Что вы ищете?

SELECT  *  FROM  ZARP WHERE SUMMA>1500

Набор данных примет вид:

НД


FIO

SUMMA

ПЕТРОВ

СИДОРОВ

2000

3000


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

SELECT  SUMMA  FROM  ZARP WHERE FIO=’ ИВАНОВ’

Набор данных примет вид:

НД


SUMMA

1000



Сортировка записей в наборе данных

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

SELECT  ПОЛЕ1, ПОЛЕ2,..., ПОЛЕn,  FROM  ТАБЛИЦА ORDER BY ПОЛЕm, ПОЛЕq,...

Исходная таблица:

ZARP

FIO

SUMMA

ИВАНОВ

ПЕТРОВ

СИДОРОВ

ПЕТРОВ

1000

2000

3000

1500


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

SELECT  *  FROM  ZARP ORDER BY FIO

Набор данных примет вид:

НД


FIO

SUMMA

ИВАНОВ

ПЕТРОВ

ПЕТРОВ

СИДОРОВ

1000

2000

1500

3000


Если сортировка производится по нескольким полям, то строки сортируются сначала по значению первого поля, а затем по второму.

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

SELECT  *  FROM  ZARP ORDER BY FIO, SUMMA

Набор данных примет вид:

НД


FIO

SUMMA

ИВАНОВ

ПЕТРОВ

ПЕТРОВ

СИДОРОВ

1000

1500

2000

3000



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

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

SELECT  *  FROM  ZARP ORDER BY FIO DESC, SUMMA DESC

Набор данных примет вид:

НД


FIO

SUMMA

СИДОРОВ

ПЕТРОВ

ПЕТРОВ

ИВАНОВ

3000

2000

1500

1000


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

SELECT  *  FROM  ZARP ORDER BY FIO DESC, SUMMA

Набор данных примет вид:

НД


FIO

SUMMA

СИДОРОВ

ПЕТРОВ

ПЕТРОВ

ИВАНОВ

3000

1500

2000

1000



Вычисляемые поля

Общий вид:

Выражение AS поле

Исходная таблица:

ZARP

FIO

SUMMA

ИВАНОВ

ПЕТРОВ

СИДОРОВ

1000

2000

3000


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

SELECT  FIO, SUMMA, SUMMA/100*20 AS NALOG  FROM  ZARP

Набор данных примет вид:

НД


FIO

SUMMA

NALOG

ИВАНОВ

ПЕТРОВ

СИДОРОВ

1000

2000

3000

200

400

600


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

SELECT  FIO, SUMMA, SUMMA/100*20 AS NALOG, SUMMA-NALOG AS SUMIT  FROM  ZARP

SELECT  FIO, SUMMA, SUMMA/100*20 AS NALOG, SUMMA - SUMMA/100*20 AS SUMIT  FROM  ZARP

НД


FIO

SUMMA

NALOG

SUMIT

ИВАНОВ

ПЕТРОВ

СИДОРОВ

1000

2000

3000

200

400

600

800

1600

2400



Методические рекомендации к задачам №22-25


Команды двоичной арифметики

МНЕМОКОД

OSZAPC

ДЕЙСТВИЕ

mov DST SRC

------

пересылка OST<-SRC

xchg OPND1, OPND2

------

обмен OST<-SRC

Add DST, SRC

xxxxxx

сложение QST<-DST+SRC

Adc OST, SRC

xxxxxx

сложение с переносом DST<-OST+SRC+CP

inc OPND

xxxxx-

увеличить на единицу OPND<-OPND+1

Sub DST, SRC

xxxxxx

вычитание OST<-OST SRC

Sbb DST, SRC

xxxxxx

вычитание с заемом OST<-OST SRC CF

Dec OPND

xxxxx-

уменьшение на единицу OPND<-OPND-1

Neg OPND

xxxxxx

Изменение знака  OPND<-0-OPND

rcl DST, CONT

x----x

циклический сдвиг влево через CF

rcr DST, CONT

x----x

циклический сдвиг вправо через CF

rol DST, CONT

x----x

циклический сдвиг влево

ror DST, CONT

x----x

циклический сдвиг вправо

sal OST, CONT

xxxuxx

арифметический сдвиг влево

sar DST, CONT

xxxuxx

арифметический сдвиг вправо

shl DST, CONT

xxxuxx

логический сдвиг влево

Shr DST, CONT

xxxuxx

логический сдвиг вправо

Режимы адресации

Обозначения: R - регистр, V - переменная, С - константа.

НАЗВАНИЕ

ОБОЗНАЧЕНИЕ

СОДЕРЖАНИЕ

ПРИМЕР

РЕГИСТРОВАЯ ПРЯМАЯ

R

операнд находится в регистре

mov AX, SI переслать содержимое регистра SI в регистр АХ

НЕПОСРЕДСТВЕННАЯ

С

непосредственным операнд константа присутствует в команде

mov AX, 093Ah занести константу 093Ah в регистр АХ

ПРЯМАЯ

V + С или V - С

исполнительный адрес операнда присутствует в команде

mov ВХ, WW+2 переслать в ВХ слово памяти, отстоящее от переменной с именем WW на 2 байта

КОСВЕННАЯ РЕГИСТРОВАЯ

[R] где R-ВР, ВХ, SI, DI

регистр содержит адрес операнда

mov [ВХ], CL переслать содержимое регистра CL по адресу находящемуся в регистре ВХ

КОСВЕННАЯ РЕГИСТРОВАЯ ОТНОСИТЕЛЬНАЯ-

V[R], C[R],
[R+V], [R+C],
V[R], [R] C]
где R -
SI, DL (ИНДЕКСНАЯ)
ВХ, ВР (БАЗОВАЯ)

адрес операнда вычисляется как сумма содержимого регистра и смещения

mov М[8Х], CL переслать содержимое регистра CL по адресу отстоящему от переменной М на 8К байт

ИНДЕКСНО-БАЗОВАВ

[BR][IR] V[BR][IR] [BR][IR]C где
IR - SI, DI,
BR – ВХ, ВР

адрес операнда вычисляется как сумма содержимых базового и индексного регистров и возможного смещения

mov [BX][SI]3, AL переслать содержимое регистра al по адресу сумме регистров BХ SI и константы 3


Замечание. Для всех режимов адресации при формировании физического адреса используется сегментный регистр OS, за исключением случаев, когда в качестве базового регистра выступает регистр ВР, в этом случае используется сегментный регистр SS.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7