Типы данных и выражения в SQL. 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Типы данных и выражения в SQL.



Типы данных языка SQL (в стандарте SQL-1):

1. CHAR(длина), CHARACTER(длина) – Строка символов постоянной длины.

2. INTEGER, INT – Целое число.

3. SMALLINT – Малое целое число.

4. NUMERIC(точность, степень), DECIMAL(точность, степень), DEC(точность, степень) – Число с фиксированной запятой.

5. FLOAT (точность) – Число с плавающей запятой.

Более поздние стандарты предусматривают дополнительно и другие типы данных, как строка символов переменной длины, дата, время, абстрактные типы данных и др.

Выражения в SQL используются для выполнения операций над значениями, которые считаны из БД, или для выбора информации из БД. Выражения представляют собой определенную последовательность полей, констант, функций, соединенных операторами. Константы используются для указания конкретных значений данных. Виды констант:

1) Константы с фиксированной запятой (пишут точку): 21 -375.18 62.3,

2)Константы с плавающей запятой: 1.5Е7 -3.14Е9 2.5Е-6 0.783Е24,

3)Строковые константы (должны быть заключены в одинарные кавычки): 'Минск' 'New York' 'Иванов И. И.'

4)Отсутствующее значение (NULL).

К часто используемым агрегатным функциям можно отнести следующие: · COUNT – количество значений в столбце, · SUM – сумма значений в столбце, · AVG – среднее значение в столбце, · MAX – максимальное значение в столбце, · MIN – минимальное значение в столбце. Для функций SUM и AVG рассматриваемый столбец должен содержать числовые значения.

В выражениях можно использовать следующие типы операторов: · арифметические: + (сложение), - (вычитание), * (умножение), / (деление); · отношения: = (равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно), <> (не равно); · логические: AND (логическое "И"), OR (логическое "ИЛИ"), NOT ("НЕТ"); · специальные: IN (определяет множество, которому может принадлежать значение); BETWEEN (задает границы, в которые должно попадать значение); LIKE (применяется для поиска по шаблону). В шаблоне используются специальные символы: % (процент), заменяющий любую последовательность символов и _ (подчеркивание), заменяющий один любой символ); IS NULL – используется для поиска NULL-значений.

Возможности языка SQL по: определению данных, внесению изменений в базу данных, извлечению данных из базы.

Сам по себе SQL не является ни системой управления БД, ни отдельным программным продуктом. SQL – это неотъемлемая часть СУБД, инструмент, с помощью которого осуществляется связь пользователя с ней. Ядро базы данных является сердцевиной СУБД; оно отвечает за физическое структурирование данных и запись их на диск, а также за физическое чтение данных с диска. Кроме того, ядро принимает SQL-запросы от других компонентов СУБД (таких как генератор форм, генератор отчетов или модуль запросов), от пользовательских приложений, а также от других вычислительных систем. SQL является мощным инструментом, обеспечивающим пользователям, прикладным программам и вычислительным системам доступ к инфо, содержащейся в БД.

SQL выполняет множество функций:

· SQL – язык интерактивных запросов. Пользователи вводят команды SQL в интерактивном режиме для выборки данных и отображения их на экране, а также внесения изменений в БД.

· SQL – язык программирования БД. Чтобы получить доступ к базе данных, в прикладные программы вставляются команды SQL.

· SQL – язык администрирования БД. Администратор БД использует SQL для определения структуры БД и управления доступом к данным.

· SQL – язык создания приложений клиент/сервер. В прикладных программах SQL используется как средство организации связи по локальной сети с сервером БД, в которой хранятся совместно используемые данные и др.

Формирование запросов на языке SQL должно осуществляться в строгом соответствии с форматом (правилом формирования) команды. Язык SQL, соответствующий последним стандартам SQL:2003, SQL:1999 представляет собой очень богатый и сложный язык, все возможности которого трудно сразу осознать и тем более понять. Поэтому приходится разбивать язык на уровни. В одной из классификаций, предусмотренных стандартом SQL, этот язык разбивается на «базовый» (entry), «промежуточный» (intermediate) и «полный» (full) уровни. Базовый уровень содержит около 40 команд, которые можно сгруппировать в категории по их функциональному назначению.

(Дополнение): Команда определения данных (создания структуры таблицы) CREATE TABLE. (В команде указывается имя создаваемой таблицы и описываются ее поля). Команда извлечения данных SELECT является основной и чаще используемой. Используется при форматировании всех запросов выбора. Она должна содержать ключевые слова SELECT и FROM.

Команда внесения изменений в БД (добавления новых записей в таблицу) имеет след формат: INSERT INTO.

 

Понятие и типы транзакций. Обработка транзакций в SQL.

К категории Управление транзакциями относятся команды, позволяющие обеспечивать целостность данных в базе данных. Для обеспечения целостности данных в SQL используются средства обработки транзакций. Транзакция – это совокупность операций манипулирования данными в системе баз данных, которая переводит базу данных из одного целостного состояния в другое. SQL-транзакция – последовательность команд SQL, обладающая свойством неделимости относительно восстановления состояния БД. В языке SQL обработка транзакций реализована с помощью двух команд: COMMIT и ROLLBACK. Они управляют изменениями, выполненными группой команд. Команда COMMIT сообщает об успешном окончании транзакции. Она информирует СУБД о том, что транзакция завершена, все ее команды выполнены успешно и противоречия в БД не возникли. Команда ROLLBACK сообщает о неуспешном окончании транзакции. Она информирует СУБД о том, что пользователь не хочет завершать транзакцию, и СУБД должна отменить все изменения, внесенные в БД в результате выполнения транзакции. В этом случае СУБД возвращает БД в состояние, в котором она находилась до выполнения транзакции. Команды COMMIT и ROLLBACK используются в основном в программном режиме, хотя возможно их использование и в интерактивном режиме.

 

Управление доступом к данным в SQL.

К категории Управление доступом относятся команды для осуществления административных функций, присваивающих или отменяющих право (привилегию) использовать таблицы в БД определенным образом. Каждый пользователь БД имеет определенные права по отношению к объектам БД. Права – это те действия с объектом, которые может выполнять пользователь. Права могут меняться с течением времени: старые могут отменяться, новые – добавляться. Стандартом языка SQL предусмотрены следующие права: · SELECT – право читать таблицу; · INSERT – право добавлять данные в таблицу; · UPDATE – право изменять данные таблицы; · DELETE – право удалять данные из таблицы; · REFERENCES – право определять первичный ключ. Пользователь, создавший таблицу, является ее владельцем. Как владелец, пользователь имеет все права на таблицу и может назначить права для работы с ней другим пользователям. Кроме владельца, права может назначать администратор БД. GRANT - Предоставляет пользователю право доступа. REVOKE - Отменяет право доступа.

 

Встраивание SQL в прикладные программы.

К категории Встроенный SQL относятся команды, предназначенные для реализации обращения к БД из прикладных программ, написанных на определенном языке программирования. Для пересылки данных из БД в прикладную программу используются временная таблица, называемая SQL-курсором. Команды DECLARE, OPEN, FETCH, CLOSE позволяют управлять SQL-курсором. DECLARE - определяет набор записей, в который будут возвращены результаты запроса. OPEN - открывает определенный набор записей. FETCH - извлекает строку из таблицы результатов запроса, CLOSE - з акрывает набор записей запроса.

Диалекты языка SQL в СУБД.


Несмотря на наличие международного стандарта ANSI SQL, многие компании, занимающиеся разработкой СУБД, вносят изменения в язык SQL, применяемый в разрабатываемой СУБД, тем самым отступая от стандарта. Каждая из реализаций языка SQL в конкретной СУБД называется диалектом. Функции, которые добавляются к стандарту языка разработчиками коммерческих реализаций, принято называть расширениями. Например, в стандарте языка SQL определены конкретные типы данных, которые могут храниться в базах данных. Во многих реализациях этот список расширяется за счет разнообразных дополнений.

Выделяют три уровня соответствия стандарту ANSI/ISO — начальный, промежуточный и полный. В настоящее время не существует ни одного диалекта, полностью соответствующего стандарту. Производители СУБД (например, Oracle, Microsoft, Borland, Informix, Sybase) применяют собственные реализации SQL, отвечающие как минимум начальному уровню соответствия стандарту и содержащие некоторые расширения, специфические для данной СУБД. Не существует двух совершенно идентичных диалектов. Более того, поскольку разработчики баз данных вводят в системы все новые функциональные средства, они постоянно расширяют свои диалекты языка SQL, в результате чего отдельные диалекты все больше и больше отличаются друг от друга. Это имеет свои достоинства и недостатки.

Конкретная реализация языка, может включать в себя более широкие возможности по сравнению со стандартом SQL, например, больше типов данных, большее количество команд, больше дополнительных возможностей у имеющихся команд. Такие возможности делают работу с конкретной СУБД более эффективной. Кроме того, такие нестандартные возможности языка проходят практическую апробацию и со временем могут быть включены в стандарт. Недостаток в том, что различия в синтаксисе реализаций SQL затрудняют перенос приложений из одной системы в другую. Например, если приложение было написано для базы данных MS SQL Server с использованием своего диалекта SQL – языка Transact-SQL, то при переносе системы в базу данных ORACLE, не все конструкции языка будут понятны соответствующему диалекту SQL – языку PL/SQL.

В широко распространенных в настоящее время СУБД используются следующие диалекты языка SQL:

- PL/SQL – в СУБД Oracle;

- Transact-SQL – в СУБД Microsoft SQL;

- Informix-SQL – в СУБД Informix;

- Jet SQL – Microsoft Access.

Язык Jet SQL почти соответствует стандарту ANSI SQL. Основные различия языков Jet SQL и ANSI SQL состоят в следующем:

- они имеют разные наборы зарезервированных слов и типов данных;

- разные правила применимы к оператору Between, используемому для определения условий выборки записей;

- подстановочные знаки ANSI и Microsoft Jet, которые используются в операторе Like, различны;

- язык Jet SQL обычно предоставляет пользователю большую свободу, например, разрешается группировка и сортировка по значению выражения;

- язык Jet SQL позволяет использовать более сложные выражения.

 



Поделиться:


Последнее изменение этой страницы: 2016-08-14; просмотров: 305; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.222.117.109 (0.012 с.)