Команды SQL-запросов

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

Язык SQL: классификация команд

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

— команды для построения запросов;

— команды встроенных функций и процедур;

— команды системных таблиц и триггеров;

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

— команды для работы с таблицами и данными.

Эту классификацию можно продолжать бесконечно долго, однако основные наборы команд языка SQL будут строиться именно исходя из представленных типов. Рассматривая классификацию языка, нельзя не сказать о том, что он универсален. Об этом лишний раз свидетельствует сфера его применения. Данный язык программирования и его разновидности используются не только в стандартной среде, но и в других программах, которые вы использовали, так или иначе. Можно рассматривать сферу использования SQL с точки зрения офисного программного обеспечения. Речь идет о MicrosoftAccess. Данный язык, а если говорить точнее, его разновидность MySQL, дает возможность администрировать базы данных в Интернете. Среда разработки  Oracle использует команды SQL на основе своих запросов.

Применение SQL в Microsoft Access

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

SQL-команды в Microsoft Access довольно примитивны, если рассматривать их на профессиональном уровне. Выполнение данных команд осуществляется очень просто. Создаются они в специальном редакторе кода. Давайте рассмотрим конкретный пример:

SELECTPe_SurName

FROMPherson

WHEREPe_Name = ‘Мери’;

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

Использование команд SQL в Oracle

Oracle является наверное единственным серьезным конкурентом Microsoft SQL Server. Эта среда разработки и управления БД постоянно приводит к усовершенствованию функций программного продукта от компании Microsoft, поскольку конкуренция является двигателем прогресса. Команды SQL Oracle, несмотря на постоянное соперничество, повторяют SQL. Необходимо отметить, что хотя Oracle практически считается копией SQL, логика данной системы и в целом языка считается проще. При использовании определенного набора команд система Oracle не имеет такой сложной структуры. Если рассматривать возможности этих сред разработки баз данных, то у Oracle нет сложной структуры вложенных запросов. Подобная разница дает возможность во много раз ускорить работу с данными. Однако в противовес это в некоторых случаях может привести к нерациональному использованию памяти в отдельных случаях. В основном структура Oracle построена на временных таблицах и их применении. К примеру,  SQL команды в данной системе строятся по аналогии со стандартами языка SQL, хотя и отличаются от него.

SELECTCONCAT(CONCAT(CONCAT(‘Сотрудник ‘, sname),

CONCAT(SUBSTR(fname, 0, 1), SUBSTR(otch, 0, 1))),

CONCAT(‘принят на работу ‘, acceptdate))

FROM employees WHERE acceptdate>to_date(‘01.01.80′,’dd.mm.yyyy’);

Такой запрос возвращает данные о сотрудниках, которые были приняты на работу в определенный промежуток времени. Хотя структура запроса и отличается от MicrosoftSQLServer, выполнение SQL-команд в этих системах похоже. Исключение составляют лишь мелкие детали.

Применение SQL в сети Internet

После появления всемирной паутины, или иначе говоря, интернета, сфера применения языка SQL была существенно расширена. В сети, как известно, хранится большой объем информации. При этом она расположена не хаотично, а размещена на серверах и сайтах по определенным критериям. За хранение информации в Интернете и других местах отвечают непосредственно базы данных. Сайты представляют собой системы управления. Сайты и их программный код, как правило, организованы на разных языках программирования. В основе баз данных лежит одна из разновидностей SQL, а именно язык создания баз данных, который ориентирован на веб-интерфейсы MySQL. Основной набор команд и синтаксис данного языка полностью копируют SQL. Однако имеются некоторые дополнения, которые и придают ему отличие от Microsoft SQL Server. Команды SQL похожи не только по синтаксису, но и по набору служебных слов. Разница заключается только в структурировании и вызове запроса. Можно рассмотреть для примера запрос для создания новой таблицы. Именно этому прежде всего и учат детей на уроках информатики.

$link = mysqli_connect(‘localhost’, «root», », ‘tester’);

if ( !$link ) die(«Error»);

$query = ‘create table users(

login VARCHAR(20),

password VARCHAR(20) )’;

if (mysqli_query($link, $query)) echo «Таблицасоздана.»;

elseecho «Таблица не создана: «.mysqli_error();

mysqli_close($link);

Результатом выполнения такого запроса будет создание новой таблицы Users с двумя полями: логин и пароль. В данном случае синтаксис изменен под Веб. В основе лежат команды MicrosoftSQLServer.

Microsoft SQL Server: построение запросов

Одной из основных задач SQL является выборка из таблиц определенного набора данных. Для выполнения таких операций в SQL предусмотрена команда select. О ней и будет идти речь ниже. Правила построения команд довольно просты. Сама команда select в SQL строится следующим образом. Предположим, у вас имеется таблица, в которой присутствуют данные о сотруднике. Таблица имеет имя Person. Вам нужно выбрать данные о сотрудниках, дата рождения которых лежит в промежутке с первого января по первое сентября текущего года. Чтобы осуществить такую выборку необходимо выполнить команду SQL, в которой будет использоваться не только стандартная конструкция, но и примерно такое условие выбора: Select * fromPersonWhereP_BirthDay>=’01/01/2016’ andP_BirthDay<=09/01/2016’. Выполнение данной команды возвращает информацию о сотрудниках, дата рождения которых находится в заданном вами периоде. В некоторых случаях перед пользователем стоит задача вывести только ФИО сотрудника. Для этого можно построить запрос следующим образом: SelectP_Name – имя P_SurName – фамилия P_Patronimic – отчество fromPersonWhereP_BirthDay>=’01/01/2016’ andP_BirthDay<=’09/01/2016’. В данном случае речь идет только о выборе чего-либо. По сути своей он ни на что не влияет, а только предоставляет информацию в запрашиваемом виде. Если вы решили всерьез заняться изучением языка SQL, то вам придется научиться вносить изменения в базы данных, поскольку их построение без этого просто невозможно. Чуть ниже будет рассмотрено, как это делается.

Основные команды SQL для изменения информации

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

— Insert (вставить);

— Update (обновить);

— Delete (удалить).

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

Использование команды Insert

Для вставки используется команда Insert. Неправильно вставленную информацию можно всегда удалить и заново внести в базу данных. Команда Insert предназначена для вставки новых данных в таблицу. Она позволяет добавить как полный набор данных, так и выборочный. Для примера можно рассмотреть команду вставки в ранее описанную таблицу Person. Чтобы внести данные в таблицу, нужно исполнить SQL-команду, которая дает возможность вставить всю информацию в таблицу или выборочно заполнить ее.

Пример:

Insertintoperson

Select ‘Иванов’,’Иван’,’Иванович’,’01/01/1990’

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

Insertintoperson(P_Name, P_SurName ,P_BerthDay)

Values (‘Джон’, ‘Джонсон’,’01/11/1988’)

Данная команда заполнит указанные ячейки. Остальные будут иметь значение null.

Команды для изменения данных

Чтобы изменить данные во всей строке или в некоторых ячейках, необходимо использовать команду UpdateSQL. Выполнить такую команду нужно только с определенным условием. Необходимо точно указать в какую строку по номеру необходимо внести изменения. У команды UpdateSQL несложный синтаксис. Чтобы правильно ее использовать, нужно указать, какую информацию, в какой колонке и какой записи необходимо изменить. После этого необходимо будет составить скрипт и выполнить его. Давайте рассмотрим один пример. Предположим, вам необходимо изменить дату рождения Джона Джонсона, который внесен в таблицу сотрудников под номером 10.

Update Person Set P_BirthDay = ‘10/10/1988’ where P_ID=10

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

Команды для использования встроенных функций и процедур

При помощи языка SQL можно не только построить запросы, но и создать встроенные механизмы для работы с данными. Возникают ситуации, когда необходимо использовать в теле одного запроса написанную ранее выборку. Если посудить логически, необходимо скопировать текст выборки и вставить его в нужное место. Можно обойтись и более простым решением. Давайте рассмотрим пример, когда на рабочем интерфейсе присутствует кнопка для печати отчета, например, в Excel. Данная операция будет осуществляться по мере необходимости. Для этой цели можно использовать встроенные хранимые процедуры. В данном случае команды SQL запросов заключаются в процедуру и вызываются при помощи команды SQL Exec. Предположим, что была создана специальная процедура для вывода даты рождения сотрудников с описанной ранее таблицы Person. В этом случае отсутствует необходимость писать весь запрос. Чтобы получить необходимую информацию, достаточно выполнить команду Exec и передать параметры, необходимые для выборки. В качестве примера можно рассмотреть механизм создания процедуры следующего характера:

CREATEPROCEDUREPrintPerson

@DB smalldatetime

@DE smalldatetime

AS

SET NOCOUNT ON;

SELECT * from Person

FROM HumanResources.vEmployeeDepartmentHistory

WHERE P_BerthDay>= @DB and P_BerthDay<= @DE

ANDEndDateISNULL;

GO

Такая процедура вернет в качестве данных всю информацию о сотрудниках, день рождения которых находится в заданных временных рамках.

Целостность информации. Триггеры

Некоторые команды MS SQL позволяют не только организовать манипуляции с данными, но и обеспечивают их целостность. Для этой цели используются специальные системные конструкции, которые создаются самими программистами. Это так называемые триггеры, которые обеспечивают контроль данных. В этом случае для организации проверки условий применяются стандартные команды SQL-запросов. В триггерах имеется возможность создания множества условий и ограничений для работы с информацией, которые могут осуществлять управление не только доступом к информации, но и запрещать удаление, изменение и вставку информации. Типы SQL-команд, которые могут быть использованы в триггере, серьезно ограничены. Давайте рассмотрим их на примере. Если приступить к описанию механизма создания триггера, то типы команд SQL в данном случае используются такие же, как и при создании процедуры. Ниже будет приведен алгоритм. Прежде всего, необходимо описать служебную команду для создания триггеров:

CREATE TRIGGER Person_Insert

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

ONPerson

Затем указываем операцию с данными. В нашем случае это будет операция изменения данных. Следующим шагом является указание переменных и таблиц.

declare @ID int. @Datesmalldatetime @nIDint. @nDatesmalldatetime

После этого объявляем курсоры для выбора данных из таблиц удаления и вставки данных

DEclare cursor C1 for select P_ID, P_BerthDay from Inserted

DEclare cursor C2 for select P_ID, P_BerthDay from deleted

Теперь задаем шаги для выбора данных. Далее в теле курсоров необходимо прописать условие и реакцию на него:

if @ID = @nID and @nDate = ’01/09/2016′

begin

sMasseges ‘Выполнить операцию невозможно. Не подходит дата’

end

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

— SQL SERVER: altertablePERSONdisabletriggerall(для отключения триггеров, которые были созданы для данной таблицы);

— altertablePERSONenabletriggerall (для их включения триггеров)

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *