Операторы языка sql реферат

Обновлено: 05.07.2024

При написании данной работы была рассмотрена структура языка 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 файл

Базы данных .docx

Основные данные о работе

Структура языка SQL

Основная часть 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

Список использованных источников 33

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

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

Базисным требованием к реляционным СУБД считается присутствие сильного и в это же время простого языка, дозволяющего исполнять все нужные пользователям операции. В в последнее время этим везде где только можно принятым языком стал язык реляционных БД SQL - Structured Query Language (сейчас регулярно название языка понимается как Standard Query Language) .

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

Следует отметить, что к плюсам языка SQL относится присутствие интернациональных стандартов. Первый международный стандарт был принят в 1989 г., и подходящая версия языка называется SQL-89. Данный эталон всецело поддерживается практически во всех прогрессивных коммерческих реляционных СУБД (к примеру, в Informix, Sybase, Ingres, DB2 и т.п.). Стандарт SQL-89 во множества долях имеет очень единый характер и дозволяет слишком обширное трактование. В данном стандарте полностью отсутствуют такие актуальные сегменты, как манипулирование схемой БД и динамический SQL. Почти все весомые аспекты языка согласно со стандартом определяются в реализации.

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

Осознавая неполноту стандарта SQL-89, на фоне окончания разработки данного стандарта эксперты разных компаний начали работу над стандартом SQL2. Данная работа помимо прочего длилась большое количество лет, было выпущено немного проектов стандарта, пока же, в конце концов, в начале марта 1992 г. не был выработан конечный проект стандарта (после этого стандарт и соответствующий язык стали именовать SQL-92). Данный стандарт значимо более полный и охватывает почти что все необходимые для реализации аспекты: манипулирование схемой БД, управление транзакциями и сессиями (сессия - это последовательность транзакций, в пределах которой сохраняются кратковременные отношения), подключение к БД, динамический SQL. В конце концов стандартизованы отношения-каталоги БД, собственно в общем-то не связано с языком непосредственно, хотя довольно в значительной степени влияет на реализацию. Заметим, что в стандарте представлены три уровня языка - базовый, промежуточный и полный. На протяжении пары лет после принятия стандарта производители СУБД, утверждавшие совместимость личных продуктов со стандартом, действительно в лучшем случае поддерживали промежуточный уровень языка SQL-92 (естественно, с собственными расширениями). Исключительно в последних выпусках СУБД ведущих производителей поддерживается совместимость с полным вариантом языка. В конце концов, сразу с завершением работ по определению стандарта SQL-92 была начата разработка стандарта SQL3. Совокупной позицией основных производителей СУБД будет то, что будущие продукты, обладая более развитыми возможностями, должны быть совместимы с предыдущими выпусками. Хотя почти все разработчики и пользователи реляционных СУБД понимают присутствие множества неустранимых дефектов языка SQL, от него сейчас уже невозможно отказаться (как нельзя отказаться от применения языка Си в процедурном программировании). Значит, необходим новый стандарт языка, обеспечивающий эти неоспоримо нужные возможности как характеризуемые пользователями разновидности данных, наиболее развитые средства определения таблиц, наличие полного механизма триггеров и так далее Необходим именно стандарт, а не наличие развитых приватных версий языка, так как данное интересно и производителям и пользователям СУБД.

1 Язык SQL – основные функции и возможности

1.1 История развития языка SQL

Основные вехи истории развития SQL:

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

СУБД System R - экспериментальная исследовательская система с языком SEQUEL (позже SQL), созданная IBM:

  • Полный реляционный язык БД
  • Операторы манипулирования БД
  • Средства определения и манипулирования схемой БД
  • Определение ограничений целостности
  • Определение представлений
  • Определение индексов
  • Авторизация доступа к отношениям и их полям
  • Точки сохранения транзакций и откаты

SQL в коммерческих реализациях:

1979 - Oracle (Relation Software Inc.- Oracle corp.;

1981-1982 - DB2 (IBM), Ingres - CA-OpenIngres (Relation Technology Inc. - Computer Associates)

1984 - Informix (Informix Sofrware);

1986 - Sybase (Sybase Corp.)

  • Реализован во всех коммерческих реляционных СУБД
  • Все фирмы провозглашают соответствие стандарту SQL
  • Реализованные диалекты очень близки
  • Путь "сверху вниз" - уточнение и упрощение SQL System R
  • Путь "снизу вверх" - от диалектов реализации различных фирм (наращивание возможностей, обычное отсутствие полного описания языка)
  • Все фирмы провозглашают соответствие стандарту SQL
  • Реализованные диалекты очень близки
  • Деятельность началась одновременно с появлением первых коммерческих реализаций
  • В качестве стандарта нельзя было использовать SQL System R(не было технической проработки, слишком сложно реализовать)
  • Нельзя было принять за стандарт коммерческий диалект (слишком различались)

Международный стандарт 1989 г.

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

Международный стандарт 1992 г.(SQL2)

  • Расширено манипулирование таблицами (Alter table, Drop table)
  • Манипулирование схемой БД (Users, Tables, Views, Columns, Domains, Table_priveleges, Table_constraints, , , )
  • Возможность управления доменами (Create domain имя char(25) . . .и при определении имен столбцов эти имена определяются через имена доменов)
  • Новые типы данных (Date, Time, Datetime, . . .) и новые функции
  • Управление транзакциями и сессиями (сессия - последовательность транзакций, в пределах которой сохраняются временные отношения)
  • Подключение к БД
  • Развитие динамического SQL

В 1995 г. стандарт был дополнен спецификацией интерфейса уровня вызова (Call-Level Interface - SQL/CLI). SQL/CLI представляет собой набор спецификаций интерфейсов процедур, вызовы которых позволяют выполнять динамически задаваемые операторы SQL. По сути дела, SQL/CLI представляет собой альтернативу динамическому SQL и послужил основой для создания повсеместно распространенных сегодня интерфейсов ODBC (Open Database Connectivity) и JDBC (Java Database Connectivity).

В 1996 г. к стандарту SQL/92 был добавлен еще один компонент - SQL/PSM (Persistent Stored Modules). Основная цель этой спецификации состоит в том, чтобы стандартизировать способы определения и использования хранимых процедур, т. е. специальным образом оформленных программ, включающих операторы SQL, которые сохраняются в базе данных, могут вызываться приложениями и выполняются внутри СУБД.

Стандарт SQL:1999 (SQL3)

Незадолго до завершения работ по определению стандарта SQL2 была начата разработка стандарта SQL3. Реально работу над новым стандартом удалось частично завершить только в 1999 г., и по этой причине (а также в связи с проблемой 2000 года) стандарт получил название SQL:1999.

1999 г. были приняты пять первых частей стандарта SQL: 1999. Первая часть (SQL/Framework) посвящена описанию концептуальной структуры стандарта: приводится развернутая аннотация следующих четырех частей.

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

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

Третью часть занимает уточненная по сравнению с SQL/92 спецификация SQL/CLI. В четвертой части специфицируется SQL/PSM - синтаксис и семантика языка определения хранимых процедур (стандарт синтаксиса триггеров и процедур). Наконец, в пятой части - SQL/Bindings - определяются правила связывания SQL для стандартных версий языков программирования FORTRAN, COBOL, PL/1, Pascal, Ada, C и MUMPS.

В стандарт SQL:1999 не вошли и существуют в виде отдельных стандартов:

  • стандарт управления распределенными транзакциями (SQL/Transaction);
  • стандарт поддержки темпоральных свойств данных (SQL/Temporal);
  • стандарт управления внешними данными (SQL/MED);
  • поддержка оперативной аналитической обработки (SQL/OLAP).

В конце 2003 г. был принят и опубликован новый вариант международного стандарта SQL:2003.

1.2 Стандартизация управления и обмена данными.

Международная организация стандартизации ISO в рамках 32 подкомитета JTC1 ("Data Management and Interchange") разрабатывает стандарты в области управления и обмена данными для локальных и распределенных информационных систем.

В круг вопросов, обсуждаемых SC32, входит рассмотрение моделей взаимодействия для существующих и появляющихся стандартов; определение структур и типов данных, семантики применения этих структур и типов; описание стандартов для языков, сервисов и протоколов, используемых для параллельного доступа и изменения данных, для обмена данными, а также для реализации хранения данных; стандартов на методы, языки, сервисы и протоколы, употребляемых для структурирования, организации и регистрации метаданных, а также других информационных ресурсов.

В рамках SC32 функционирует ряд рабочих групп:
WG01 - рабочая группа, специализирующаяся на выработке стандартов для идентификации и спецификации технологии формального описания разрабатываемых бизнес-сценариев и их компонентов, а также других стандартов, используемых в области электронной коммерции.

WG02 - рабочая группа, разрабатывающая и развивающая стандарты по спецификации и управлению метаданными, обмену метаданными в различных средах (Internet, Intranet ив других средах). В число наиболее интересных проектов данной группы входят следующие:

1.32.16.01.02.00 ISO/IEC AWI 20943-2 "Информационные технологии - Применение XML структурированных данных для процедуры регистрации данных" (Information technology - Procedure for Achieving Data Registry Content Consistency - XML Structured Data). Де-факто язык XML уже используется WEB-серверами как язык описания дескриптора доставки модулей, располагаемых и регистрируемых на сервере.

Содержимое работы - 1 файл

Язык запросов SQL.docx

Язык запросов SQL.

SQL является непроцедурным языком и не содержит операторов управления, организации подпрограмм, ввода-вывода и т.п. В связи с этим SQL автономно не используется, обычно он погружен в среду встроенного языка программирования СУБД (например, FoxPro СУБД Visual FoxPro, ObjectPAL СУБД Paradox, Visual Basic for Applications СУБД Access).

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

Язык SQL не обладает функциями полноценного языка разработки, а ориентирован на доступ к данным, поэтому его включают в состав средств разработки программ. В этом случае его называют встроенным SQL. Стандарт языка SQL поддерживают современные реализации следующих языков программирования: PL/1, Ada, С, COBOL, Fortran, MUMPS и Pascal.

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

Различают два основных метода использования встроенного SQL: статический и динамический.

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

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

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

История. Первые разработки.

Целью разработки было создание простого непроцедурного языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования. Собственно разработкой языка запросов занимались Дональд Чэмбэрлин (Donald D Chamberlin) и Рэй Бойс (Ray Boyce). Пэт Селинджер (Pat Selinger) занималась разработкой стоимостного оптимизатора (cost - based optimizer), Рэймонд Лори (Raymond Lorie) занимался компилятором запросов.

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

Первыми СУБД, поддерживающими новый язык, стали в 1979 году Oracle V2 для машин VAX от компании Relational Software Inc. (впоследствии ставшей компанией Oracle ) и System/38 от IBM, основанная на System/R.

Стандартизация.

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

Стандарт SQL1 разделялся на два уровня. Первый уровень представлял собой подмножество второго уровня, описывавшего весь документ в целом. То есть, такая структура предусматривала, что не все спецификации стандарта SQL1 будут относиться к Уровню 1. Тем самым, поставщик, заявлявший о поддержке данного стандарта, должен был заявлять об уровне, которому соответствует его реализация языка SQL. Это значительно облегчило принятие и поддержку стандарта, поскольку производители могли реализовывать его поддержку в два этапа.

Сразу после завершения работы над стандартом SQL1 в 1987 году была начата работа над новой версией стандарта, который должен был заменить стандарт SQL89, получив название SQL2, поскольку дата принятия документа на тот момент была неизвестна. Таким образом, фактически SQL89 и SQL2 разрабатывались параллельно. Новая версия стандарта была принята в 1992 году, заменив стандарт SQL89. Новый стандарт, озаглавленный как SQL92, представлял собой по сути расширение стандарта SQL1, включив себя множество дополнений имевшихся в предыдущих версиях инструкций.

SQL1 Уровень 1 -> SQL1 Уровень 2 -> SQL92 "Начальный" -> SQL92 "Средний" -> SQL92 "Полный".

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

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

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

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

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

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

  • запросы на создание или изменение в базе данных новых или существующих объектов (при этом в запросе описывается тип и структура создаваемого или изменяемого объекта);
  • запросы на получение данных;
  • запросы на добавление новых данных (записей)
  • запросы на удаление данных;
  • обращения к СУБД.

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

1.4 Операторы модификации данных…………………………………. …. 17

1.5 Транзакции в SQL……………………………………………………….….24

1.6 Защита данных………………………………………………………….…. 25

1.7 Обработка ошибок…………………………………………………………..27

Заключение……………………………………………………………. …………29

Список использованной литературы…………………………………………..30

Приложение А……………………………………………………………………..31

Введение

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

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

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

Язык для взаимодействия с БД SQL появился в середине 70-х и был разработан в рамках проекта экспериментальной реляционной СУБД System R. Исходное название языка SEQUEL (Structered English Query Language) только частично отражает суть этого языка. Конечно, язык был ориентирован главным образом на удобную и понятную пользователям формулировку запросов к реляционной БД, но на самом деле уже являлся полным языком БД, содержащим помимо операторов формулирования запросов и манипулирования БД средства определения и манипулирования схемой БД. В языке отсутствовали средства синхронизации доступа к объектам БД со стороны параллельно выполняемых транзакций: с самого начала предполагалось, что необходимую синхронизацию неявно выполняет система управления базами данных СУБД [1, с.7].

После появления на рынке двух пионерских СУБД – SQL/DS (1981 год) и DB2 (1983 год) – он приобрел статус стандарта де-факто для профессиональных реляционных СУБД. В 1987 году SQL стал официальным международным стандартом языка баз данных, а в 1992 году вышла вторая версия этого стандарта.

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

При создании языка запросов нового поколения разработчики старались сделать его простым и легким в освоении инструментом для обращения к БД. В итоге SQL стал слабо структурированным языком, особенно по сравнению с такими языками, как С или Pascal, и в то же время достаточно мощным и относительно легким для изучения [1, с.9].

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

1. SQL

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

На рисунке 1 изображена схема работы SQL.

Рисунок 1 - Схема работы SQL

Согласно этой схеме, в вычислительной системе имеется база данных, в которой хранится важная информация. Если пользователю необходимо прочитать данные из базы данных, он запрашивает их у SQL с помощью СУБД. SQL обрабатывает запрос, находит требуемые данные и посылает их пользователю. Процесс запрашивания данных и получения результата называется запросом к базе данных: отсюда и название — структурированный язык запросов [2, с.103] .

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

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

Чтение данных. SQL дает пользователю или приложению возможность читать из базы данных содержащиеся в ней данные и пользоваться ими.

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

Управление доступом. С помощью SQL можно ограничить возможности пользователя по чтению и изменению данных и защитить их от несанкционированного доступа.

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

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

1.1 Таблицы SQL

В реляционной базе данных информация организована в виде таблиц , разделённых на строки и столбцы, на пересечении которых содержатся значения данных [1, с.215].

Основными объектами реляционной базы данных являются:

(TABLE) Таблица - Прямоугольная таблица, состоящая из СТРОК и СТОЛБЦОВ. Задать таблицу – значит указать, из каких столбцов она состоит.

(COLUMN) Столбец - Каждый столбец в таблице имеет собственные имя и тип.

1.2 Структура языка SQL

Все операторы языка SQL можно разделить на несколько типов:

Операторы манипулирования данных - позволяют управлять значениями, представляемыми в таблицах.

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

Операторы модификации данных - позволяют создавать/удалять базовые таблицы и изменять их структуру (добавлять столбцы, связи между таблицами).

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

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

Оператор ошибки - после выполнения последнего SQL запроса содержит код выполнения операции (код ошибки либо удачного выполнения).

Все используемые в языке SQL операторы представляют собой предложения, содержащие определенные операторы и их операнды. В некоторых операторах возможна вложенность нескольких операций [3, с.42].

1.3 Структура запросов SQL

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

В синтаксических конструкциях для обращения к БД используются следующие обозначения:

2) квадратные скобки ([]) – означают, что конструкции, заключенные в эти скобки, являются необязательными (т.е. могут быть опущены);

3) фигурные скобки (<>) – означают, что конструкции, заключенные в эти скобки, должны рассматриваться как целые синтаксические единицы, т.е. они позволяют уточнить порядок разбора синтаксических конструкций, заменяя обычные скобки, используемые в синтаксисе SQL;

4) многоточие (…) – указывает на то, что непосредственно предшествующая ему синтаксическая единица факультативно может повторяться один или более раз;

5) прямая черта (|) – означает наличие выбора из двух или более возможностей. Например, обозначение ASC|DESC указывает, можно выбрать один из терминов ASC или DESC; когда же один из элементов выбора заключен в квадратные скобки, то это означает, что он выбирается по умолчанию (так, [ASC]|DESC означает, что отсутствие всей этой конструкции будет восприниматься как выбор ASC);

6) точка с запятой (;) – завершающий элемент предложений SQL;

7) запятая (,) – используется для разделения элементов списков;

8) пробелы ( ) – могут вводиться для повышения наглядности между любыми синтаксическими конструкциями предложений SQL;

9) жирные прописные латинские буквы и символы – используются для написания конструкций языка SQL и должны (если это специально не оговорено) записываться в точности так, как показано-……..;

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

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

Оператор SELECT осуществляет выборку из базы данных и имеет наиболее сложную структуру среди всех операторов языка SQL. Простейший оператор SELECT выглядит:

SELECT * FROM PC;

Он осуществляет выборку всех записей из объекта БД табличного типа с именем PC. При этом столбцы и строки результирующего набора не упорядочены. Чтобы упорядочить поля результирующего набора, их следует перечислить через запятую в нужном порядке после слова SELECT:

Данный запрос вычислит средний балл студентов по результатам сдачи экзамена с кодом 10. В дополнение к рассмотренным механизмам язык SQL предоставляет мощный аппарат для вычисления агрегатных функций не для всей таблицы результатов запроса, а для разных значений по группам. Для этого в SQL существует специальная конструкция GROUP BY, предназначенная для указания того столбца, по значениям… Читать ещё >

Общая характеристика операторов языка SQL ( реферат , курсовая , диплом , контрольная )

Общие данные об основных операторах языка SQL

Интерактивный режим работы с SQL

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

Язык SQL и алгебраические операции

Список источников информации

ВВЕДЕНИЕ

В реферате дается общая характеристика операторов языка SQL, используемых, в частности, для работы с базой данных в интерактивном режиме (создание таблиц, выбор информации из таблиц, добавление, удаление и модификация элементов). Приводятся примеры запросов к базе данных на языке SQL. Тема является актуальной, потому что язык SQL очень удобен для работы с базами данных.

Объект исследования — язык SQL.

Предмет исследования — операторы языка SQL, интерактивный SQL.

Цель исследования — дать общую характеристику операторов языка SQL и показать, как записываются основные запросы к базе данных на языке SQL (в интерактивном режиме).

Для достижения поставленной цели в данной работе необходимо рассмотреть ряд задач:

— рассказать, что собой представляет язык SQL;

— дать понятие интерактивного режима работы с SQL;

— рассмотреть основные операторы SQL;

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

Для полного и всестороннего рассмотрения темы работы, а также в качестве источника для добывания фактического материала в работе будут использованы некоторые научные методы исследования, в частности метод изучения и анализа научной литературы.

оператор язык данный таблица ХАРАКТЕРИСТИКА ЯЗЫКА

SQL (Structured Query Language — Структурированный язык запросов) — язык управления базами данных для реляционных баз данных. Сам по себе SQL не является Тьюринг-полным языком программирования, но его стандарт позволяет создавать для него процедурные расширения, которые расширяют его функциональность до полноценного языка программирования.

Первый официальный стандарт языка был принят ANSI в 1986 году и ISO — в 1987. С тех пор были созданы еще несколько версий стандарта, некоторые из них повторяли предыдущие с незначительными вариациями, другие принимали новые существенные черты.

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

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

SQL состоит из четырех отдельных частей:

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

язык манипуляции данными (DML) используется для извлечения и изменения данных в БД. Операторы DML позволяют извлекать, вставлять, изменять и удалять данные в таблицах. Иногда операторы select извлечения данных не рассматриваются как часть DML, поскольку они не изменяют состояние данных. Все операторы DML носят декларативный характер.

язык определения доступа к данным (DCL) используется для контроля доступа к данным в БД. Операторы DCL применяются к привилегиям и позволяют выдавать и отбирать права на применение определенных операторов DDL и DML к определенным объектам БД.

язык управления транзакциями (TCL) используется для контроля обработки транзакций в БД. Обычно операторы TCL включают commit для подтверждения изменений, сделанных в ходе транзакции, rollback для их отмены иsavepoint для разбиения транзакции на несколько меньших частей.

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

ОБЩИЕ ДАННЫЕ ОБ ОСНОВНЫХ ОПЕРАТОРАХ ЯЗЫКА SQL

Как уже отмечалось в " Программное обеспечение работы с современными базами данных" , все операторы языка SQL разделяются на три составные части: DDL — язык определения данных, DCL — язык управления данными, DML — язык обработки данных.

Операторы разграничения доступа пользователей к объектам базы данных (DCL).

GRANT — создание в системе безопасности записи, разрешающей пользователю работать с данными или выполнять определенные операции SQL.

DENY — создание в системе безопасности записи, запрещающей доступ для определенной учетной записи.

Операторы определения данных (язык DDL).

Соответствующие операторы предназначены для создания, удаления, изменения основных объектов модели данных реляционных СУБД: таблиц, представлений, индексов.

CREATE TABLE - создание новой таблицы в базе данных.

DROP TABLE - удаление таблицы из базы данных.

ALTER TABLE - изменение структуры существующей таблицы или ограничений целостности, задаваемых для данной таблицы.

При выполнении аналогичных операций с представлениями или индексами в указанных операторах вместо служебного слова TABLE записывается слово VIEW (представление) или слово INDEX (индекс) Операторы манипулирования данными (язык DML).

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

UPDATE — изменение значений определенных полей в строках таблицы, удовлетворяющих заданным условиям.

INSERT — вставка новых строк в таблицу.

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

ИНТЕРАКТИВНЫЙ РЕЖИМ РАБОТЫ С SQL

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

устанавливает соединение с БД (подтверждая наличие прав доступа);

вводит соответствующий оператор SQL, при необходимости в режиме диалога вводит дополнительную информацию;

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

Текст запроса поступает в СУБД, которая:

осуществляет синтаксический анализ запроса (проверяет, является ли запрос корректным);

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

выбирает, каким образом осуществлять выполнение запроса — план выполнения запроса;

результат выполнения отсылает пользователю.

Схема взаимодействия пользователя и СУБД с использованием интерактивного SQL приводится на рисунке № 1.

ИСПОЛЬЗОВАНИЕ ЯЗЫКА SQL ДЛЯ ВЫБОРА ИНФОРМАЦИИ ИЗ ТАБЛИЦ Выборка данных осуществляется с помощью оператора SELECT, который является самым часто используемым оператором языка SQL. Синтаксис оператора SELECT имеет следующий вид:

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

Ключевое слово ALL означает, что результатом будут все строки, удовлетворяющие условию запроса, в том числе и одинаковые строки. DISTINCT означает, что в результирующий набор не включаются одинаковые строки. Далее идет список атрибутов исходной таблицы, которые будут включены в таблицу-результат. Символ * означает, что в таблицу-результат включаются все атрибуты исходной таблицы.

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

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

Ключевое слово ORDER BY задает операцию упорядочения строк таблицы-результата по указанному списку атрибутов [10, "https://referat.bookap.info"].

В предложении с ключевым словом GROUP BY задается список атрибутов группировки (разъяснение этого и последующего ключевого слова будет представлено немного позднее).

В предложении HAVING задаются условия, накладываемые на каждую группу.

Отдельно отметим, что ключевые слова FROM, WHERE, ORDER BY используются аналогичным образом и в других операторах манипулирования данными языка SQL.

Выдать список всех студентов.

SELECT id_st, surname

Заметим, что если добавить к данному запросу предложение ORDER BY surname, то список будет упорядочен по фамилии. По умолчанию подразумевается, что сортировка производится по возрастанию. Если необходимо упорядочение по убыванию, после имени атрибута добавляется слово DESC.

SELECT id_st, mark

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

В предложении WHERE можно записывать выражение с использованием арифметических операторов сравнения ( , и т. д. ) и логических операторов (AND, OR, NOT) как и в обычных языках программирования.

SELECT id_st, mark

WHERE (MARK >= 2) AND (MARK 'И'

Для обновления данных используется команда UPDATE.

WHERE id_st = 100 AND id_ex = 10

ЯЗЫК SQL И АЛГЕБРАИЧЕСКИЕ ОПЕРАЦИИ Язык SQL является средством выражения мощного математического аппарата теории множеств и реляционной алгебры. В данном разделе рассматривается связь операторов языка SQL с операциями реляционной алгебры и теории множеств.

Операция объединения Средствами языка SQL операция объединения представляется следующим образом:

Операция разности Средствами языка SQL операция разности представляется следующим образом:

SELECT Fieldi1, …, Fieldin

Операция выборки (селекции)

Операция естественного соединения Пусть есть отношения A (X1, …, Xn, A1, …, Am) и B (X1, …, Xn, B1, …, Br).

SELECT A. X1, …, A. Xn, A. A1, …, A. Am, B. B1, …, B. Br

WHERE (A.X1 = B. X1) AND … AND (A.Xn = B. Xn)

ВЫВОД В реферате дается общая характеристика операторов языка SQL, используемых, в частности, для работы с базой данных в интерактивном режиме (создание таблиц, выбор информации из таблиц, добавление, удаление и модификация элементов). Дается понятие интерактивного режима работы с SQL. Рассматриваются основные операторы SQL, используемые для манипулирования данными (выбор информации из таблиц, добавление, удаление и модификация элементов). Приводятся примеры записи запросов к базе данных на языке SQL с использованием операторов select, insert, update, delete. Рассматривается связь между операциями реляционной алгебры и операторами языка SQL. Задачи исследования выполнены.

Читайте также: