Создание запросов на языке sql

Создание запросов на языке sql

Формирование запросов на языке SQL предполагает ввод команд с клавиатуры в строгом соответствии с их форматами. Для описания форматов команд (иногда усеченных) будем использовать следующие соглашения:

ü угловые скобки ( ). То, что в них указано, определяет пользователь;

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

ü фигурные скобки ( < >). Заключенная в эти скобки часть команды может быть повторена несколько раз;

ü круглые скобки ( ). В них заключаются аргументы команды;

ü вертикальная черта (). Означает альтернативный выбор.

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

Создание таблицы. Обновление данных

Запрос на описание полей таблицы (т. е. на создание ее структуры) на языке SQL реализуется с помощью команды CREATE TABLE формата:

CREATE TABLE

Некоторые из ограничений на поля: NOT NULL ( поле, для которого указано это ограничение, не допускает значений NULL); UNIQUE ( поле, для которого указано это ограничение, не допускает повторяющихся значений); PRIMARY KEY (поле, для которого это ограничение задано, должно выступать в роли первичного ключа); CHECK (позволяет определить условие, которому должны удовлетворять вводимые в поле значения). Ограничения на таблицу применяются к группам, состоящим из нескольких полей, и задаются определенными ключевыми словами. Значение поля по умолчанию указывается при помощи ключевого слова DEFAULT.

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

Имена полей НОМЗ (№ зачетки) ФИО ГОД ПОЛ
Типы данных Целые числа Текст Целые числа Текст
Размеры полей
Типы данных на языке SQL INT CHAR(15) INT CHAR(7)

Пример. Запрос на создание структуры таблицы Сведения имеет вид:

CREATE TABLE Сведения

Первичное заполнение таблицы и добавление к ней записей осуществляется с помощью команды INSERTформата:

Если имена полей не указаны, то значениями заполняются поля, состав и порядок которых был описан командойCREATE TABLE. Значения полей задаются константами (выражения не допустимы).

Пример. Запрос на заполнение полей таблицы Сведения конкретными значениями:

INSERT INTO Сведения

VALUES (980101, " ИВАНОВ И. И.", 1980, "МУЖСКОЙ");

Запрос на изменение значений полей таблицы реализуется с помощью командыUPDATE, имеющей формат:

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

Пример. Запрос на изменение в таблице Сведения фамилии и инициалов студентки, у которой номер зачетной книжки 980201, на Кравцова И.И. :

UPDATE Сведения

SET ФИО = "КРАВЦОВА И. И."

Запрос на удаление записей из таблицы формируется с помощью команды DELETE формата:

DELETEFROM

Если предложение WHERE отсутствует, то удаляются все записи таблицы.

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

DELETEFROM Сведения

Формирование запросов выбора

Для выбора информации из таблиц используется команда SELECT формата:

SELECT [DISTINCT ALL] < >. *

Частным случаем выражения является поле. Команда SELECT позволяет выводить все поля (*) или некоторые по указанному списку из (FROM) заданной таблицы по некоторому условию (WHERE). Выводить можно все значения полей (ALL) или только неповторяющиеся (DISTINCT). При этом возможны сортировка записей (ORDER BY) по возрастанию (ASC) или убыванию (DESC), их группировка (GROUP BY) по некоторым полям, исключение определенных результирующих групп (HAVING).

Команда SELECT дает возможность проведения вычислений над полями, а также итоговых вычислений с использованием функций агрегирования SUM, AVG, COUNT, MAX, MIN. Она позволяет также создавать вложенные запросы.

Пример 1. Запрос на выбор из таблицы Сведения данных о студентах мужского пола:

SELECT *

Пример 2. Запрос на выбор из таблицы Сведения данных о студентах, у которых год рождения больше или равен 1977 и меньше или равен 1980:

Читайте также:  Руне оф магик официальный сайт

SELECT *

WHERE ГОД>= 1977 AND ГОД

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

Практическая работа №9

Тема занятия: Создание запросов SQL.

Цель занятия : Научиться использовать язык SQL для создания запросов.

План занятия:

1. Создание SQL запросов на выборку.

2. Создание SQL запросов на выборку с условием отбора.

3. Создание SQL запросов с вычислением.

4. Создание SQL запросов на группировку.

SQL (Structured Query Language) – структурированный язык запросов, предоставляющий средства создания и обработки данных в БД.

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

    Создать запрос с помощью конструктора.

· В конструкторе запросов щелкнете правой кнопкой мыши в области отображения таблиц и в контекстном меню выберите «Режим SQL».

1. Создание SQL запросов на выборку.

Создадим простейший запрос на выборку товаров и заказов на эти товары с помощью SQL.

· Откройте редактор SQL запросов.

· В окно редактора впишите следующую процедуру запроса

SELECT Заказы.[Код заказа], Товары.[Наименование товара], Заказы. Количество, Товары. Цена, Товары.[Еденица измерения], Заказы.[Дата заказа]

FROM Товары INNER JOIN Заказы ON Товары.[Код товара] = Заказы. Товар;

· Сохраните запрос под именем выборка SQL.

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

Разберем синтаксис данной операции:

SELECT – оператор который сообщает базе данных, что данная операция является запросам (практически все запросы начинаются с этого слова). После оператора SELECT обычно начинается перечисление тех полей, которые будут включены в запрос. Например запись SELECT Заказы.[Код заказа] будет означать что в запрос будет включено поле Код заказа из таблицы «Заказы». В случае если имя поля содержит пробелы его необходимо указывать в квадратных скобках [].

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

INNER JOIN — Объединяет записи из двух таблиц, если связующие поля этих таблиц содержат одинаковые значения. Например запись «FROM Товары INNER JOIN Заказы ON Товары.[Код товара] = Заказы. Товар» означает, что в данной процедуре запроса поле Код товара Из таблицы «Товары» является источником записи для поля Товар таблицы «Заказы»

Задание: Создайте SQL запрос позволяющий вывести сведения о клиентах купивших товар.

2. Создание SQL запросов на выборку с условием отбора.

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

Для создания запросов с условием отбора используется оператор WHERE.

· Создайте SQL запрос на выборку содержащий такие поля: Фамилия, Имя, Отчество Сотрудника, Код заказа Который тот обслужить, Количество. Проверьте правильностьего работы.

· Теперь необходимо добавить условие отбора. Откройте редактор SQL и в конец продцедуры запроса добавьте «WHERE (((Заказы. Количество)>3))».

· Сохраните запрос под именем «Выборка с условием отбора SQL». Проверьте работу запроса.

Задание: Создайте SQL запрос отбирающий все товары цена на которые не прекращена и цена не превышает 20 денежных едениц.

3. Создание SQL запросов с вычислением.

Создадим SQL запрос позволяющий вывести Фамилию клиента, Наименование товара, сумму заказа (цена*количество).

Продцедура запроса выглядит так:

SELECT Клиенты. Фамилия, Товары.[Наименование товара], Заказы! Количество*Товары! Цена AS [Сумма заказа]

FROM Товары INNER JOIN (Клиенты INNER JOIN Заказы ON Клиенты.[Код клиента]=Заказы. Клиент) ON Товары.[Код товара]=Заказы. Товар;

4. Создание SQL запросов на группировку.

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

Для группировки записей используется оператор GROUP BY.

Продцедура запроса выглядит следующим образом:

SELECT Клиенты. Фамилия, Sum(Заказы! Количество*Товары! Цена) AS [Сумма заказов]

FROM Товары INNER JOIN (Клиенты INNER JOIN Заказы ON Клиенты.[Код клиента] = Заказы. Клиент) ON Товары.[Код товара] = Заказы. Товар

GROUP BY Клиенты. Фамилия;

1. Что такое SQL?

2. Как создать SQL запрос?

3. Структурные составляющие языка SQL.

4. Перечислите основные операторы языка SQL.

5. Общие сведения об операторах SELECT, WHERE, FROM, INNER JOIN, GROUP BY.

Читайте также:  До скольки можно сверлить в квартире

Задание для успевающих: Попытайтесь самостоятельно создать SQL запрос позволяющий удалять все записи из таблицы «Товары» цена на которые меньше 3 денежных едениц

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

Создание запросов на языке SQL.

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

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

Для подготовки запросов используются:

    QBE (Query By Example) — язык запросов по образцам, SQL (Structured Query Language) — язык структурированных запросов.

SQL — язык структурированных запросов

Язык структурированных запросов SQL является наиболее распространенным языком управления базами данных клиент/сервер. содержит операторы:

    описания данных (DDL — Data Definition Language). Основные операторы DDL — Create Domain (Создание домена), Alter Domain (Изменение домена), Drop Domain (Уничтожение домена), Create Table, Alter Table, Table Drop; управления данными (DML — Data Manipulation Language). Основные операторы DML — Select (Выбор), Insert (Вставка), Update (Обновление), Delete (Удаление); формирования запросов.

Ключевые слова SQL

Команды – представляют собой глаголы определяющего действия, которые необходимо выполнить (SELECT, ALTER, CREATE, DROP) Условия (квалификатор)-ограничивают диапазон значений элементов, входящих в запрос (WHERE) Модификаторы (предложения)-модифицируют выполнение инструкций (ORDER BY) Предикаты – представляют собой выражения, такие как IN. Могут возвращать в качестве результата значения True, False, в некоторых случаях Null (неизвестный результат) Операторы (=, )- сравнивают значения или применяются для создания объединений в синтаксисе предложений WHERE. Эти операторы наз предикатами сравнения. Статистические функции (агрегаты)- возвращают одно результирующее значение на основе набора данных (SUM (сумма), COUNT (количество), MIN (минимальное значение), MAX (максимальное значение) или AVG (среднее значение) Функции преобразования типа данных – изменяют тип данных с одного на др.(CAST, CONVERT) Другие ключевые слова (зарезервированные)-изменяющие действие команд или управляющие курсором (указателем текущей записи в наборе)

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

звездочка (*) для обозначения "все" — употребляется в обычном для программирования смысле, т. е. "все случаи, удовлетворяющие определению";

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

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

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

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

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

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

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

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

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

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

Читайте также:  Зарядка в авто xiaomi

SELECT [ ALL │ DISTINCT │DISTINCTROW ] список_выбора

[AS псевдоним 1[, псевд 2 [,… ]]]

FROM имена таблиц

[WHERE критерий поиска]

[GROUP BY имя столбца, имя столбца,…]

[ HAVING условие поиска]

[ ORDER BY критерий столбца [ASC│DESC]];

SELECT — выбрать (директива) данные из указанных столбцов и (если необходимо) выполнить перед выводом их преобразование в соответствии с указанными выражениями и (или) функциями

FROM — из (условие) перечисленных таблиц, в которых расположены эти столбцы

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

GROUP BY — группируя по (условие) указанному перечню столбцов с тем, чтобы получить для каждой группы единственное агрегированное значение, используя во фразе SELECT SQL – функции: SUM (сумма), COUNT (количество), MIN (минимум), MAX (максимум), AVG (среднее значение)

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

ORDER BY — спецификация сортировки (условие) определяет порядок сортировки: ASC – сортировка по возрастанию, DESC — сортировка по убыванию.

1. Сравнения =, <>, >=, Like

( что ) ( с чем сравнивать)

Предложение SELECT может использоваться как:

    самостоятельная команда на получение и вывод строк таблицы, сформированной из столбцов и строк одной или нескольких таблиц (представлений); элемент WHERE — или HAVING-условия (сокращенный вариант предложения, называемый "вложенный запрос"); фраза выбора в командах CREAT VIEW, DECLARE CURSOR или INSERT; средство присвоения глобальным переменным значений из строк сформированной таблицы (INTO-фраза).

SELECT [[ALL] | DISTINCT]

[GROUP BY фраза [HAVING фраза]];

Элемент_SELECT — это одна из следующих конструкций:

[таблица.]* | значение | SQL_функция | системная_переменная

где значение – это:

[таблица.]столбец | (выражение) | константа | переменная

Синтаксис выражений имеет вид

а синтаксис SQL_функций – одна из следующих конструкций:

Фраза WHERE включает набор условий для отбора строк:

WHERE [NOT] WHERE_условие [[AND|OR][NOT] WHERE_условие].

где WHERE_условие – одна из следующих конструкций:

значение_1 [NOT] BETWEEN значение_2 AND значение_3

значение [NOT] IN

значение IS [NOT] NULL

[таблица.]столбец [NOT] LIKE ‘строка_символов’ [ESCAPE ‘символ’]

Кроме традиционных операторов сравнения (= | <> | | >=) в WHERE фразе используются условия BETWEEN (между), LIKE (похоже на), IN (принадлежит), IS NULL (не определено) и EXISTS (существует), которые могут предваряться оператором NOT (не). Критерий отбора строк формируется из одного или нескольких условий, соединенных логическими операторами:

— когда должны удовлетворяться оба разделяемых с помощью AND условия;

— когда должно удовлетворяться одно из разделяемых с помощью OR условий;

— когда должно удовлетворяться первое условие и не должно второе;

— когда или должно удовлетворяться первое условие или не должно удовлетворяться второе,

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

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

Наконец, синтаксис фразы GROUP BY имеет вид

GROUP BY [таблица.]столбец [,[таблица.]столбец] . [HAVING фраза]

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

С помощью фразы HAVING (синтаксис которой почти не отличается от синтаксиса фразы WHERE)

HAVING [NOT] HAVING_условие [[AND|OR][NOT] HAVING_условие].

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

[таблица.]столбец [NOT] LIKE ‘строка_символов’ [ESCAPE ‘символ’]

Ссылка на основную публикацию
Adblock detector