Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Электронные средства сбора и обработки информации. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
щей запятой, но в отличие от типа 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]