Структурированный язык запросов. Типы данных в SQL. Запрос. 


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



ЗНАЕТЕ ЛИ ВЫ?

Структурированный язык запросов. Типы данных в SQL. Запрос.



Язык SQL (Structured Query Language) – это структурированный язык запросов для работы с базами данных.

Этот язык пригоден для использования многими СУБД на множестве современных компьютерных платформ. Пользователи, владеющие им, имеют огромные возможности доступа и применения данных разнообразных баз независимо от среды их создания.

В этом разделе рассматривается стандарт SQL-2, который в дальнейшем обозначается просто SQL.

Язык SQL имеет определенный набор команд, которые позволяют осуществлять:

· организацию данных;

· изменение данных;

· чтение данных;

· управление доступом к данным;

· совместное использование данных;

· обеспечение целостности данных;

· обращение к базам данных в прикладных программах.

 

Структура SQL-команды

Каждая команда SQL начинается с ключевого слова – глагола, описывающего действие, выполняемое командой, например, CREATE (создать). В команде может быть одно или несколько предложений. Предложение описывает данные, с которыми работает команда, или содержит уточняющую информацию о действии, выполняемом командой. Каждое предложение начинается с ключевого слова, например, WHERE (где). Одни предложения в команде являются обязательными, а другие – нет. Некоторые предложения могут содержать дополнительные ключевые слова, выражения. Многие предложения включают имена таблиц или полей. Имена должны содержать от 1 до 18 символов, начинаться с буквы и не содержать пробелы и специальные символы пунктуации. В качестве имен нельзя использовать ключевые слова.

Типы данных языка SQL-1

Тип данных Описание
CHAR(длина) CHARACTER(длина) Строка символов постоянной длины
INTEGER INT Целое число
SMALLINT Малое целое число
NUMERIC(точность, степень) DECIMAL(точность, степень DEC(точность, степень) Число с фиксированной запятой
FLOAT (точность) Число с плавающей запятой

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

Удаление избыточных данных distinct.

DISTINCT (ОТЛИЧИЕ) — аргумент, который обеспечивает вас способом устранять дублирующие значения из вашего предложения SELECT.

DISTINCT следит за тем, какие значения были ранее, чтобы они не дублировались в списке. Это полезный способ избежать избыточности данных, но важно, чтобы при этом вы понимали, что вы делаете. Если вы не хотите потерять некоторые данные, вы не должны безоглядно использовать DISTINCT, потому что это может скрыть какую-то проблему или какие-то важные данные.

DISTINCT может указываться только один раз в данном предложении SELECT. Если предложение выбирает несколько полей, DISTINCT опускает строки, где все выбранные поля идентичны. Строки, в которых некоторые значения одинаковы, а некоторые — различны, будут сохранены. DISTINCT фактически приводит к показу всей строки вывода, не указывая полей (за исключением случав, когда он используется внутри агрегатных функций), так что нет никакого смысла его повторять.

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

Выбор при использовании предложения. Примеры простых предикатов.

 

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

WHERE - предложение команды SELECT, которое позволяет вам устанавливать предикаты, условие которых может быть или верным или неверным для любой строки таблицы. Команда извлекает только те строки из таблицы для которой такое утверждение верно. Когда предложение WHERE представлено, программа базы данных просматривает всю таблицу по одной строке и исследует каждую строку, чтобы определить верно ли утверждение.

Предикаты представляют собой выражения, принимающие истинностное значение. Они могут представлять собой как одно выражение, так и любую комбинацию из неограниченного количества выражений, построенную с помощью булевых операторов AND, OR или NOT. Кроме того, в этих комбинациях может использоваться SQL-оператор IS, а также круглые скобки для конкретизации порядка выполнения операций.

Предикат в языке SQL может принимать одно из трех значений TRUE (истина), FALSE (ложь) или UNKNOWN (неизвестно). Исключение составляют следующие предикаты: IS NULL (отсутствие значения), EXISTS (существование), UNIQUE (уникальность) и MATCH (совпадение), которые не могут принимать значение UNKNOWN.

Правила комбинирования всех трех истинностных значений легче запомнить, обозначив TRUE как 1, FALSE как 0 и UNKNOWN как 1/2 (где то между истинным и ложным значениями) [ 2 ].

AND с двумя истинностными значениями дает минимум этих значений. Например, TRUE AND UNKNOWN будет равно UNKNOWN.

OR с двумя истинностными значениями дает максимум этих значений. Например, FALSE OR UNKNOWN будет равно UNKNOWN.

Отрицание истинностного значения равно 1 минус данное истинностное значение. Например, NOT UNKNOWN будет равно UNKNOWN.

Предикат сравнения представляет собой два выражения, соединяемых оператором сравнения. Имеется шесть традиционных операторов сравнения: =, >, <, >=, <=, <>.

Данные типа NUMERIC (числа) сравниваются в соответствии с их алгебраическим значением.

Данные типа CHARACTER STRING (символьные строки) сравниваются в соответствии с их алфавитной последовательностью. Если а1а2…аn и в1 в…вn — две последовательности символов, то первая «меньше» второй, если а1 < в1, или а1 = в1 и а2 < в2 и т. д. Считается также, что а1а2…аn < в1в2…вm, если n < m и а1а2…аn = в1в2…вn, то есть если первая строка является префиксом второй. Например, ‘folder’ < ‘for’, так как первые две буквы этих строк совпадают, а третья буква строки ‘folder’ предшествует третьей букве строки ‘for’. Также справедливо неравенство ‘bar’ < ‘barber’, поскольку первая строка является префиксом второй.

Данные типа DATETIME (дата/время) сравниваются в хронологическом порядке. Данные типа INTERVAL (временной интервал) преобразуются в соответствующие типы, а затем сравниваются как обычные числовые значения типа NUMERIC.



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 118; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

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