Автор работы: Пользователь скрыл имя, 19 Ноября 2013 в 00:35, курсовая работа
При написании данной работы была рассмотрена структура языка SQL, а так же одна из большинства групп операторов SQL. При рассмотрении были, по возможности, приведены примеры для баз данных. Показаны: область применения и основные функции языка.
SQL является непроцедурным языком, построенным на использовании обычных английских слов (таких как SELECT, INSERT, DELETE). Он может применяться как профессионалами, так и рядовыми пользователями. Этот язык формально и фактически стал стандартным языком определения и манипулирования реляционными базами данных.
ВВЕДЕНИЕ 3
ОСНОВНАЯ ЧАСТЬ 6
1 ЯЗЫК SQL - ОСНОВНЫЕ ФУНКЦИИ И ВОЗМОЖНОСТИ 6
1.1 ИСТОРИЯ ЯЗЫКА SQL 6
1.2 СТАНДАРТИЗАЦИЯ УПРАВЛЕНИЯ И ОБМЕНА ДАННЫМИ 9
2 СТРУКТУРА ЯЗЫКА SQL 14
2.1 ТАБЛИЦЫ SQL 14
2.2 СТРУКТУРА ЗАПРОСОВ SQL 15
2.3 ОПЕРАТОРЫ SQL 21
2.4 ТРАНЗАКЦИИ В SQL 27
ЗАКЛЮЧЕНИЕ 29
ГЛОССАРИЙ 31
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 33
1.32.17.01.00.00 ISO/IEC AWI 20944 " Информационные технологии - Сервисы доступа к метаданным" (Information technology - Metadata Access Service).
WG03 - рабочая группа, разрабатывающая стандарт языка взаимодействия с базами данных. Круг вопросов, рассматриваемых WG03, включает развитие языка для описания структуры и содержания базы данных в многопользовательских и многосерверных средах. Рассматриваемые спецификации определяют стандартные типы данных, механизмы для создания новых типов данных, включая определения их поведения. Кроме того, рабочая группа занимается вопросами стандартизации интерфейса разрабатываемого языка с другими языками программирования, а также вопросами стандартизации типов данных и их поведения в рассматриваемом языке с другими языками представления и обработки данных. В число наиболее интересных проектов данной группы входят следующие:
1.32.03.05.09.00 ISO/IEC CD 9075-9 "ИТ- Язык SQL: Управление внешними данными" (Information technology - Database Languages - SQL - Part 9: Management of External Data (SQL/MED));
1.32.03.05.14.00 ISO/IEC WD 9075-14 "ИТ- Язык SQL: Взаимодействие SQL и ХМL" (Information technology --Database Language SQL - Part 14: SQL/XML (for SQL:200n)).
WG04 - рабочая группа, стандартизирующая пакеты абстрактных типов данных для использования в различных прикладных областях.
WG05 - рабочая группа, разрабатывающая стандарты в области взаимодействия приложений и баз данных, в которые включены вопросы удаленного доступа к данным и протоколы передачи данных. Среди наиболее интересных проектов группы отметим следующий:
1.32.05.04.00.00 ISO/IEC CD 9579 ed 4 "ИТ - Удаленный доступ к данным в SQL" (Information technology - Remote Database Access for SQL: (RDA/SQL). Edition 4).
В последнее время для
обмена данными и представления
информации все чаще используется язык
XML (eXtensible Markup Language). Этот язык не привязан
к какой-либо конкретной платформе или
к конкретному производителю. Первая спецификация
языка XML 1.0 получила статус рекомендации
консорциума W3C в 1998 г. Далее консорциум
W3C разработал и опубликовал ряд стандартов,
связанных с XML (Extensible Markup Language (XML) Version
1.0 (second edition):http://www.w3.org/TR/
Консорциум W3C, продолжая работу над стандартизацией XML, опубликовал рекомендации по DOM XML - объектной модели документа, представляющей XML-документ в виде объекта.
Вопросами стандартизации XML
также частично занимается OASIS (организация
по продвижению стандартов структурирования
информации - Organization for the Advancement of Structured
Information Standards: http://www.oasis-
Инженерной группой IETF был разработан стандарт SOAP (Simple Object Access Protocol), использующий язык XML, как язык для обмена данными. Фактически SOAP позволяет посредством применения XML реализовывать межплатформенный доступ к данным, связывая воедино применение таких технологий, как CORBA, EJB и COM.
Разрабатываемый в настоящее
время консорциумом W3C стандарт XQL (XML
Query Language:http://www.w3.org/TR/
В рамках WG3 32 подкомитета JTC1
также разрабатывается
Одним из наиболее значительных стандартов, разрабатываемых в настоящее время и предназначаемых для обмена данными, является стандарт ISO/IEC WD 9579, Fourth Edition "ИТ - удаленный доступ к базам данных для SQL" (Information Technology - Remote Database Access for SQL with Extended Security).
Рассматриваемый стандартRDA/SQL базируется на уже существующих следующих стандартах IETF (http://www.internic.net):
RFC 791 Internet Protocol;
RFC 793 Transmission Control Protocol;
RFC 819 The Domain Naming Convention for Internet User Applications;
RFC 1122 Requirements for Internet Hosts - Communication Layers;
RFC 1123 Requirements for Internet Hosts - Application and Support;
RFC 2246 The TLS Protocol.
RDA/SQL может быть использован для реализации удаленного доступа к СУБД, соответствующей стандарту ISO/IEC 9075 (Database Language SQL).
Стандарт RDA/SQL описывает
модель для удаленного взаимодействия
SQL-клиента с одним или
RDA/SQL устанавливает соответствие
RDA-протокола стандартным
В стандарте определяется RDA-модель среды SQL (рис 1.1.) и функциональные компоненты, составляющие среду RDA-клиента и среду RDA-сервера.
Рис. 1.1. RDA-модель среды SQL
RDA-модель определяет
Стандарт ISO/IEC 9075-3 (SQL/CLI) описывает
результирующий набор, определяемый на
стороне сервера, а стандарт RDA/SQL
описывает RDA-операторы, предназначаемые
для взаимодействия с результирующим
набором и соответствующие
2 Структура языка SQL
Все операторы языка SQL можно разделить на несколько типов:
Операторы манипулирования
данных - позволяют управлять
Операторы транзакций - определяют моменты времени в которые значения базы данных, измененные пользователями становятся актуальными (изменения сделанные одним пользователем вступают в силу для всех пользователей).
Операторы модификации данных
- позволяют создавать/удалять
Операторы защиты данных - позволяют авторизировать пользователей, давать им привилегии (разрешения на просмотр данных из одной или нескольких таблиц, изменение данных и т.д.).
Оператор запроса на получение данных - позволяет пользователю получить выбранные определенным образом, данные из одной или нескольких таблиц. Отдельной частью оператора запроса можно выделить оператор курсора - позволяет просматривать предварительно выбранные данные по одной строке.
Оператор ошибки - после выполнения последнего SQL запроса содержит код выполнения операции (код ошибки либо удачного выполнения).
Все используемые в языке SQL операторы представляют собой предложения, содержащие определенные операторы и их операнды. В некоторых операторах возможна вложенность нескольких операций.
Таким образом, пользователю необходимо сформировать текстовую строку, содержащую операторы SQL и с помощью функции используемого им языка программирования высокого уровня отправить этот запрос на SQL Server, хранящий базу данных. В результате от SQL Server придет ответ, содержащий запрошенные данные из одной или нескольких таблиц, удовлетворяющие условию запроса, отсортированные в нужном порядке, либо произведет запрашиваемые действия над данными.
2.1 Таблицы SQL
В реляционной базе данных информация организована в виде таблиц, разделённых на строки и столбцы, на пересечении которых содержатся значения данных.
Основными объектами реляционной базы данных являются:
(TABLE) Таблица - Прямоугольная
таблица, состоящая из строк
и столбцов. Задать таблицу –
значит указать, из каких
(ROW) Строка - Запись, состоящая
из полей – столбцов. В каждом
поле содержится его значение,
либо значение NULL – "пусто".
Строк в таблице может быть
сколько угодно. Физический порядок
их расположения друг
(COLUMN) Столбец - Каждый
столбец в таблице имеет
2.2 Структура запросов SQL
Все запросы на получение
практически любых данных из одной
или нескольких таблиц выполняются
с помощью единственного
В синтаксических конструкциях для обращения к БД используются следующие обозначения:
1) звездочка (*) для обозначения "все" – употребляется в обычном для программирования смысле, т.е. "все случаи, удовлетворяющие определению";
2) квадратные скобки ([]) – означают, что конструкции, заключенные в эти скобки, являются необязательными (т.е. могут быть опущены);
3) фигурные скобки ({}) – означают, что конструкции, заключенные в эти скобки, должны рассматриваться как целые синтаксические единицы, т.е. они позволяют уточнить порядок разбора синтаксических конструкций, заменяя обычные скобки, используемые в синтаксисе SQL;
4) многоточие (…) – указывает на то, что непосредственно предшествующая ему синтаксическая единица факультативно может повторяться один или более раз;
5) прямая черта (|) – означает наличие выбора из двух или более возможностей. Например, обозначение ASC|DESC указывает, можно выбрать один из терминов ASC или DESC; когда же один из элементов выбора заключен в квадратные скобки, то это означает, что он выбирается по умолчанию (так, [ASC]|DESC означает, что отсутствие всей этой конструкции будет восприниматься как выбор ASC);
6) точка с запятой (;) – завершающий элемент предложений SQL;
7) запятая (,) – используется для разделения элементов списков;
8) пробелы ( ) – могут вводиться для повышения наглядности между любыми синтаксическими конструкциями предложений SQL;
9) жирные прописные латинские
буквы и символы –
10) строчные буквы используются
для написания конструкций,
11) термины "таблица"
и "столбец" заменяют (с целью
сокращения текста
12) термин "таблица" - используется для обобщения таких видов таблиц, как базовая_таблица, представление или псевдоним; здесь псевдоним служит для временного (на момент выполнения запроса) переименования и (или) создания рабочей копии базовой_таблицы (представления).
В дальнейшем все примеры приводятся для базы данных приведенной в приложении.
Оператор SELECT осуществляет выборку из базы данных и имеет наиболее сложную структуру среди всех операторов языка SQL. Простейший оператор SELECT выглядит:
SELECT * FROM PC;
Он осуществляет выборку всех записей из объекта БД табличного типа с именем PC. При этом столбцы и строки результирующего набора не упорядочены. Чтобы упорядочить поля результирующего набора, их следует перечислить через запятую в нужном порядке после слова SELECT:
SELECT price, speed, hd, ram, cd, model, code
FROM Pc;
Вертикальную проекцию таблицы РC можно получить, если перечислить только необходимые поля. Например, чтобы получить информацию только о скорости процессора и объеме оперативной памяти компьютеров, следует выполнить запрос:
SELECT speed, ram FROM PC;
Следует отметить, что вертикальная
выборка может содержать
SELECT DISTINCT speed, ram FROM Pc;
Помимо DISTINCT может применяться также ключевое слово ALL (все строки), которое принимается по умолчанию. Чтобы упорядочить строки результирующего набора, можно выполнить сортировку по любому количеству полей, указанных в предложении SELECT. Для этого используется предложение ORDER BY , являющееся всегда последним предложением в операторе SELECT. При этом в списке полей могут указываться как имена полей, так и их порядковые позиции в списке предложения SELECT. Так если требуется упорядочить результирующий набор по объему оперативной памяти в порядке убывания, можно записать:
SELECT DISTINCT speed, ram
FROM Pc
ORDER BY ram DESC
Или
SELECT DISTINCT speed, ram
FROM Pc
ORDER BY 2 DESC
Сортировку можно проводить по возрастанию (параметр ASC принимается по умолчанию) или по убыванию (параметр DESC). Сортировка по двум полям:
SELECT DISTINCT speed, ram
FROM Pc
ORDER BY ram DESC, speed DESC
Горизонтальную выборку