GeoSELECT.ru



Компьютеры / Реферат: Организация "Мiжнародна рада компютерноi комунiкацii" (Компьютеры)

Космонавтика
Уфология
Авиация
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Аудит
Банковское дело
Безопасность жизнедеятельности
Биология
Биржевое дело
Ботаника
Бухгалтерский учет
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Инвестиции
Иностранные языки
Информатика
Искусство и культура
Исторические личности
История
Кибернетика
Коммуникации и связь
Компьютеры
Косметология
Криминалистика
Криминология
Криптология
Кулинария
Культурология
Литература
Литература : зарубежная
Литература : русская
Логика
Логистика
Маркетинг
Масс-медиа и реклама
Математика
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Мифология
Москвоведение
Музыка
Муниципальное право
Налоги
Начертательная геометрия
Оккультизм
Педагогика
Полиграфия
Политология
Право
Предпринимательство
Программирование
Психология
Радиоэлектроника
Религия
Риторика
Сельское хозяйство
Социология
Спорт
Статистика
Страхование
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Физика
Физкультура
Философия
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
   

Реферат: Организация "Мiжнародна рада компютерноi комунiкацii" (Компьютеры)



[pic]



МІЖНАРОДНА РАДА
КОМПЬЮТЕРНОЇ КОМУНІКАЦІЇ

(INTERNATIONAL COUNCIL FOR COMPUTER COMMUNICATION)



Київський Університет ім. Т. Шевченка
Інститут Міжнародних Відносин
Кафедра Міжнародної Інформації



Виконав: студент 4 курсу МІ 2ї групи
Пляскін Є.В.



Київ-1998
Назва:

Міжнародна Рада Компьютерної Комунікації (МРКК)


Статус:

Неурядова організація, зареєстрована як безприбуткова в місті
Вашінгтон.



Місцезнаходження:

Штаб-квартира знаходиться в місті Вашингтон, Округ Колумбія,
США.


Повноваження:

Рада має право використовувати свої фонди та матеріальні ресурси
виключно для благодійних, наукових, освітніх цілей, корисних для
громадскості, які мають відношення до сфери компьютерної
комунікаії.



Строк дії: безстрокова


Робочі мови: англійська


Умови вступу: лише за запрошенням



Члени організації:

Кількість - 125. Члени Правління організації обирають всіх
членів на 6 років. Вони обираються на підставі їх бажання та
можливостей сприяти досягненню цілей Ради з будь-яких галузей
знань, інтересів та напрямків діяльності тим чи іншим чином
пов’язаних з компьютерною комунікацією: вчені, технологі,
розробники систем та обладнання, постачальники послуг,
користувачі, економісти, юристи та державні діячи.


Керівник: Президент, доктор Прамод К. Верма


Зв’язана з:

Міжнародна Федерація з питань Обробки Інформації
(International Federation for Information Processing)
МРКК є організаційним членом організації
“Суспільство Інтернет” (Internet Society).


Мета діяльності:

. сприяння науковим дослідженням, розвитку та використанню
компьютерної комунікації для мирних цілей за допомогою
проведення конференцій, семінарів, видання друкованних
матеріалів тощо;

. сприяння прогресу у застосуванні компьютерної комунікації для
освітніх, наукових, медичних, правових та культурних цілей і
для будь-яких інших цілей на користь народів усього світу;

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

. покращення громадського ставлення до та усвідомлення
компьютерної комунікації та видів її використання;

. видавати та розповсюджувати праці конференцій та семінарів;

. видавати та розповсюджувати книжки, наукові доповіді або
журнали за відповідною тематикою;

. видавати та розповсюджувати інші відповідні друковані
матеріали;



Стратегічні напрямки діяльності:


|Питання використання та |Роберт Пароді, М.Като |
|технології |parodi.r@stet.it |
|Питання політики в |Стівен С.Ченг, М.Като |
|технологічній сфері |kato@pal.xerox.com |
|Питання політики в сфері |Дороті Філіпс, Джехуда Кела |
|застосування |Dorothy.Phillips@crc.doc.ca |
|Освіта на відстані |П. Верма |
|Безпека компьютерної |Діпак Хакхар |
|комунікації | |
|Консультування урядів та |Прем Гупта |
|міжнародних організацій |ppg@ern.doe.ernet.in |
|Екстренна допомога |М. Сільверштайн, П. Верма |
|Видання |Філіп Енслоу, П. Верма |
| |enslow@cc.gatech.edu |


Історія організації:

З розвитком сфер застосування компьютерів з’явилась
необхіднхсть збирати та розповсюджувати інформацію на великі
відстані з їх допомогою. З’явилися невідповідності між потребами
компьтерів та телекомунікаційними послугами, невідповідності, що
розрізняються за країнами, невідповідності, вирішення яких
ускладнено неузгодженими довгостроковим плануванням та
інтересами.
На цьому підгрунті невеличка кількість людей, які займалися
улагодженням цих невідповідностей в різних аспектах діяльності,
зрозуміла, що вони розділюють відчуття того, що відбувається
процес становлення суттєвих змін. Усвідомлюючи те, що ці зміни
можуть мати значну користь для суспільства, вони заснували МРКК
у 1972 році як збалансовану, багатодисциплінну міжнародну
організацію для зосередження завчасної уваги на можливостях і
проблемах компьютерної комунікації.

Спочатку, увага приділялася технічним аспектам дизайну
мереж передачі даних, засобів передачі та комутації даних,
управління мережами та їх сумісності. Напрям діяльності Ради
полягав у вирішенні цих проблем в контексті реальних потреб,
прогнозованих сфер використання та економіки. Згодом з’явилися
нові послуги, такі як відеотекст та телетекст, та зросла увага
до нових видів застосування. Гуманістичні та соціальні проблеми,
що ім приділялася увага з самого початку, набули більш значної
форми, наприклад - великий поштовх з боку організацій,
представників інтелектуальної праці; правові аспекти приватної
інформації та передачі інформації; безпека баз даних; нові
можливості в освіті та особистій комунікації. Зараз Рада
намагається звернутися до можливостей, що є унікальними для
регіонів світу, що розвиваються.

Нещодавно Рада розширила перелік своїх інтересів.
Доповнення охоплюють застосування в компьютерній комунікації
досягнень в галузях персональних компьютерів, штучного
інтелекту, бездротової передачі інформації та мультимедійних
послуг. Рада також сприяє діяльності, що має на меті усунення
перешкод у створенні Інформаційної Інфраструктури на
національному, регіональному та глобальному рівні.



Структура організації:


1. Рада членів правління - орган, що виробляє політику
організації;

2. Виконавчий комітет - займається адміністративною діяльністю
організації у відповідності до політики, встановленої Радою
членів правління;

|Президент |Дк. Прамод К.Верма |
|Викон. Віце-президент |Дк. С.Рамані |
|Генеральний Секретар |Дк. Масао Като |
|Заступник ГенСека |Дк. Карен Дункан |
|Викон. Секретар |Мр. Давід Балсон |
|Скарбник |Мр. Джон Д.Маккіндрі |

3. Інши комітети, що можуть бути створеними за рішенням Ради
членів правління або Виконавчим комітетом для допомоги у
вирішенні відповідних питань.


Конференції :

Рада проводить міжнародні конференції з компьютерної
комунікації, які стали відмінним форумом для представлення
думок, ідей, планів та досягнень по всім питанням зазначеним
вище. Конференції проводяться 1 раз в два роки. Починаючи з 1972
р. перші 13 конференцій були проведені в Вашінгтоні (США),
Стокгольмі (Швеція), Торонто (Канада), Кіото (Японія), Лондоні
(Великобританія), Атланті (США), Сіднеї (Австралія), Мюнхені
(Німеччина), Тель-Авіві (Ізраель), Нью-Делі (Індія), Генуї
(Італія), Сеулі (Корея), Канах (Франція).

Відомі конференції:

Реалізовані

“Електронне видавництво” (1997 р.)
“Глобальні мережі” (1997 р.), Калгарі (Канада)
http://WWW.WNET.CA/GN97
“Ключові питання на шляху до зрілого інформаційного
суспільства” (1997 р.), Кани (Франція) http://www.prism.uvsq.fr

Нереалізовані

“Інформаційні мережі та предача даних” 15-17 червня, 1998
р. Авієро (Португалія) http:/www.inesca.pt/indc98/


Видання:

Computer Networks /6 раз на рік/;

Computer Networks ISDN Systems /щоквартально/;

Матеріали конференцій /раз в два роки/.

Монографії:


"The Office of the Future" by Ronald P. Uhlig, David Farber
and James Blair, 1979
"Cyclades Computer Network", edited by Louis Pouzin, 1982
"So This is 1984", edited by D.F. Parkhill and P.Enslow,
Jr.; North-Holland, 1984


Контактні адреси:


Поштова адреса: PO Box 9745, Washington, DC 20016-9745, США
Телефон/факс: +1 (703) 836-77-87
+1 (301) 530-76-28

E-mail: ramani@saathi.ncst.ernet.in

Web-site: http://www.iccc.inter.net/

Web-адреси: http://konark.ncst.ernet.in/iccc/about.html
- загальна інформація про МРКК

http://soochak.ncst.ernet.in/iccc/bylaws.html
- статут МРКК та інші питання




Реферат на тему: Организация Web-доступа к базам данных с использованием SQL-запросов
УПРАВЛЕНИЕ ОБРАЗОВАНИЯ АДМИНИСТРАЦИИ ЛЕНИНСКОГО РАЙОНА



Организация Web-доступа к базам
данных с использованием SQL-запросов.



Исполнитель: ВОЛКОВ Константин Владимирович
ученик 11Б класса МСОШ № 175

Руководители: ФЕДОРОВ Леонид Николаевич
директор Информационно-методического центра
Управления образования администрации Ленинского района

МОКРЯНСКИЙ Дмитрий Георгиевич
методист Информационно-методического центра
Управления образования администрации Ленинского района



Екатеринбург
2000

Cодержание
|Введение. |3 |
|1. Причины и история создания языка запросов SQL. |6 |
|1.1. Реляционные базы данных. Общие понятия. |6 |
|1.2. Взаимодействие SQL и СУБД. |8 |
|1.3. Стандарты SQL. Сегодняшнее состояние. |8 |
|2. Технологии, обеспечивающие, web доступ к базам данных. |13 |
|2.1. Принципы работы SQL-сервера. |14 |
|2.2. Таблицы SQL. |15 |
|2.2.1. Структура запросов SQL. |16 |
|2.2.2. Запросы с использованием единственной таблицы SQL. |20 |
|2.2.3. Запросы с использованием нескольких таблиц SQL. |35 |
|2.2.4 Модификация данных в таблицах SQL. |55 |
|2.3. Обзор основных SQL-серверов. |64 |
|2.3.1. SQL-сервер Oralce. |67 |
|2.3.2. Microsoft SQL сервер. |70 |
|2.3.3. MySQL – сервер. |72 |
|2.4. Принципы работы web-серверов. |74 |
|2.4.1. Web-сервер. Понятие, функции, характеристики. |74 |
|2.4.2. Трехзвенная архитектура клиент-сервер. |74 |
|2.4.3. Архитектура Internet/Intranet. |75 |
|2.4.4. Обзор серверных программ для различных ОС. |77 |
|2.4.5. Стандарты, облегчающие создание Web-узлов. |78 |
|2.4.6. Web-технологии. |79 |
|2.4.7. Web-сервер Apache. |80 |
|2.4.8. Web-сервер Jigsaw. |81 |
|Web-сервер Netscape Enterprise. |82 |
|Microsoft Internet Information Server. |87 |
|2.5. Организация пользовательского интерфейса для доступа к |89 |
|базам данных. | |
|3. База данных Информационно-методического центра "Сведения |95 |
|об образовательных учреждениях". | |
|4. Вопросы безопасности и санкционирования доступа к базам |100 |
|данных. |104 |
|5. Перспективы развития сетевых баз данных. |106 |
|6. Список литературы. | |
|Приложения (Листинг программ). | |


Введение


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


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


Итак, в базах знаний мы накапливаем опыт прошлого. Потом человек может
сам принять решение на основе этого опыта (типичный случай с мультимедийным
справочником) или поставить задачу перед базой данных по поиску решения
согласно сложившейся ситуации (найти закон, поясняющий правило оформления
таможенной декларации и т.п.). Так происходит в программах справочного
характера. Как частный случай баз данных, можно рассматривать различные
структурированные файлы, например, словари для переводчиков, форматы файлов
RTF, DOC, книги Microsoft Excel, файлы с письмами для почтовых Internet-
программ и т.д., жизненно важные функции баз данных, в которых реализуются
за счет внутренних функций программ работающих с ними. Базы данных могут
применяться как вспомогательное средство, позволяющее реализовать какую-то
полезную функцию. Например, хранение настроек программы, Internet-адресов
для рассылки рекламы и т.д.


Структура информационных систем.


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


В современном мире чаще всего применяется сервер приложений для
реализации ядра информационной системы. В распределенной вычислительной
системе сервер приложений берет на себя функцию распределения нагрузки
между серверами, которые в общем случае могут работать под разными
операционными системами, или находится в разных географически местах.
Сервер приложений – это мостик между программами-клиентами и одним или
несколькими серверами базы данных. За счет сервера приложений можно снизить
нагрузку на приложения пользователя и реализовать сложные правила объектной
модели базы данных, которые трудно или нерационально реализовывать на
стороне сервера базы данных. В результате, сервер приложений снижает трафик
между сервером базы данных и компьютером клиента, повышая общую
производительность информационной системы. Исходя из сказанного ранее, на
приложение пользователя остается только реализация интерфейса. Такая
структура информационной системы называется многозвенной, а приложение
пользователя – тонким клиентом. Надо отметить, что в общем случае серверы
приложений могут посылать команды друг другу, и взаимодействовать, таким
образом, самым рациональным способом с географически удаленными серверами
баз данных. Например, для получения отчета с большим количеством
вычисляемых полей, нет необходимости делать несколько запросов к удаленной
базе данных через Internet, если это может сделать сервер приложений,
находящийся в непосредственной близости от сервера базы данных. Он и пошлет
в ответ готовый отчет.


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


Необходимые функции базы данных.


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


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


ввод информации об одном объекте разными способами или в разных местах;


ввод одной и той же информации в нескольких местах;


ввод информации разрозненно, без поддержания общей структуры объекта.


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


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


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


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


Хорошая информационная система должна легко расширяться при
необходимости добавления в нее новых возможностей. Расширяемость
подразумевает элементы объектной ориентированности, встроенные в базу
данных. Настраивая эти объекты, возможно вносить незначительные изменения
в структуру базы данных, что продляет срок морального устаревания всей
информационной системы. Одним из факторов расширяемости является
возможность сочленять разнородные базы данных в единый комплекс. Такая
возможность сейчас реализуется через дополнительные модули, которые по
своей сути являются серверами приложений, или правильное построение базы
данных по классическим реляционным законам. Последний случай затрудняется
тем, что некоторые серверы базы данных не могут выполнить один SQL запрос к
разным базам данных, тем более находящимся в географической удаленности
друг от друга.


Еще одна удобная функция в базе данных – это сквозное прохождение по
документам.


Описанные выше функции в разных реализациях информационных систем
имеют специфические черты, ориентированные на конкретное прикладное
применения.



Причины и история создания языка запросов SQL.


Реляционные базы данных. Общие понятия.

Любую структуру данных можно преобразовать в простую двумерную таблицу.
Такое представление является наиболее удобным и для пользователя, и для
машины, - подавляющее большинство современных информационных систем
работает именно с такими таблицами. Базы данных, которые состоят из
двумерных таблиц, называются реляционными.
Основная идея реляционного подхода состоит в том, чтобы представить
произвольную структуру данных в виде простой двумерной таблицы или, как
говорят, нормализовать структуру.
Из всех систем баз данных реляционные относятся к самым распространенным
в мире. Эти системы способны разрешить многие из тех проблем, которые
усложняли работу с нереляционными продуктами прежних поколений.
Программисты и администраторы таких баз данных были вынуждены тщательно
изучать, как структурирована информация и как она представлена в базе
данных, что значительно усложнило разработку этих приложений и модификацию
самих программ. Реляционные системы способны работать на более высоком
уровне. Все операции с данными реализуются программой, называемой DBMS
(система управления базой данных Обращаться к ней можно только с помощью
операторов языка высокого уровня. Хотя некоторые продукты по-прежнему
поддерживают работу в терминах своих собственных языков, язык SQL (Standard
Query Language) стал тем технологическим стандартом, на базе которого
созданы все, более или менее известные, реляционные продукты.
Язык для взаимодействия с БД SQL появился в середине 70-х и был
разработан в рамках проекта экспериментальной реляционной СУБД System R.
Исходное название языка SEQUEL (Structered English Query Language) только
частично отражает суть этого языка. Конечно, язык был ориентирован главным
образом на удобную и понятную пользователям формулировку запросов к
реляционной БД, но на самом деле уже являлся полным языком БД, содержащим
помимо операторов формулирования запросов и манипулирования БД средства
определения и манипулирования схемой БД. В языке отсутствовали средства
синхронизации доступа к объектам БД со стороны параллельно выполняемых
транзакций: с самого начала предполагалось, что необходимую синхронизацию
неявно выполняет СУБД.
В основе современных реляционных баз данных (и стандарта SQL) лежит
несколько правил и принципов:
. Все значения данных состоят из простых типов данных. В SQL
отсутствуют массивы, указатели, векторы и другие сложные типы данных.
. Все данные в реляционной базе данных изображаются в форме двумерных
таблиц (на языке математики – «отношений»). Каждая таблица содержит
некоторое число строк (в том числе 0), называемых «картежами» и один
или несколько столбцов, называемых «атрибутами». Все строки в таблице
имеют одну и ту же последовательность столбцов, в которых записаны
различные значения, однако наборы значений в столбцах отличаются.

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

|ID |Имя |Телефон |Город |
|2 |Иван И. Иванов |555-001 |Москва |
|1 |Константин В. Волков |555-330 |Екатеринбург |
|3 |Василий В. Грабер |555-607 |Санкт-Петербург |


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


1.2. Взаимодействие SQL и СУБД.

Увеличение объема и структурной сложности хранимых данных, расширение
круга пользователей информационных систем привели к широкому
распространению наиболее удобных и сравнительно простых для понимания
реляционных (табличных) СУБД. Для обеспечения одновременного доступа к
данным множества пользователей, нередко расположенных достаточно далеко
друг от друга и от места хранения баз данных, созданы сетевые
мультипользовательские версии СУБД. В них тем или иным путем решаются
специфические проблемы параллельных процессов, целостности (правильности) и
безопасности данных, а также санкционирования доступа.
SQL стал унифицированным средством общения и стандартным языком
манипулирования с базами данных, обладающим средствами для реализации
перечисленных выше возможностей. После появления на рынке двух пионерских
СУБД – SQL/DS (1981 год) и DB2 (1983 год) – он приобрел статус стандарта де-
факто для профессиональных реляционных СУБД. В 1987 году SQL стал
официальным международным стандартом языка баз данных, а в 1992 году вышла
вторая версия этого стандарта.
Важной отличительной чертой SQL является его независимость от
компьютерной среды (операционной системы и архитектуры). Такой язык назвали
SQL – это аббревиатура структурированного языка запросов (Structured Query
Language). SQL является инструментом, предназначенным для обработки и
чтения информации, содержащейся в компьютерной базе данных.
При создании языка запросов нового поколения разработчики старались
сделать его простым и легким в освоении инструментом для обращения к БД. В
итоге SQL стал слабо структурированным языком, особенно по сравнению с
такими языками, как С или Pascal, и в то же время достаточно мощным и
относительно легким для изучения.


1.3. Стандарты SQL. Сегодняшнее состояние.

Одним из наиболее важных шагов на пути к признанию SQL на рынке стало
появление стандартов на этот язык. Обычно при упоминании стандарта SQL
имеют в виду официальный стандарт, утвержденный Американским институтом
национальных стандартов (American National Standards Institute — ANSI) и
Международной организацией по стандартам (International Standards
Organization— ISO). Однако существуют и другие важные стандарты SQL,
включая SQL, реализованный в системе DB2 компании IBM, и стандарт X/OPEN
для SQL в среде UNIX.
Работа над официальным стандартом SQL началась в 1982 году, когда ANSI
поставил перед своим комитетом ХЗН2 задачу по созданию стандарта языка
реляционных баз данных. Вначале в комитете обсуждались достоинства
различных предложенных языков. Однако поскольку к тому времени SQL уже стал
фактическим стандартом, комитет ХЗН2 остановил свой выбор на нем и занялся
стандартизацией SQL.
Разработанный в результате стандарт в большой степени был основан на
диалекте SQL системы DB2, хотя и содержал в себе ряд существенных отличий
от этого диалекта. После нескольких доработок, в 1986 году стандарт был
официально утвержден как стандарт ANSI номер Х3.135, а в 1987 году — в
качестве стандарта ISO. Затем стандарт ANSI/ISO был принят правительством
США как федеральный стандарт США по обработке информации (FIPS — Federal
Information Processing Standard). Этот стандарт, незначительно
пересмотренный в 1989 году, обычно называют стандартом “SQL-89”, или
“SQLI”. Когда в данном реферате я упоминаю «стандарт ANSI/ISO”, то
подразумеваю SQLI, который в настоящее время лежит в основе большинства
коммерческих продуктов.
Многие из членов комитетов по стандартизации ANSI и ISO представляли
фирмы-поставщики различных СУБД, в каждой из которых был реализован
собственный вариант SQL. Как и диалекты человеческого языка, диалекты SQL
были в основном похожи друг на друга, однако несовместимы в деталях. Во
многих случаях комитет просто обошел существующие различия и не
стандартизировал некоторые части языка, определив, что они реализуются по
усмотрению разработчика. Этот подход позволил объявить большое число
реализаций SQL совместимыми со стандартом, однако сделал сам стандарт
относительно слабым.
Чтобы заполнить эти пробелы, комитет ANSI продолжил свою работу и создал
проект нового, более жесткого стандарта SQL2. В отличие от стандарта 1989
года, проект SQL2 предусматривал возможности, выходящие за рамки таковых,
уже существующих в реальных коммерческих продуктах. А для следующего за ним
стандарта SQL3 были предложены еще более глубокие изменения. В результате
предложенные стандарты SQL2 и SQL3 оказались более противоречивыми, чем
исходный стандарт. Стандарт SQL2 прошел процесс утверждения в ANSI и был
окончательно принят в октябре 1992 года. В то время, как первый стандарт
1986 года занимает не более ста страниц, официальный стандарт SQL2 содержит
около шестисот.
Вопреки стандарту SQL2, во всех существующих на сегодняшний день
коммерческих продуктах поддерживаются собственные диалекты SQL. Более того,
поставщики СУБД включают в свои продукты новые возможности и расширяют
собственные диалекты SQL, чем еще больше отдаляют их от стандарта. Однако
ядро SQL стандартизировано довольно жестко. Там, где это можно было
сделать, не ущемляя интересы клиентов, поставщики СУБД привели свои
продукты в соответствие со стандартом SQL-89, то же самое постепенно
произошло и с SQL2.
Хотя стандарт ANSI/ISO наиболее широко распространен, он не является
единственным стандартом SQL. Европейская группа поставщиков X/OPEN также
приняла SQL в качестве одного из своих стандартов для «среды переносимых
приложений» на основе UNIX. Стандарты группы X/OPEN играют важную роль на
европейском компьютерном рынке, где основной проблемой является
переносимость приложений между компьютерными системами различных
производителей. К несчастью, стандарт X/OPEN отличается от стандарта
ANSI/ISO.
Кроме того, компания IBM включила SQL в свою спецификацию Systems
Application Architecture (архитектура прикладных систем) и пообещала, что
все ее продукты, очевидно, будут переведены на этот диалект SQL. Хотя
данная спецификация и не оправдала надежд на унификацию линии продуктов
компании IBM, движение в сторону унификации SQL в IBM продолжается. Система
DB2 остается основной СУБД компании IBM для мэйнфреймов. Однако компания
выпустила реализацию DB2 и для OS/2 (собственной операционной системы для
персональных компьютеров), и для линии серверов и рабочих станций RS/6000,
работающих под управлением UNIX. Таким образом, диалект DB2 языка SQL
является мощным стандартом де-факто.
В технологии баз данных существует важная область, которую не
затрагивают официальные стандарты. Это способность к взаимодействию с
другими базами данных — методы, с помощью которых различные БД могут
обмениваться информацией (как правило, по сети). В 1989 году несколько
поставщиков сформировали консорциум SQL Access Group специально для решения
этой проблемы. В 1991 году консорциум опубликовал спецификацию RDA (Remote
Database Access — удаленный доступ к базам данных). Эта спецификация тесно
связана с протоколами OSI, которые не смогли завоевать широкого признания,
поэтому она оказывает на рынок незначительное влияние. Прозрачность
взаимодействия между различными базами данных остается иллюзорной мечтой.
Тем не менее, второй стандарт от SQL Access Group имеет на рынке больший
вес. В результате настойчивых требований компании Microsoft, консорциум SQL
Access Group включил в стандарт SQL интерфейс вызовов функций. Полученная
спецификация CLI (Call Level Interface), основанная на разработках компании
Microsoft, увидела свет в 1992 году. В этом же году была опубликована
собственная спецификация ODBC (Open Database Connectivity — взаимодействие
с открытыми базами данных) компании Microsoft, основанная на стандарте CLI.
Благодаря рыночной силе Microsoft и благословению, полученному «открытым
стандартом» от SQL Access Group, ODBC оказался стандартом де-факто для
интерфейсов доступа к базам данных на персональных компьютерах. Весной 1993
года компании Apple и Microsoft объявили о соглашении относительно
поддержки ODBC в MacOS и Windows, что закрепило за этой спецификацией
статус стандарта в обеих популярных средах с графическим пользовательским
интерфейсом.
Появление стандарта SQL вызвало довольно много восторженных заявлений о
переносимости SQL и использующих его приложений. На самом деле пробелы в
стандарте SQL-89 и различия между существующими диалектами SQL достаточно
значительны, и при переводе приложения под другую СУБД его всегда
приходится модифицировать. Эти отличия, большинство из которых устранено в
стандарте SQL2, включают в себя:
Коды ошибок. В стандарте SQL-89 не определены коды, которые возвращают
операторы SQL при возникновении ошибок, и в каждой из коммерческих
реализаций используется собственный набор таких кодов. В стандарте SQL2
определены стандартные коды ошибок.
Типы данных. В стандарте SQL-89 определен минимальный набор типов
данных, однако, в нем отсутствуют некоторые из наиболее распространенных и
полезных типов, например символьные строки переменной длины, дата и время,
а также денежные единицы. В стандарте SQL2 упомянуты эти типы данных,
однако, отсутствуют «новые» типы данных, такие как графические и
мультимедийные объекты.
Системные таблицы. В стандарте SQL-89 умалчивается о системных таблицах,
в которых содержится информация о структуре самой базы данных. Поэтому
каждый поставщик создавал собственные системные таблицы, и их структура
отличается даже в четырех реализациях SQL компании IBM. Системные таблицы
стандартизированы в SQL2.
Интерактивный SQL. В стандарте определен только программный SQL,
используемый прикладной программой, но не интерактивный SQL. Например,
оператор select, предназначенный для выполнения запросов к базе данных в
интерактивном режиме, в стандарте отсутствует.
Программный интерфейс. В первом стандарте определен абстрактный способ
использования SQL в программах, написанных на таких языках
программирования, как COBOL, FORTRAN и другие. Этот способ не используется
ни в одном коммерческом продукте, а в существующих программных интерфейсах
имеются значительные отличия. В стандарте SQL2 определен интерфейс
встроенного SQL для популярных языков программирования, но не интерфейс
вызова функций.
Динамический SQL. В стандарте SQL-89 не описаны элементы SQL,
необходимые для разработки приложений общего назначения, таких как
генераторы отчетов и программы создания и выполнения запросов. Однако эти
элементы, известные под названием динамический SQL, имеются почти во всех
СУБД и в различных системах значительно отличаются. В SQL2 входит стандарт
динамического SQL.
Семантические отличия. Поскольку некоторые элементы определены в
стандартах как зависящие от реализации, может возникнуть ситуация, когда в
результате выполнения одного и того же запроса в двух совместимых СУБД
будут получены два различных набора результатов. Отличия результатов
обусловлены различиями в обработке значений null, разными агрегатными
функциями и несовпадением процедур удаления повторяющихся строк.
Последовательность сравнения. В стандарте SQL-89 не упоминаются
последовательности сравнения (сортировки) символов, хранящихся в базе
данных. Результаты запроса с сортировкой будут отличаться при выполнении
этого запроса на персональном компьютере (с кодировкой ASCII) и на
мэйнфрейме (с кодировкой EBCDIC). Стандарт SQL2 позволяет программе или
пользователю указывать требуемую последовательность сортировки.
Структура базы данных. В стандарте SQL-89 определен SQL, который
используется уже после того, как база данных была открыта и подготовлена к
работе. Детали наименования баз данных и первоначального подключения к ним
сильно отличаются и несовместимы. Стандарт SQL2 в некоторой степени
унифицирует этот процесс, но не может полностью ликвидировать все отличия.

Вопреки перечисленным различиям, в начале 90-х годов стали появляться
коммерческие программы, реализующие переносимость приложений между
различными СУБД. Однако в таких программах для каждой из поддерживаемых
СУБД требуется специальный конвертер, который генерирует код в соответствии
с определенным диалектом SQL, выполняет преобразование типов данных,
транслирует коды ошибок и т.д. «Прозрачная» переносимость между различными
СУБД, использующими SQL, является основной целью стандарта SQL2 и протокола
ODBC. Однако повсеместный, «прозрачный» и унифицированный доступ к базам
данных SQL остается делом будущего.

Технологии, обеспечивающие сетевой доступ к базам данных

Всемирная Паутина недаром так быстро завоевала широкую популярность
среди пользователей Internet, в мире бизнеса, науки, политики и т. д.
Основные достижения Web – это простота опубликования информации в сети,
удобство и сравнительная унифицированность доступа к документам, наличие на
сегодняшний день достаточно развитых средств поиска. Однако в целом способы
представления, хранения и поиска информации в WWW относятся к категории
информационно-поисковых систем (ИПС). Хотя хранилища данных в узлах Web
иногда называют базами данных, этот термин в данном случае можно
использовать только в самом широком смысле. Исторически ИПС применялись для
хранения слабоструктурированной и редко изменяемой информации. Базы данных
в узком смысле – это хранилища структурированной, изменяемой информации,
причем информация в базе данных должна всегда находиться в согласованном
состоянии.
С равным успехом можно хвалить и ругать Web. Можно хвалить Всемирную
Паутину за то, что, не выходя из дома, вы можете побывать в любой точке
земного шара и посмотреть, что же там происходит. Можно ругать Web за то,
что трудно найти действительно актуальную информацию (обычно она
устаревшая), за то, что хранилища информации содержат очень много «мусора»,
опубликованного непонятно из каких соображений. Но в любом случае интерфейс
действительно удобен.
Ситуация с базами данных кардинально отличается. Именно базы данных
содержат основные знания человечества. В конце двадцатого века с появлением
технологии баз данных мы накопили больше информации, чем за всю предыдущую
историю. Вся беда в том, что доступ к базам данных (даже к тем, которые
содержат полностью открытую информацию) ограничен. Чтобы получить
интересующую его информацию, пользователь должен иметь физический доступ к
соответствующей СУБД, быть в курсе модели данных, знать схему базы данных
и, наконец, уметь пользоваться соответствующим языком запросов. Что
касается языка запросов, то проблему частично решает протокол ODBC,
позволяющий направлять ограниченный набор операторов SQL (с промежуточной
обработкой соответствующим драйвером ODBC) к произвольному серверу баз
данных. Но это только частичное решение, поскольку оно никак не помогает
пользователю понять схему базы данных (даже в терминах SQL) и, конечно, не
способствует созданию унифицированного интерфейса конечного пользователя
(нельзя же заставить всех работать в строчном режиме на языке SQL).
Итак, мы имеем удобные средства разработки распределенных в Internet
гипермедийных документов, простые, удобные, развитые и унифицированные
интерфейсы для доступа к информации WWW. Кроме того, мы имеем большое
количество ценных баз данных, управляемых разнородными СУБД, а также
желание сделать эти базы доступными всем людям (в случае публичных баз
данных) или членам территориально-распределенной корпорации (в случае
корпоративных баз данных). Возникает естественное желание скрестить эти две
технологии и обеспечить доступ к базам данных в интерфейсе Web. Еще два
года назад существовали только идеи такого скрещивания и не очень тщательно
разработанные подходы к реализации. На сегодняшний день такие механизмы уже
существуют и используются.

1 Принципы работы SQL-сервера


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

Рисунок 2.1


На рисунке 2.1 изображена схема работы SQL. Согласно этой схеме, в
вычислительной системе имеется база данных, в которой хранится важная
информация. Если БД относится к сфере бизнеса, то в ней может храниться
информация о материальных ценностях, выпускаемой продукции, объемах продаж
и зарплате. В базе данных на персональном компьютере может храниться
информация о выписанных чеках, телефонах и адресах или информация,
извлеченная из более крупной вычислительной системы. Компьютерная
программа, которая управляет базой данных, называется системой управления
базой данных, или СУБД.
Если пользователю необходимо прочитать данные из базы данных, он
запрашивает их у SQL с помощью СУБД. SQL обрабатывает запрос, находит
требуемые данные и посылает их пользователю. Процесс запрашивания данных и
получения результата называется запросом к базе данных: отсюда и название —
структурированный язык запросов.
Однако это название не совсем соответствует действительности. Cегодня SQL
представляет собой нечто гораздо большее, чем простой инструмент создания
запросов, хотя именно для этого он и был первоначально предназначен.
Несмотря на то, что чтение данных по-прежнему остается одной из наиболее
важных функций SQL, сейчас этот язык используется для реализации всех
функциональных возможностей, которые СУБД предоставляет пользователю, а
именно:
. Организация данных. SQL дает пользователю возможность изменять структуру
представления данных, а также устанавливать отношения между элементами
базы данных.
. Чтение данных. SQL дает пользователю или приложению возможность читать из
базы данных содержащиеся в ней данные и пользоваться ими.
. Обработка данных. SQL дает пользователю или приложению возможность
изменять базу данных, т.е. добавлять в нее новые данные, а также удалять
или обновлять уже имеющиеся в ней данные.
. Управление доступом. С помощью SQL можно ограничить возможности
пользователя по чтению и изменению данных и защитить их от
несанкционированного доступа.
. Совместное использование данных. SQL координирует совместное
использование данных пользователями, работающими параллельно, чтобы они
не мешали друг другу.
. Целостность данных. SQL позволяет обеспечить целостность базы данных,
защищая ее от разрушения из-за несогласованных изменений или отказа
системы.
Таким образом, СУБД является достаточно мощным средством для
взаимодействия с SQL.

Основными объектами реляционной базы данных являются:
(TABLE) Таблица
Прямоугольная таблица, состоящая из СТРОК и СТОЛБЦОВ. Задать таблицу –
значит указать, из каких столбцов она состоит.
(ROW) Строка
Запись, состоящая из полей – столбцов. В каждом поле содержится его
значение, либо значение NULL – «пусто». Строк в таблице может быть сколько
угодно. Физический порядок их расположения друг относительно друга
неопределен.
(COLUMN) Столбец
Каждый столбец в таблице имеет собственные имя и тип.

1 Таблицы SQL


В реляционной базе данных информация организована в виде таблиц,
разделённых на строки и столбцы, на пересечении которых содержатся значения
данных. Используемые в языке SQL для запросов сочетания ключей (CREATE
TABLE my_table – создание таблицы с названием my_table) получили название
«предложение». Таблицы создаются в SLQ с помощью предложения CREATE TABLE.
Предложение CREAT TABLE специфицирует имя базовой таблицы, которая должна
быть создана, имена ее столбцов и типы данных для этих столбцов. CREAT
TABLE – выполняемое предложение. Если SQL-серверу дать запрос CREATE TABLE,
система построит таблицу, которая сначала будет пустой: она будет содержать
только строку заголовков столбцов, но не будет еще содержать никаких строк
с данными. Информация в таблицу вставляется при помощи предложения команды
INSERT

1 Структура запросов SQL.


Все запросы на получение практически любых данных из одной или
нескольких таблиц выполняются с помощью единственного предложения SELECT.
В синтаксических конструкциях для обращения к БД используются следующие
обозначения:
1. звездочка (*) для обозначения «все» – употребляется в обычном для
программирования смысле, т.е. «все случаи, удовлетворяющие
определению»;
2. квадратные скобки ([]) – означают, что конструкции, заключенные в эти
скобки, являются необязательными (т.е. могут быть опущены);
3. фигурные скобки ({}) – означают, что конструкции, заключенные в эти
скобки, должны рассматриваться как целые синтаксические единицы, т.е.
они позволяют уточнить порядок разбора синтаксических конструкций,
заменяя обычные скобки, используемые в синтаксисе SQL;
4. многоточие (…) – указывает на то, что непосредственно предшествующая
ему синтаксическая единица факультативно может повторяться один или
более раз;
5. прямая черта (|) – означает наличие выбора из двух или более
возможностей. Например, обозначение ASC|DESC указывает, можно выбрать
один из терминов ASC или DESC; когда же один из элементов выбора
заключен в квадратные скобки, то это означает, что он выбирается по
умолчанию (так, [ASC]|DESC означает, что отсутствие всей этой
конструкции будет восприниматься как выбор ASC);
6. точка с запятой (;) – завершающий элемент предложений SQL;
7. запятая (,) – используется для разделения элементов списков;
8. пробелы ( ) – могут вводиться для повышения наглядности между любыми
синтаксическими конструкциями предложений SQL;
9. жирные прописные латинские буквы и символы – используются для
написания конструкций языка SQL и должны (если это специально не
оговорено) записываться в точности так, как показано-……..;
10. строчные буквы используются для написания конструкций, которые должны
заменяться конкретными значениями, выбранными пользователем, причем
для определенности отдельные слова этих конструкций связываются между
собой символом подчеркивания (_);
11. термины «таблица» и «столбец» заменяют (с целью сокращения текста
синтаксических конструкций) термины «имя_таблицы», «имя_столбца», …,
соответственно;
12. термин «таблица» - используется для обобщения таких видов таблиц, как
базовая_таблица, представление или псевдоним; здесь псевдоним служит
для временного (на момент выполнения запроса) переименования и (или)
создания рабочей копии базовой_таблицы (представления).
Предложение SELECT (выбрать) имеет следующий формат:

подзапрос [UNION [ALL] подзапрос] …
[ORDER BY {[таблица.]столбец | номер_элемента_SELECT} [[ASC] | DESC]
[,{[таблица.]столбец | номер_элемента_SELECT} [[ASC] | DESC]] …;

и позволяет объединить (UNION) а затем упорядочить (ORDER BY) результаты
выбора данных, полученных с помощью нескольких «подзапросов». При этом
упорядочение можно производить в порядке возрастания – ASC (ASCending) или
убывания DESC (DESCending), а по умолчанию принимается ASC.
В этом предложении подзапрос позволяет указать условия для выбора нужных
данных и (если требуется) их обработки
SELECT
(выбрать) данные из указанных столбцов и (если необходимо) выполнить
перед выводом их преобразование в соответствии с указанными выражениями и
(или) функциями
FROM
(из) перечисленных таблиц, в которых расположены эти столбцы
WHERE
(где) строки из указанных таблиц должны удовлетворять указанному перечню
условий отбора строк
GROUP BY
(группируя по) указанному перечню столбцов с тем, чтобы получить для
каждой группы единственное агрегированное значение, используя во фразе
SELECT SQL-функции SUM (сумма), COUNT (количество), MIN (минимальное
значение), MAX (максимальное значение) или AVG (среднее значение)
HAVING
(имея) в результате лишь те группы, которые удовлетворяют указанному
перечню условий отбора групп
и имеет формат
SELECT [[ALL] | DISTINCT]{ * | элемент_SELECT [,элемент_SELECT] …}
FROM {базовая_таблица | представление} [псевдоним]
[,{базовая_таблица | представление} [псевдоним]] …
[WHERE фраза]
[GROUP BY фраза [HAVING фраза]];

Элемент_SELECT – это одна из следующих конструкций:

[таблица.]* | значение | SQL_функция | системная_переменная
где значение – это:
[таблица.]столбец | (выражение) | константа | переменная

Синтаксис выражений имеет вид

( {[ [+] | - ] {значение | функция_СУБД} [ + | - | * | ** ]}… )

а синтаксис SQL_функций – одна из следующих конструкций:

{SUM|AVG|MIN|MAX|COUNT} ( [[ALL]|DISTINCT][таблица.]столбец )

{SUM|AVG|MIN|MAX|COUNT} ( [ALL] выражение )

COUNT(*)

Фраза WHERE включает набор условий для отбора строк:

WHERE [NOT] WHERE_условие [[AND|OR][NOT] WHERE_условие]…
где WHERE_условие – одна из следующих конструкций:
значение { = | | < | | >= } { значение | ( подзапрос ) }

значение_1 [NOT] BETWEEN значение_2 AND значение_3

значение [NOT] IN { ( константа [,константа]… ) | ( подзапрос ) }

значение IS [NOT] NULL

[таблица.]столбец [NOT] LIKE 'строка_символов' [ESCAPE 'символ']

EXISTS ( подзапрос )

Кроме традиционных операторов сравнения (= | | < | | >=) в
WHERE фразе используются условия BETWEEN (между), LIKE (похоже на), IN
(принадлежит), IS NULL (не определено) и EXISTS (существует), которые могут
предваряться оператором NOT (не). Критерий отбора строк формируется из
одного или нескольких условий, соединенных логическими операторами:
AND
1. когда должны удовлетворяться оба разделяемых с помощью AND условия;
OR
2. когда должно удовлетворяться одно из разделяемых с помощью OR условий;
AND NOT
3. когда должно удовлетворяться первое условие и не должно второе;
OR NOT
4. когда или должно удовлетворяться первое условие или не должно
удовлетворяться второе,
причем существует приоритет AND над OR (сначала выполняются все операции
AND и только после этого операции OR). Для получения желаемого результата
WHERE условия должны быть введены в правильном порядке, который можно
организовать введением скобок.
При обработке условия числа сравниваются алгебраически – отрицательные
числа считаются меньшими, чем положительные, независимо от их абсолютной
величины. Строки символов сравниваются в соответствии с их представлением в
коде, используемом в конкретной СУБД, например, в коде ASCII. Если
сравниваются две строки символов, имеющих разные длины, более короткая
строка дополняется справа пробелами для того, чтобы они имели одинаковую
длину перед осуществлением сравнения.
Наконец, синтаксис фразы GROUP BY имеет вид

GROUP BY [таблица.]столбец [,[таблица.]столбец] … [HAVING фраза]

GROUP BY инициирует перекомпоновку формируемой таблицы по группам, каждая
из которых имеет одинаковое значение в столб-цах, включенных в перечень
GROUP BY. Далее к этим группам применяются агрегирующие функции, указанные
во фразе SELECT, что приводит к замене всех значений группы на единственное
значение (сумма, количество и т.п.).
С помощью фразы HAVING (синтаксис которой почти не отличается от
синтаксиса фразы WHERE)

HAVING [NOT] HAVING_условие [[AND|OR][NOT] HAVING_условие]…

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

значение { = | | < | | >= } { значение | ( подзапрос )
| SQL_функция }

{значение_1 | SQL_функция_1} [NOT] BETWEEN
{значение_2 | SQL_функция_2} AND {значение_3 | SQL_функция_3}

{значение | SQL_функция} [NOT] IN { ( константа [,константа]… )
| ( подзапрос ) }

{значение | SQL_функция} IS [NOT] NULL

[таблица.]столбец [NOT] LIKE 'строка_символов' [ESCAPE 'символ']

EXISTS ( подзапрос )



2.2.2. Запросы с использованием единственной таблицы.

Выборка без использования фразы WHERE
Простая выборка
Запрос выдать название, статус и адрес поставщиков

SELECT Название, Статус, Адрес
FROM Поставщики;
дает результат, приведенный на рис. 2.2,а.
При необходимости получения полной информации о поставщиках, можно
было бы дать запрос

SELECT ПС, Название, Статус, Город, Адрес, Телефон
FROM Поставщики;
или использовать его более короткую нотацию:

SELECT *
FROM Поставщики;
Здесь «звездочка» (*) служит кратким обозначением всех имен полей в
таблице, указанной во фразе FROM. При этом порядок вывода полей
соответствует порядку, в котором эти поля определялись при создании
таблицы.
Еще один пример. Выдать основу всех блюд:

SELECT Основа
FROM Блюда;
дает результат, показанный на рис. 2.2,б.

|а) | | |б) |в) |
|Название |Статус |Адрес |Основа |Основа |
| | | |Овощи |Кофе |
| | | |Мясо |Крупа |
|СЫТНЫЙ |Рынок |Сытнинская,|Овощи |Молоко |
| | |3 | | |
|ПОРТОС |Кооператив |Садовая, 27|Рыба |Мясо |
|ШУШАРЫ |Совхоз |Новая, 17 |Рыба |Овощи |
|ТУЛЬСКИЙ |Универсам |Тульская, 3|Мясо |Рыба |
|УРОЖАЙ |Коопторг |Песчаная, |Молоко |Фрукты |
| | |19 | | |
|ЛЕТО |Агрофирма |Пулковское |Молоко |Яйца |
| | |ш.,8 | | |
|ОГУРЕЧИК |Ферма |Укмерге, 15|… | |
|КОРЮШКА |Кооператив |Нарвское |Кофе | |
| | |ш., 64 | | |


Рисунок 2.2


Исключение дубликатов
В предыдущем примере был выдан правильный, но не совсем удачный
перечень основных продуктов: из него не были исключены дубликаты. Для
исключения дубликатов и одновременного упорядочения перечня необходимо
дополнить запрос ключевым словом DISTINCT (различный, различные), как
показано в следующем примере:

SELECT DISTINCT Основа
FROM Блюда;
Результат приведен на рис. 2.2,в.
Выборка вычисляемых значений
Из синтаксиса фразы SELECT видно, что в ней может содержаться не
только перечень столбцов таблицы или символ *, но и выражения.
Например, если нужно получить значение калорийности всех продуктов, то
можно учесть, что при окислении 1 г углеводов или белков в организме
освобождается в среднем 4.1 ккал, а при окислении 1 г жиров – 9.3 ккал, и
выдать запрос:

SELECT Продукт, ((Белки+Углев)*4.1+Жиры*9.3)
FROM Продукты;
результат которого приведен на рис. 2.3,а.
|а) | |Б) | | |в) |
|Продукт | |Продукт | | |Продукт | |
|Говядина|1928.1 |Говядина|Калорий |1928.1 |Зелень |118.9 |
| | | |= | | | |
|Судак |1523. |Судак |Калорий |1523. |Помидоры|196.8 |
| | | |= | | | |
|Масло |8287.5 |Масло |Калорий |8287.5 |Морковь |349.6 |
| | | |= | | | |
|Майонез |6464.7 |Майонез |Калорий |6464.7 |Лук |459.2 |
| | | |= | | | |
|Яйца |1618.9 |Яйца |Калорий |1618.9 |Яблоки |479.7 |
| | | |= | | | |
|Сметана |3011.4 |Сметана |Калорий |3011.4 |Молоко |605.1 |
| | | |= | | | |
|Молоко |605.1 |Молоко |Калорий |605.1 |Кофе |892.4 |
| | | |= | | | |
|Творог |1575. |Творог |Калорий |1575. |Судак |1523. |
| | | |= | | | |
|Морковь |349.6 |Морковь |Калорий |349.6 |Творог |1575. |
| | | |= | | | |
|Лук |459.2 |Лук |Калорий |459.2 |Яйца |1618.9 |
| | | |= | | | |
|Помидоры|196.8 |Помидоры|Калорий |196.8 |Говядина|1928.1 |
| | | |= | | | |
|Зелень |118.9 |Зелень |Калорий |118.9 |Сметана |3011.4 |
| | | |= | | | |
|Рис |3512.1 |Рис |Калорий |3512.1 |Рис |3512.1 |
| | | |= | | | |
|Мука |3556.7 |Мука |Калорий |3556.7 |Мука |3556.7 |
| | | |= | | | |
|Яблоки |479.7 |Яблоки |Калорий |479.7 |Сахар |4091.8 |
| | | |= | | | |
|Сахар |4091.8 |Сахар |Калорий |4091.8 |Майонез |6464.7 |
| | | |= | | | |
|Кофе |892.4 |Кофе |Калорий |892.4 |Масло |8287.5 |
| | | |= | | | |


Рисунок 2.3

Фраза SELECT может включать не только выражения, но и отдельные
числовые или текстовые константы. Следует отметить, что текстовые константы
должны заключаться в апострофы ('). На рис. 2.3,б приведен результат
запроса:

SELECT Продукт, 'Калорий =', ((Белки+Углев)*4.1+Жиры *9.3)
FROM Продукты;

А что произойдет, если какой-либо член выражения не определен, т.е.
имеет значение NULL и каким образом появилось такое значение?
Если при загрузке строк таблицы в какой-л

Новинки рефератов ::

Реферат: Социальная роль маргиналов (Социология)


Реферат: Исследование внимания в психофизиологии (Психология)


Реферат: Места обучения детей с проблемами в развитии (Педагогика)


Реферат: Современные тахеометры (Геодезия)


Реферат: Определение нейтральной линии бруса и расчёт наибольших растягивающих и сжимающих напряжений (Технология)


Реферат: Сальвадор Дали (Искусство и культура)


Реферат: Курс лекций в Московском Государственно-Индустриальном Университете (Менеджмент)


Реферат: Парламенты стран СНГ (Право)


Реферат: Бухгалтерский учет на Украине (Шпаргалка) (Бухгалтерский учет)


Реферат: Структурная схема ЭВМ (Компьютеры)


Реферат: История международного права и его науки классического периода (Международное публичное право)


Реферат: Статус депутатов местных Советов и формы их работы (Муниципальное право)


Реферат: Анализ пропорциональности развития рынка банковских услуг (Банковское дело)


Реферат: Концепции современного естествознания (Естествознание)


Реферат: Генетика популяций (Биология)


Реферат: Возделывание картофеля (Ботаника)


Реферат: Система воспитания как условие становления личности (Социология)


Реферат: Всё про ролики (Физкультура)


Реферат: Организация "Мiжнародна рада компютерноi комунiкацii" (Компьютеры)


Реферат: Возбуждение уголовного дела (Уголовное право и процесс)



Copyright © GeoRUS, Геологические сайты альтруист