Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Электронные средства сбора и обработки информации. Учебное пособие
.pdf
щей запятой, но в отличие от типа FLOAT можно регулировать точность
представления.
MONEY – этот тип аналогичен типу DECIMAL, но предназначен для
хранения денежных величин. В отличие от типа DECIMAL в этом типе
имеются специальные способы форматирования, например обозначение
руб. или $, на основе настроек операционной системы.
DATE – этот тип предназначен для хранения даты. Так же как и для
типа MONEY, форматирование ввода и вывода для переменных данного
типа зависит от настроек операционной системы.
DATETIME – этот тип предназначен для хранения даты и времени с
точностью до долей секунд. Тип DATETIME в отличие от типа DATE может хранить данные не только о дате, но и о времени, но он требует больше места для хранения и обрабатывается более медленно.
CHAR и CHAR(n) – тип, предназначенный для хранения символьных
строк фиксированной длины. При помощи параметра 'n' задается длина
строки. Если параметр отсутствует, то тип CHAR описывает одиночный
символ.
TEXT – тип, предназначенный для хранения символьных строк про-
извольной переменной длины. В отличие от типа CHAR не имеет практического ограничения по длине строки.
BYTE – тип, предназначенный для хранения двоичных объектов про-
извольного объема. Этот тип данных используется для хранения исполняемых файлов, рисунков, мультимедиа и т. д.
Каждый из вышеперечисленных типов данных имеет свои операции и
свои значения. Но существует одно общее для всех типов значение «NULL»
или «не определено». В отличие от числа ноль значение «NULL» означает,
что атрибут не имеет никакого определенного значения. Во многих СУБД
имеется возможность запрещать запись значения «NULL» в некоторые атрибуты.
4.7.3. Операторы добавления, удаления
и модификации данных в языке SQL
Оператор добавления новой записи в таблицу имеет следующий вид:
INSERT INTO < имя таблицы> [(<имя атрибута1>,<имя атрибу-
та2>,…) ]
{ VALUES ( <значение1>,<значение2>, … ) }.
101

После имени таблицы в скобках указываются атрибуты, которым
Таблица «Склад»
Наименование
Адрес
Склад № 1
ул. Первая, д. 5
Склад № 2
ул. Вторая, д. 15
Склад № 3
ул. Третья, д. 7
необходимо явно присвоить какое-либо значение. Список значений для
перечисленных атрибутов указывается в скобках после ключевого слова
VALUES. Число значений в этом списке должно соответствовать числу
указанных атрибутов. Атрибутам, не перечисленным в списке (кроме атрибутов типа SERIAL), присваивается значение NULL. Кроме констант
для задания значений имеется возможность использовать и различные выражения и функции.
К примеру, для добавления новой записи в таблицу «Склад»
(см. рис. 4.6) необходимо записать:
INSERT INTO Склад (Наименование, Адрес) VALUES («Склад №3»,
«ул. Третья, д.7»).
При выполнении этого оператора в атрибут «Наименование» таблицы
«Склад» записывается значение «Склад № 3», а в атрибут «Адрес» записывается значение «ул. Третья, д. 7» (рис. 4.14).
Рис. 4.14. Пример выполнения оператора INSERT
Модификация уже имеющихся записей выполняется оператором
UPDATE. Оператор UPDATE имеет следующий вид:
UPDATE <имя_таблицы> SET <имя атрибута1>=<значение1>,
<имя атрибута2>=<значение2>
[WHERE <условие>].
После ключевого слова SET явно указывается изменяемый атрибут
и сразу после него и знака '=' пишется новое значение атрибута. Условие
после ключевого слова WHERE определяет, какие записи подлежат модификации. Каждая запись из таблицы будет проверена на это условие,
и только если условие будет истинным, запись будет модифицирована.
Если ключевое слово WHERE вообще не указано, то модифицированы
будут все записи в указанной таблице.
102

Условие записывается в виде логических выражений над константами
и атрибутами. В логических выражениях используются операции сравнения (>, <, >=, <=, =, <>), проверки атрибута на значение NULL (IS NUL L,
IS NOT NULL). Соединение логических операций осуществляется при
помощи ключевых слов AND, OR, N OT, а группировка логических операций выполняется с помощью скобок.
Например, при изменении адреса склада № 1 необходимо выполнить
следующий оператор:
UPDATE Склад SET Адрес= «ул. Большая д. 12» WHERE Наименова-
ние = «Склад №1».
Для удаления ненужных записей в таблице используется оператор
DELETE, имеющий следующий вид:
DELETE FROM <имя_таблицы> [WHERE <условие>].
Ключевое слово WHERE, задающее условие на удаление записей, ис-
пользуется так же как и в операторе UPDATE. Если условие не задано, то
удаляются все записи из таблицы.
Например, при закрытии склада № 2 и удалении его адреса из базы
данных необходимо выполнить следующий оператор:
DELETE FROM Склад WHERE Наименование = «Склад №2».
4.7.4. Оператор SELECT
На долю оператора SELECT приходится более 2/3 всех SQL-опера-
торов, используемых в программах [18]. С помощью оператора SELECT
имеется возможность выполнять различные операции над таблицами,
например селекцию, проекцию и другие. В конце оператора SELECT ставится точка с запятой.
Операция проекции с помощью оператора SELECT имеет следующий
вид:
SELECT <имя атрибута1>,<имя атрибута2>[,...] FROM
<имя_таблицы>.
После ключевого слова SELECT перечисляются необходимые пользо-
вателю атрибуты из заданной таблицы. В результате выполнения этого оператора на основе заданной таблицы формируется новая таблица, включающая в себя только выбранные атрибуты. Например, если из таблицы «Товар»
(см. рис. 4.6) требуется отображать только информацию о наименовании то-
103

вара и фирме-изготовителе, то оператор SELECT будет выглядеть следую-
Наименование
Изготовитель
Телевизор
Фирма 1
Телевизор
Фирма 2
Компьютер
Фирма 1
Компьютер
Фирма 2
Наименование
Телевизор
Телевизор
Компьютер
Компьютер
Наименование
Телевизор
Компьютер
щим образом:
SELECT Наименование, Изготовитель FROM Товар.
В результате выполнения этого оператора будет создана следующая
таблица (рис. 4.15).
Рис. 4.15. Пример выполнения операции проекции
с помощью оператора SELEC
При операции проекции возможна ситуация, когда в таблице появля-
ются повторяющиеся записи. Например, если из таблицы «Товар»
(см. рис. 4.6) требуется отображать только информацию о наименовании
товара, то в результате выполнения следующего оператора «SELECT
Наименование FROM Товар;» получится следующая таблица:
Как видно, в этой таблице есть повторяющиеся записи. Для удаления
повторяющихся записей используется ключевое слово DISTINCT, записываемое после ключевого слова SELECT. Тогда запись вышеприведенного
оператора будет выглядеть следующим образом:
SELECT DISTINCT Наименование FROM Товар.
В результате выполнения этого оператора получится следующая
таблица:
104

Операция селекции с помощью оператора SELECT имеет следующий
Наименование
Изготовитель
Цена
Склад
Телевизор
Фирма 1
1000
Склад № 1
Компьютер
Фирма 1
5000
Склад № 2
Наименование
Изготовитель
Цена
Склад
Компьютер
Фирма 1
5000
Склад № 2
Телевизор
Фирма 1
1000
Склад № 1
вид:
SELECT <имя атрибута1>,<имя атрибута2>[,...] FROM
<имя_таблицы> WHERE условие.
После ключевого слова WHERE указывается условие селекции. Пра-
вила записи условия после ключевого слова WHERE аналогичны условию
в операторе UPDATE. Например, если из таблицы «Товар» (см. рис. 4.6)
требуется отображать только информацию о товарах «Фирмы1», то оператор SELECT будет выглядеть следующим образом:
SELECT Наименование, Изготовитель, Цена, Склад FROM Товар
WHERE Изготовитель= «Фирма1».
В результате выполнения этого оператора будет создана следующая
таблица (рис. 4.16).
Рис. 4.16. Пример выполнения операции селекции
с помощью оператора SELECT
Для упорядочивания записей используется ключевое слово ORDER BY,
а за ним указывается, по какому атрибуту выполнять упорядочивание. Упорядочивание можно производить в порядке возрастания ASC (ASCending)
или убывания DESC (DESCending), при этом по умолчанию принимается
ASC. Ключевое слово ORDER BY ставится в конце оператора SELECT.
Например, если из таблицы «Товар» (см. рис. 4.6) требуется отображать
только информацию о товарах «Фирмы1» и упорядочить их в порядке возрастания, то оператор SELECT будет выглядеть следующим образом:
SELECT Наименование, Изготовитель, Цена, Склад
FROM Товар
WHERE Изготовитель= «Фирма1»
ORDER BY Наименование ASC.
В результате выполнения этого оператора будет создана следующая
таблица:
105

В операторе SELECT имеется возможность использования вычисляе-
Наименование
Изготовитель
Цена
Склад
Цена с НДС
Телевизор
Фирма 1
1000
Склад № 1
1200
Телевизор
Фирма 2
1500
Склад № 1
1800
Компьютер
Фирма 1
5000
Склад № 2
6000
Компьютер
Фирма 2
6000
Склад № 1
7200
мых полей и агрегирующих функций. Например, для отображения в таблице «Товар» (см. рис. 4.6) цены товара как с НДС (20 %), так и без НДС
необходимо выполнить следующий оператор:
SELECT Наименование, Изготовитель, Цена, Склад, Цена*1,2 AS [Це-
на с НДС] FROM Товар.
В результате выполнения этого оператора будет создана следующая
таблица:
Ключевое слово AS явно именует созданный атрибут. Если не исполь-
зовать ключевое слово AS, то вновь созданный атрибут будет именоваться
по умолчанию. Имя по умолчанию зависит от используемой СУБД.
Например, в СУБД Access имя по умолчанию будет «Выражение1». Квадратные скобки показывают, что имя «Цена с НДС» является единым и
символ пробела входит в состав имени. Данный синтаксис написания
имен используется в СУБД Access и в других СУБД он может отличаться.
В SQL существует ряд специальных стандартных агрегирующих
функций, оперирующих совокупностью значений столбца некоторой таблицы и создающих единственное значение. Эти функции имеют следующее написание и назначение:
COUNT – вычисляет число не пустых строк в выбранном столбце,
SUM – вычисляет сумму значений в выбранном столбце,
AVG – вычисляет среднее значение в выбранном столбце,
MAX – вычисляет самое большое значение в выбранном столбце,
MIN – вычисляет самое малое значение в выбранном столбце.
быть числовым и содержать только числовые значения.
в таблице «Товар» (см. рис. 4.6) необходимо выполнить следующий оператор:
При этом для функций SUM и AVG тип выбранного столбца должен
Например, для расчета средней цены на товары, представленные
SELECT AVG(Цена) AS [Средняя цена] FROM Товар.
106

Результатом выполнения этого оператора будет единственное число
Склад
Количество
Склад № 1
3
Склад № 2
1
3375 показывающее среднее значение всех чисел в атрибуте «Цена».
Как видно из этого примера, результатом выполнения оператора
SELECT с использованием агрегирующих функций является не новая
таблица, построенная по каким-либо правилам, а единственное число.
Исходя из этого, оператор вида «SELECT Наименование, AVG(Цена) AS
[Средняя цена] FROM Товар;» не будет выполнен, так как первый операнд
«Наименование» будет пытаться сформировать столбец таблицы с наименованием всех товаров, а второй операнд, содержащий агрегирующую
функцию, «AVG(Цена)» создает единственное значение, а не столбец.
Для сбора данных, полученных из таблицы, в определённые группы
в языке SQL используется ключевое слово GROUP BY. Ключевое слово
GROUP BY записывается после ключевого слова WHERE в операторе
SELECT. Запрос с применением конструкции GROUP BY имеет следую-
щий вид:
SELECT <имя атрибута1>,<имя атрибута2>[,...]
FROM <имя_таблицы>
WHERE условие
GROUP BY <имя атрибута1>,<имя атрибута2>[,...].
При этом после ключевого слова SELECT можно перечислять только
те атрибуты, которые перечисляются после конструкции GROUP BY , все
остальные атрибуты могут быть только в составе агрегирующих функций.
Например, для определения количества типов товаров на каждом
складе (Таблица «Товар» на рис. 4.6) необходимо записать следующий
оператор:
SELECT Склад, COUNT(Наименование) AS Количество
FROM Товар
GROUP BY Склад.
В результате выполнения этого оператора формируется следующая
таблица:
107

ЗАКЛЮЧЕНИЕ
Материал, предложенный в пособии, отражает актуальную область
знаний, связанную с АСУ предприятий. В нём обоснована необходимость
применения различных систем автоматизации предприятий. Описаны
ERP-, MES- и SCADA-системы. Приведены подробные описания интерфейсов различного типа, их классификация и технические характеристики. Большое внимание уделено практическим вопросам топологии соединений устройств. Представлены способы последовательной передачи
в виде следующих интерфейсов RS-232C, RS-485 и RS-422, интерфейса
USB. Уделено внимание истории создания интерфейсов, описаны протоколы передачи данных для интерфейсов PCI-Express, I2C, SATA, SPI,
Wi-Fi, Ethernet.
Особый практический интерес в учебном пособии представляют вопросы компьютерных сетей, эволюции вычислительных систем: отражена
последовательность смены поколений от систем пакетной обработки информации до появления локальных и глобальных сетей. При описании
компьютерных сетей основное внимание уделено вопросам стандартизации. Достаточно подробно отражена модель взаимодействия открытых
систем (OSI). Приведена классификация компьютерных сетей, отражены
вопросы передачи данных на физическом уровне. Описаны основные типы линий связи и их технические параметры. Особое внимание уделено
линиям связи на основе витой пары, коаксиальным и волоконнооптическим кабелям. Подробно рассмотрены методы передачи дискретных данных на физическом уровне, приведена их классификация, отражены их преимущества и недостатки.
Большое внимание в учебном пособии уделяется вопросам разработки баз данных. Рассмотрены различные архитектуры и модели баз данных.
Приведены примеры иерархической, сетевой и реляционной баз данных.
Особо выделены вопросы построения реляционных баз данных, описаны
основные операции над таблицами. Достаточно подробно рассмотрены
проблемы нормализации таблиц в реляционных базах данных. Описаны
СУБД MS Access и основы языка структурированных запросов SQL, история создания этого языка, основные типы данных и операторы.
108

БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. JD Edwards EnterpriseOne Tools Foundation Guide [Электронный ре-
сурс]. – Режим доступа: https://docs.oracle.com/cd/E53430_01/EOTFO-
/E53548-07.pdf (дата обращения 12.04.2017).
2. Гараева, Ю. Российские MES-системы или Как вернуть производ-
ству оптимизм / Ю. Гараева, Р. Загидуллин, Сун Кай Цин // САПР и графика. – 2005. – № 11. – С. 16.
3. Система WinCC OA – единый центр менеджмента // Информатиза-
ция и системы управления в промышленности [Электронный ресурс]. –
2016. – № 5. – Режим доступа: http://isup.ru/ar-ticles/1/9863/ (дата обращения 17.04.2017).
4. Кузьмина, И. InTouch 10.0: творческий порыв Wonderware /
И. Кузьмина, А. Павлюченко // Автоматизация производства. – № 6. –
2007. С. 24–26.
5. Гук, М. Аппаратные интерфейсы ПК : энциклопедия / М. Гук. –
СПб. : Питер, 2002. – 528 с.
6. Колесниченко, О. В. Аппаратные средства РС / О. В. Колесниченко,
И.В. Шишигин, В.Г. Соломенчук. – 6-е изд., перераб. и доп. – СПб. :
БХВ-Петербург, 2010. – 800 с.
7. Конноллн, Т. Базы данных. Проектирование, реализация и сопро-
вождение. Теория и практика : [пер. с англ.] / Т. Конноллн, К. Бегг. – 6-е
изд., – М. : Издательский дом «Вильяме», 2003. – 1440 с.
8. Рамбеев, Б. И. Универсальная автоматическая цифровая машина
типа «Урал» / Б. И. Рамбеев // Пути развития советского математического
машиностроения и приборостроения : матер. конф. – М., 1956. – Ч. 1: Секция универсальных цифровых машин. – С. 38–52.
9. Горячев, А. Модель OSI [Электронный ресурс] / А. Горячев,
А. Нисковский // КомпьютерПресс. – 1999. – № 6. – Режим доступа :
http://compress.ru/Article.aspx?id=10853 (дата обращения 27.05.2017).
10. Олифер, В. Г. Компьютерные сети. Принципы, технологии, прото-
колы : учебник для вузов / В. Г. Олифер, Н. А. Олифер. – 4-е изд. – СПб. :
Питер, 2010. – 944 с.
11. Никифоров, А. В. Технология PLC – телекоммуникации по сетям
электропитания / А. В. Никифоров // Сети и системы связи. – 2002. – № 5.
109

12. Комаров, С. Беда пришла, откуда не ждали… / С. Комаров //
Broadcasting. – 2005. – № 7. – С. 71.
13. Столингс, В. Беспроводные линии связи и сети : [пер. с англ.] /
В. Столлингс. – М. : Издательский дом «Вильямс», 2005. – 640 с.
14. Международный стандарт ИСО/МЭК 11801:1995. Информацион-
ные технологии. Универсальные кабельные системы зданий [Электронный ресурс]. – Режим доступа: http://dokipedia/pdf/5160644 (дата обращения 23.05.2017).
15. ГОСТ Р 53246-2008. Системы кабельные структурированные.
Проектирование основных узлов системы. Общие требования. – Введ.
2008-12-25. М. : Стандартинформ, 2009. – 77 с.
16. ГОСТ Р 54429-2011. Кабели связи симметричные для цифровых
систем передачи. Общие технические условия [Электронный ресурс]. –
Режим доступа: http://dokipedia.ru/print/5140143 (дата обращения
23.05.2017).
17. Таненбаум, Э. Компьютерные сети / Э. Таненбаум, Д. Уэзеролл. –
СПб. : Питер, 2012. – 960 с.
18. ГОСТ Р 52266-2004. Кабели оптические. Общие технические
условия. – Введ. 2005-07-01. – М. : ИПК Изд-во стандартов, 2004. – 19 с.
19. Грачев, А. Ю. Введение в СУБД Informix / А. Ю. Грачев. – М. :
Диалог МИФИ, 2000. – 272 с.
20. Кауфельд, Д. Access 2003 для «чайников» : [пер. с англ.] / Д. Кауфельд. – М. : Издат. дом «Вильяме», 2004. – 320 с.
21. Гурвиц, Г. А. Microsoft Access 2007. Разработка приложений
на реальном примере / Г. А. Гурвиц. – СПб. : БХВ-Петербург, 2007. –
674 с.
22. Oppel, А. Databases Demystified / A. Oppel – San Francisco, CA:
McGraw-Hill Osborne Media. – 392 р.
23. Форта, Б. Освой самостоятельно SQL. 10 минут на урок : [пер.
с англ.] / Б. Форта. – 3-е изд. – М. : Издательский дом «Вильямс», 2005. –
288 с.
110
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
