Общая характеристика языка SQL

Рассмотрение основных, базовых понятий информационно-логического языка SQL, предназначенного для описания, изменения и извлечения данных, хранимых в реляционных базах данных. Основы синтаксиса данного языка. Ознакомление с примером создания таблицы.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 19.11.2014
Размер файла 531,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

Введение

1. Описание

2. Применение

3. Основы синтаксиса языка SQL

4. Типы данных языка SQL

5. Основы языка SQL

Заключение

Литература

Введение

язык sql реляционный база

Язык SQL был разработан фирмой IBM в конце 70-х годов. Первый международный стандарт языка был принят международной стандартизирующей организацией ISO в 1989 г. а новый (более полный) - в 1992 г. [3]. В настоящее время все производители реляционных СУБД поддерживают с различной степенью соответствия стандарт SQL92. Единственной структурой представления данных (как прикладных, так и системных) в реляционной базе данных (БД) является двумерная таблица. Любая таблица может рассматриваться как одна из форм представления теоретико-множественного понятия отношение (relation), отсюда название модели данных - "реляционная".

В реляционной модели данных таблица обладает следующими основными свойствами:

1. идентифицируется уникальным именем;

2. имеет конечное (как правило, постоянное) ненулевое количество столбцов;

3. имеет конечное (возможно, нулевое) число строк;

4. столбцы таблицы идентифицируются своими уникальными именами и номерами;

5. содержимое всех ячеек столбца принадлежит одному типу данных (т.е. столбцы однородны), содержимым ячейки столбца не может быть таблица;

6. строки таблицы не имеют какой-либо упорядоченности и идентифицируются только своим содержимым (т.е. понятие "номер строки" не определено);

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

1. Описание

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

Изначально SQL был основным способом работы пользователя с базой данных и позволял выполнять следующий набор операций:

· создание в базе данных новой таблицы;

· добавление в таблицу новых записей;

· изменение записей;

· удаление записей;

· выборка записей из одной или нескольких таблиц (в соответствии с заданным условием);

· изменение структур таблиц.

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

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

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

· запросы на создание или изменение в базе данных новых или существующих объектов (при этом в запросе описывается тип и структура создаваемого или изменяемого объекта);

· запросы на получение данных;

· запросы на добавление новых данных (записей);

· запросы на удаление данных;

· обращения к СУБД.

Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы -- это операции над таблицами. В соответствии с этим, запросы делятся на:

· запросы, оперирующие самими таблицами (создание и изменение таблиц);

· запросы, оперирующие с отдельными записями (или строками таблиц) или наборами записей.

Каждая таблица описывается в виде перечисления своих полей (столбцов таблицы) с указанием

· типа хранимых в каждом поле значений;

· связей между таблицами (задание первичных и вторичных ключей);

· информации, необходимой для построения индексов.

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

· вставка новой строки;

· изменение значений полей строки или набора строк;

· удаление строки или набора строк.

Самый главный вид запроса -- это запрос, возвращающий (пользователю) некоторый набор строк, с которым можно осуществить одну из трёх операций:

· просмотреть полученный набор;

· изменить все записи набора;

· удалить все записи набора.

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

2. Примечание

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

На содержимое таблиц допустимо накладывать ограничения в виде:

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

2. запрета для какого-либо столбца (столбцов) иметь "пустые" (NULL) ячейки.

Ограничение в виде требования уникальности тесно связано с понятием ключа таблицы. Ключом таблицы называется столбец или комбинация столбцов, содержимое ячеек которого(ых) используется для прямого доступа ("быстрого" определения местоположения) к строкам таблицы. Различают ключи первичный (он может быть только единственным для каждой таблицы) и вторичные. Первичный ключ уникален и однозначно идентифицирует строку таблицы. Столбец строки, определенный в качестве первичного ключа, не может содержать "пустое" (NULL) значение в какой-либо своей ячейке. Вторичный ключ определяет местоположение, в общем случае, не одной строки таблицы, а нескольких "подобных" (в любом случае ускоряя доступ к ним, хотя не в такой степени как ключ первичный).

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

1. Проекция - построение новой таблицы из исходной путем включения в нее избранных столбцов исходной таблицы.

2. Ограничение - построение новой таблицы из исходной путем включения в нее тех строк исходной таблицы, которые отвечают некоторому критерию в виде логического условия (ограничения).

3. Объединение - построение новой таблицы из 2-ух или более исходных путем включения в нее всех строк исходных таблиц (при условии, конечно, что они подобны).

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

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

3. Основы синтаксиса языка SQL

"Программа" на языке SQL представляет собой простую линейную последовательность операторов языка SQL. Язык SQL в своем "чистом" виде операторов управления порядком выполнения запросов к БД (типа циклов, ветвлений, переходов) не имеет.

Операторы языка SQL строятся с применением:

* зарезервированных ключевых слов;

* идентификаторов (имен) таблиц и столбцов таблиц;

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

* идентификаторов (имен) операций и функций, используемых в выражениях.

Все ключевые слова, имена функций и, как правило, имена таблиц и столбцов представляются 7-мибитными символами кодировки ASCII (иначе говоря - латинскими буквами). В языке SQL не делается различия между прописными (большими) и строчными (маленькими) буквами, т.е., например, строки "SELECT", "Select", "select" представляют собой одно и то же ключевое слово.

Для конструирования имен таблиц и их столбцов допустимо использовать буквы, цифры и знак "_" (подчеркивание), но первым символом имени обязательно должна быть буква. Запрещено использование ключевых слов и имен функций в качестве идентификаторов таблиц и имен столбцов. Полный список ключевых слов и имен функций (а он весьма обширен) можно найти в документации на конкретную СУБД. Оператор начинается с ключевого слова-глагола (например, "CREATE" - создать, "UPDATE" - обновить, "SELECT" - выбрать и т.п.) и заканчивается знаком ";" (точка с запятой). Оператор записывается в свободном формате и может занимать несколько строк.

Допустимыми разделителями лексических единиц в операторе являются:

* один или несколько пробелов,

* один или несколько символов табуляции,

* один или несколько символов "новая строка".

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

* Прописными (большими) буквами (например, SELECT, FROM, WHERE) набраны зарезервированные слова.

* Курсивом (например, имя_табл, сложн_условие) набраны переменные (нетерминальные символы), подлежащие замене в реальном операторе конструкцией из терминальных символов (идентификаторов, знаков операций, имен функций и т.п.).

* В квадратные скобки ("[...]") заключается необязательная часть оператора, которую можно опустить при создании реального оператора (сами квадратные скобки в текст оператора не включаются).

* Вертикальная черта ("|") означает возможность выбора ("или") из двух или нескольких вариантов синтаксической конструкции (сама вертикальная черта в текст оператора не включается). Подчеркнутый вариант (например, в "[ALL | DISTINCT}") является умолчательным.

* Последовательность символов ", ..." обозначает возможность повторения произвольное количество раз (в том числе и нулевое) предшествующей запятой конструкции. Символ "," включается в реальный оператор в качестве разделителя перед каждым повторением конструкции.

К сожалению, разработчики реальных СУБД неаккуратно обращаются с требованиями стандартов языка SQL в части комментариев.

Поэтому комментарии при использовании в различных СУБД в текстах "программ" на языке SQL могут помечаться следующими способами:

* от двойного минуса ("--") до конца строки;

* от символа "#" до конца строки;

* между последовательностями "/*" и "*/" (стиль комментариев языка СИ).

4. Типы данных языка SQL

Типы данных, используемые в языке SQL для хранения информации в столбцах таблиц БД, весьма разнообразны.

К сожалению, производители конкретных реляционных СУБД считают своим долгом "улучшить" множество типов данных, регламентируемых стандартом, реализуя свои собственные версии и расширения.

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

* INT[(len)] - целое число длиной 4 байта, представляемое при выводе максимально len цифрами;

* SMALLINT[(len)] - целое число длиной 2 байта, представляемое при выводе максимально len цифрами;

* FLOAT[(len,dec)] - действительное число, представляемое при выводе максимально len символами с dec цифрами после десятичной точки;

* CHAR(size) - строка символов фиксированной длины размером size символов;

* VARCHAR(size) - строка символов переменной длины максимальным размером до size символов;

* BLOB (Binary Large OBject) - массив произвольных (двоичных) байтов (максимальный размер зависит от реализации, обычно это 65535 байт); этот тип данных может использоваться, например, для хранения изображений;

* DATE - астрономическая дата;

* TIME - астрономическое время.

Символьные константы (типа CHAR и VARCHAR) записываются как последовательности символов, заключенные в одиночные апострофы, например "brass" (латунь).

Десятичные константы (типа FLOAT) могут записываться в "научной" нотации как последовательности следующих компонент:

* знак числа;

* десятичное число с точкой;

* символ "е";

* знак ("+" или "-") показателя степени;

* целое число, играющее роль показателя степени числа 10.

Например, десятичное число -0,123 может быть записано как -12.3е-2.

Отличие типов данных CHAR и VARCHAR заключается в том, что для хранения в таблице строк символов типа CHAR используется точно size байт (хотя содержание хранимых строк может быть значительно короче), в то время как для строк типа VARCHAR незанятые символами строк ("пустые") байты в таблице не хранятся.

Подчеркнем, что величины len и dec (в отличие от size) не влияют на размер хранения данных в таблице, а только форматируют вывод данных из таблицы.

5. Основы языка SQL

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

SQL (Structured Query Language), или Структурированный Язык Запросов, - это язык, который дает возможность работать с данными в реляционных базах данных. Стандарт SQL определяется ANSI (Американским Национальным Институтом Стандартов), а также ISO (Международной организацией по стандартизации). Однако большинство коммерческих программ баз данных расширяют SQL, добавляя разные особенности в этот язык, которые, как они считают, будут полезны. Эти дополнения являются не стандартизированными и часто приводят к сложностям при переходе от одного сервера данных к другому.

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

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

Для выполнения SQL-запросов будем использовать SQL Management Studio. При запуске среды Management Studio появляется следующее окно (рис. 1).

Рис. 1. Задание параметров подключения

Задействуем подключение к серверу, находящемуся на локальном компьютере. Параметр "Проверка подлинности" задает аутентификацию при подключении к серверу - при выбранном значении "Проверка подлинности Windows" (Windows authentification) в качестве имени пользователя и пароля будут использованы системные параметры.

Если все сделано правильно, то появляется главное окно программы. Для перехода в режим запросов необходимо нажать кнопку "Создать запрос" (рис. 2).

Рис. 2. Переход в режим создания запросов

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

Команды определения данных языка SQL:

Пока мы познакомились только с работой некоторых команд языка SQL по извлечению таблиц и данных из таблиц, предполагая, что сами таблицы были созданы кем-то ранее. Это наиболее реальная ситуация, когда небольшая группа людей (проектировщики баз данных) создает таблицы, которые затем используются другими людьми. Эти команды относятся к области SQL, называемой DML (Data Manipulation Language, или Язык Манипулирования Данными). Тем не менее, существует специальная область SQL, называемая DDL (Data Definition Language, или Язык Определения Данных), которая специально работает над созданием объектов данных.

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

Пример команды create table:

create table ClientInfo (FirstName varchar(20), LastName varchar(20), Address varchar(20), Phone varchar(15)

Тип varchar предназначен для хранения символов не в кодировке Unicode. Число, указываемое в скобках, определяет максимальный размер поля и может принимать значение от 1 до 8000.

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

После выполнения этого запроса в окне "Сообщения" появляется сообщение: Команды выполнены успешно.

После перезапуска Management Studio в списке таблиц появилась новая таблица (рис. 3).

Рис. 3. Созданная таблица в базе данных

Итак, была создана таблица, состоящая из четырех полей типа varchar, причем для трех полей была определена максимальная длина 20 байт, а для одного - 15.

Значения полей не заполнены - на это указывает величина Null.

Можно удалить созданную таблицу непосредственно в интерфейсе Management Studio, щелкнув правой кнопкой и выбрав "Удалить".

Заключение

В представленной информации даны основные, базовые понятия языка SQL.

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

Литература

1. Дж. Мартин. Организация баз данных в вычислительных системах. - М.; Мир, 1980. - 662 с.

2. С.Д. Кузнецов. Стандарты языка реляционных баз данных SQL: краткий обзор. // СУБД, 1996, №2, с. 6-36.

3. Зенкевич О., Морган К. Конечные элементы и аппроксимации. - М.: Мир, 1979. - 318 с.

Размещено на Allbest.ru

...

Подобные документы

  • Язык структурированных запросов SQL (Structured Query Language) и его место в сфере доступа к информации в реляционных базах данных. Структура и основные типы данных языка. Синтаксис и семантика главных операторов SQL, последние стандарты языка.

    реферат [98,7 K], добавлен 29.03.2012

  • Исследование языка, основанного на реляционной алгебре, позволяющего манипулировать данными в реляционных БД. Характеристика создания, изменения структуры таблиц, выборки, изменения, добавления, удаления данных. Обзор составления запросов пользователей.

    реферат [25,6 K], добавлен 19.12.2011

  • Общие данные об основных операторах языка SQL. Интерактивный режим работы. Использование языка SQL для выбора информации из таблиц, для вставки, редактирования и удаления данных в них. Связь между операциями реляционной алгебры и операторами языка SQL.

    реферат [146,5 K], добавлен 06.02.2015

  • Ознакомление с основами расширяемого языка разметки Extensible Markup Language. Изучение основных правил создания XML-документа. Рассмотрение набора элементов языка, секций CDATA, директив анализатора, комментариев, спецсимволов, текстовых данных.

    презентация [400,9 K], добавлен 21.12.2014

  • Типы данных языка SQL, определенные стандартом ISO. Средства поддержки целостности данных. Введение ограничений для доменов. Разработка рабочего проекта для автосалона. Построение информационной схемы базы. Создание форм для занесения данных в таблицы.

    курсовая работа [2,5 M], добавлен 29.01.2012

  • Описание синтаксиса и семантики входного языка. Описание типов лексем, определение их синтаксиса. Построение диаграммы лексического анализатора, а также его таблицы, тестирование. Построение КС-грамматики входного языка. Описание промежуточного языка.

    курсовая работа [83,0 K], добавлен 23.01.2014

  • Работа с хранящейся в базах данных информацией. Язык описания данных и язык манипулирования данными. Распространение стандартизованных языков. Структурированный язык запросов SQL. Язык запросов по образцу QBE. Применение основных операторов языка.

    презентация [76,2 K], добавлен 14.10.2013

  • Различия между существующими диалектами SQL. Стандартизация языка SQL. Концепция баз данных. Эффективность организации данных. Структура языка SQL. Приближенные числовые типы. Интервальный тип данных. Обработка сложно структурированной информации.

    курсовая работа [50,7 K], добавлен 29.05.2014

  • Создание простого непроцедурного языка, которым может воспользоваться любой пользователь. Разработка языка запросов. Стандартный язык реляционных баз данных. Вопросы практического программирования. Фиксированный исполняемый код SQL и типы команд SQL.

    доклад [1,9 M], добавлен 12.01.2011

  • История создания языка Java. Основные принципы объектно-ориентированного программирования. Структура, особенности синтаксиса и примеры прикладных возможностей использования языка Java, его преимущества. Перспективы работы программистом на языке Java.

    курсовая работа [795,9 K], добавлен 14.12.2012

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

    курсовая работа [69,6 K], добавлен 30.11.2009

  • Классификация моделей построения баз данных. Работа с реляционными базами данных: нормализация таблиц, преобразование отношений полей, преобразование функциональной модели в реляционную. Понятие языка определения данных и языка манипуляции данными.

    реферат [123,0 K], добавлен 22.06.2011

  • Разработка программы конвертации синтаксиса одного языка высокого уровня на синтаксис другого. Особенности работы с классами, функциями, регулярными выражениями, формами. Использование для создания программы разных типов данных, массивов переменных.

    курсовая работа [567,9 K], добавлен 30.01.2016

  • Моделирование базы данных "Обязательное медицинское страхование" с использованием методологии IDEF1X. Разработка базы данных в программной среде FoxPro 9.0, с использованием языка программирования SQL. Описания хранимых в базе данных таблиц и запросов.

    курсовая работа [257,2 K], добавлен 15.03.2016

  • Ознакомление со структурой, комментариями, переменными и типами данных, константами, перечислениями, преобразованием типов языка программирования высокого уровня С++. Ключевые понятия языка, идентификаторы, ключевые слова, функции, операторы, выражения.

    контрольная работа [31,2 K], добавлен 12.12.2009

  • Изучение и анализ функциональных возможностей СУБД. Структура языка реляционных БД SQL (Structured Query Language). Типы данных SQL. Операторы DDL - операторы определения объектов базы данных. Примеры использования операторов манипулирования данными.

    курсовая работа [39,6 K], добавлен 21.07.2012

  • Лингвистическая концепция языка Паскаль. Интегрированная инструментальная оболочка. Основы построения программ на ТП 7.0. Алфавит языка и специфика использования символов. Простые типы данных: константы и переменные. Циклические конструкции и операции.

    курсовая работа [284,6 K], добавлен 02.07.2011

  • Объекты модели хранения данных базы данных ORACLE. Взаимосвязь между логическими структурами. Средства манипулирования данными языка SQL, данными языка SQL. Структура выполнения простейших запросов. Формирование критерия отбора. Сортировка данных.

    презентация [120,1 K], добавлен 14.02.2014

  • Определение понятия гипертекста. Основные части документа SGML. История создания стандартного языка разметки документов HTML. Отличия синтаксиса XHTML от HTML. RSS - семейство XML-форматов для описания лент новостей. Применение языка разметки KML.

    презентация [4,3 M], добавлен 15.02.2014

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

    презентация [192,3 K], добавлен 13.06.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.