Классификация операторов языка

Лекция 12. Введение в SQL

Цель занятия: усвоить познания о предназначении языка SQL; об главных командах языка.

План

  1. Предназначение языка, систематизация операторов.
  2. Структура команды языка.
  3. Работа SQL со обилием юзеров.

Предназначение языка, систематизация операторов

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

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

Язык SQL был сотворен сначала 70-х годов в итоге исследовательского проекта IBM, целью которого была разработав Классификация операторов языка языка манипуляции реляционными данными. Сначало он именовался SEQUEL (Structured English Query Language), потом — просто SQL. Официальный эталон SQL был размещен ANSI (American National Standards Institute - Южноамериканский государственный институт стандартизации) в 1981 году, и это более нередко применяемая сейчас реализация SQL. Данный эталон был расширен в 1989 и 1992 годах, потому последний Классификация операторов языка эталон SQL носит заглавие SQL92. В текущее время ведется работа над эталоном SQL3, содержащим некие объектно-ориентированные расширения.

Существует три уровня соответствия эталону ANSI: исходный, промежный и полный. Многие производители серверных СУБД такие как IBM, Informix, Microsoft, Oracle и Sybase, используют собственные реализации SQL, основанный на эталоне ANSI (отвечающие как минимум исходному Классификация операторов языка уровню соответствия эталону) и содержащие некие расширения, специальные для той либо другой СУБД.

Систематизация операторов языка

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

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

Data Definition Language (DDL)содержит операторы, дозволяющие создавать, изменять и уничтожать базы данных и объекты снутри их (таблицы, представления и др)

Create Table - Добавление Классификация операторов языка новейшей таблицы к базе

Drop Table - Удаление таблицы из базы данных

Alter Table - Изменение структуры имеющейся таблицы

Create View - Добавление нового представления к базе данных

Drop View - Удаление представления из базы данных

Create Index - Создание индекса для данного поля

Drop Index - Удаление имеющегося индекса

CREATE SCHEMA - Создание новейшей схемы в базе данных

Data Manipulation Language (DML Классификация операторов языка)содержит операторы, дозволяющие выбирать, добавлять, удалять и видоизменять данные. Направьте внимание на то, что эти операторы не непременно должны завершать транзакцию, снутри которой or. вызваны.

Insert - Добавление строк к таблице

Delete - Удаление строк из таблицы

Update - Изменение данных

Время от времени оператор SELECT относят к отдельной категории, именуемой Data Query Language (DQL Классификация операторов языка).J

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

Grant - Присвоение привилегии.

Revoke - Отмена привилегии.

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

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

Пример:

Update Поставщик set[Адрес]=’Правды, 8а’,[Город]=’Витебск’ where [Название Классификация операторов языка]=’МИТСО’

Каждый оператор SQL начинается с глагола, представляющего из себя ключевое слово, которое определяет, что конкретно делает этот оператор (SELECT, INSERT, DELETE...). В операторе содержатся также предложения, содержащие сведения о том, над какими данными выполняются операции. Каждое предложение начинается с ключевика, такового как FROM, WHERE к др. Структура предложения находится в зависимости от Классификация операторов языка его типа: ряд предложений содержит имена таблиц либо полей, некие могут содержать дополнительные ключевики, константы либо выражения.

Все современные серверные СУБД (также многие пользующиеся популярностью настольные СУБД) содержат в собственном составе утилиты, дозволяющие выполнить SQL-предложение и просмотреть итог. А именно, клиентская часть СУБД Oracle содержит в собственном составе утилиту Классификация операторов языка SQL Plus, a Microsoft SQL Server — утилиту SQL Query Analyzer. В принципе, можно использовать иную базу данных и всякую другую утилиту, способную делать в этой базе данных SQL-предложения и показывать результаты (либо даже написать свою, используя какое-либо средство разработки — Visual Basic, Delphi, C++Builder и др.). В Классификация операторов языка любом случае, перед тем как начать экспериментировать с базой данных следует, сделать ее запасную копию.

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

SELECTперечень Классификация операторов языка отбираемых полейFROMперечень таблиц, из которых отбираются поля[WHEREусловия отбора] [ORDER BYпорядок сортировки]

SELECT должны содержать слова SELECT и From. Другие ключевики, такие как WHERE либо ORDER By, являются необязательными.

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

SELECT*

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

SELECT CompanyName, ContactName, Contacttrtle

Если выбор данных осуществляется из нескольких таблиц, то имена полей указывают с именами таблиц, из которых они взяты. Имя поля отделяется от имени таблицы знаком точка (SELECT Customers.CompanyName, Shippers.CompanyName).

Для указания имен таблиц, из которых выбираются Классификация операторов языка записи, применяется ключевое слово FROM, к примеру:

Select * From Customers

Этот запрос вернет все поля из таблицы Customers.

Если в запросе употребляются более одной таблицы, то имена таблиц делят знаком запятая (SELECT Customers.CompanyName, Shippers.CompanyName FROM Customers, Shippers).

Для фильтрации результатов, возвращаемых оператором SELECT, можно использовать предложение WHERE:

WHERE выражение1 [{AND OR Классификация операторов языка} выражение2 [...]]

К примеру, заместо получения полного перечня товаров можно ограничиться только теми из их, у каких значение поля CategorylD равно 4:

SELECT * FROM Products WHERE CategorylD = 4

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

SELECT * FROM Products

WHERE CategorylD = 2 AND SupplierlD > 10

либо:

SELECT ProductName, UnitPrice FROM Products WHERE CategorylD Классификация операторов языка = 3 OR UnitPrice < 50

либо:

SELECT ProductName, UnitPrice FROM Products WHERE Discontinued IS NOT NULL

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

В предложении WHERE можно использовать один из 6 операторов сопоставления, определенных в SQL (< >= ). Кроме вышеперечисленных обычных операторов сопоставления можно использовать и особые операторы cpaвнения Классификация операторов языка,

Особые операторы сопоставления

ALL Применяется вместе с операторами сопоставления при сопоставлении со перечнем значений
ANY Применяется вместе с операторами сопоставления при сопоставлении со перечнем значений
BETWEEN Используется при проверке нахождения значения интервала снутри данного (включая его границы)
IN Применяется для проверки наличия значения в перечне
LIKE Используется при Классификация операторов языка данной маске проверки соответствия значения

Приведем несколько примеров внедрения этих операторов. Для сравнения данных с маской применяется ключевое слово LIKE:

SELECT CompanyName, ContaclName FROM Customers WHERE CompanyName LIKE 'M*'

В данной маске знак * (звездочка) подменяет всякую последовательность знаков, а знак «?» (вопрос) может поменять один хоть какой знак.

Предложение ORDER Классификация операторов языка BY (необязательное) применяется для сортировки результирующего набора данных по одному либо нескольким полям. Для определения порядка сортировки употребляются ключевики ASC (по возрастанию) либо DESC (по убыванию). По дефлоту данные сортируются по возрастанию. Синтаксис предложения ORDER BY имеет вид:

ORDER BY полеl [(ASC DESC}] ,поле2 [ASC ] [,...]

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

SELECT LastName, FirstName, Title

FROM Employees

ORDER BY LastName, FirstName

Если требуется отсортировать данные в убывающем порядке (к примеру, нужен перечень товаров в порядке убывания цен), употребляется ключевое слово DESC:

SELECT ProductName, UnitPrice

FROM Products

ORDER BY UnitPrice DESC

Связывание таблиц

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

SELECT ProductName, CategoryName FROM Products, Categories

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

SELECT ProductName, CategoryName

FROM Products, Categories

WHERE Products.CategorylD = Categories.CategorylD

Для наглядности можно сопоставить результаты этих 2-ух запросов.

В Классификация операторов языка общем случае синтаксис для связывания таблиц имеет вид:

SELECT column-list

FROMtable1,table2

WHERE table! .column 1=table2.column2

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

GROUP BY {поле1} [,...]

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

SELECT Customers.CustomerlD,

COUNT (Orders. OrderlD) AS OrdersCount

FROM Customers INNER JOIN Orders

ON Customers.CustomerlD = Orders.CustomerlD

GROUP BY Customers.CustomerlD

ORDER BY OrdersCount DESC

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

Кроме вышеперечисленных агрегатных функций можно использовать также математические и строковые функции, приведенные ниже:

Avg - Вычисляет среднее

Count - Вычисляет количество непустых значений в данной колонке

Max - Вычисляет наибольшее значение в колонке

Min - Вычисляет меньшее значение в колонке

Sum - Вычисляет сумму значений в колонке

Математические и строковые функции SQL:


klassifikaciya-nezhelatelnih-effektov-ls.html
klassifikaciya-norm-prava-po-yuridicheskoj-sile.html
klassifikaciya-notno-muzikalnih-dokumentov.html