Шаг 7 - Язык SQL и примитивные типы данных

Думаю теперь настало время немного пофилософствовать, на тему Structured Query Language (SQL)! Что такое структурированный язык запросов баз данных и откуда он вообще появился?

Сам язык SQL родился в недрах компании IBM, при создании СУБД DB2 и наиболее, широко применялся в UNIX системах на машинах с RISC процессорами, а так же на так называемых мэйнфреймах, больших вычеслительных комплексах на базе суперкомпьютеров. По некоторым утверждениям, которые я встречал, не однократно, звучит примерно, следующее: "-язык SQL является языком программирования", что ж можно конечно, поспорить, но пока примем на веру! Я бы сказал, что скорее, это именно структурированный язык, для выполнения операций над БД!

В то же время не являясь самостоятельным, обычно, он инкапсулируется во внутренние языки программирования, такие как, например PL/SQL, или Transact-SQL! Нельзя найти SQL, сам по себе! В 1986 году, ANSI (American National Standart Institute) опубликовал, официальный стандарт, языка SQL, а в 1992 году, он был расширен. Откуда и появились стандарты SQL91, SQL92. Вот в принципе кратенько как все это начиналось! Для того что бы, в дальнейшем нам разобраться более подробно, с основными операторами SQL, лучше сделать, это не привязываясь к конкретной платформе БД, а пройдя это отдельным курсом. А, в дальнейшем, после того как все разберем, плавно перейдем к PL/SQL и я вас уверяю, вот здесь и будет самое интересное!

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

Все объекты БД имеют уникальные имена, а БД Oracle, так же имеет такое понятие как атомарная матрица (матрица!!!), однозначно идентифицирующая, каждую запись в БД! Идем дальше. Если вы обращаетесь к столбцу SALES таблицы SALESREPS, при организации запроса из одной таблицы, то все правильно, если же запрос производится из двух таблиц, где столбцы имеют одинаковые имена, то применяется запись такого вида: SALESREPS.SALES, PROBA.SALES!

В этом случае ошибки не будет так как применяется, точечная нотация при выборе столбцов, для запроса. При этом таблицы как объекты имеют разные имена, хотя и содержат одинаковые столбцы! Так же разные схемы БД, то есть пользователи, так же могут содержать таблицы с одинаковыми именами, но в разных схемах! Например: SCOTT.SALESREPS.SALES и MILLER.SALESREPS.SALES! Думаю, это не понятно. А теперь давайте рассмотрим некоторые типы данных, так же применительно к БД Oracle.

Так же в таблицах БД применяется такое понятие как "отсутствующее значение" или NULL. Которое по своей сути определено 3м, правилом Кодда, а именно "Правило поддержки недействительных значений" ! Вокруг этого понятия до сих пор происходит, множество дискуссий и даже предложений исключить его как таковое. Но, тем не менее, до сих пор, оно существует и мне кажется это верное решение! Вследствие применения модели реального мира. Далее мы еще вернемся к этому вопросу. Пока вот собственно все, что касается типов данных в БД Oracle. В следующем шаге, мы создадим учебные таблицы и двинемся дальше по пути познания SQL!


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Летучий Сергей - 10.08.03