Tw-city.info

IT Новости
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Программирование sql server

Основы программирования на T-SQL

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

И начать хотелось бы с того, что на этом сайте мы с Вами уже достаточно много материала посвятили языку SQL и в частности его расширению Transact-SQL (как Вы понимаете T-SQL – это сокращение от Transact-SQL, более подробно о том, что такое T-SQL в статье – https://self-learning.ru/what-is-t-sql). И даже составили небольшой справочник для начинающих по данному языку и, конечно же, рассмотрели множество примеров, но как таковое программирование на T-SQL там, например, переменные, условные конструкции, комментарии мы затрагивали, но не заостряли на этом внимания. Но так как у нас сайт для начинающих программистов я решил посвятить этот материал именно этим основам.

Язык программирования T-SQL

Transact-SQL (T-SQL) – расширение языка SQL от компании Microsoft и используется в SQL Server для программирования баз данных.

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

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

Примечание! Код я буду писать в окне запроса среды SQL Server Management Studio, о том, как установить SQL Server и Management Studio в редакции Express мы с Вами разговаривали вот здесь.

Переменные в T-SQL

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

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

Локальные переменные объявляются с помощью ключевого слова DECLARE и начинаются со знака @. Как и во многих языках программирования, переменные в T-SQL должны иметь свой тип данных. Типов данных в SQL сервере достаточно много мы их подробно рассмотрели в справочнике, который я упоминал чуть выше.

Для присвоения значения переменной можно использовать команды SET или Select.

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

  • @@ROWCOUNT – хранит количество записей, обработанных предыдущей командой;
  • @@ERROR – возвращает код ошибки для последней команды;
  • @@SERVERNAME — имя локального SQL сервера;
  • @@VERSION — номер версии SQL Server;
  • @@IDENTITY — последнее значение счетчика, используемое в операции вставки (insert).

Теперь для примера давайте создадим две переменной с типом данных INT, присвоим им значения, первой с помощью команды SET, а второй с помощью команды Select, затем просто выведем на экран эти значения, а также выведем и значение переменной @@VERSION, т.е. узнаем версию SQL сервера.

Пакеты

Пакет в T-SQL — это команды или инструкции SQL, которые объединены в одну группу и при этом SQL сервер будет компилировать, и выполнять их как одно целое.

Для того чтобы дать понять SQL серверу, что Вы передаете пакет команд необходимо указывать ключевое слово GO после всех команд, которые Вы хотите объединить в пакет.

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

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

Т.е. мы видим, что у нас вышла ошибка, связанная с тем, что переменная @TestVar1 у нас не объявлена.

Условные конструкции

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

IF…ELSE

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

IF EXISTS

Данная конструкция позволяет определить наличие записей определенных условием. Например, мы хотим знать есть ли в таблице те или иные записи и при обнаружении первого совпадения обработка команды прекращается. По сути это то же самое, что и COUNT(*) > 0.

К примеру, мы хотим проверить есть ли записи со значение id >=0 в таблице test_table, и на основе этого мы будем принимать решение, как действовать дальше

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

BEGIN…END

Эта конструкция необходима для создания блока команд, т.е. например, если бы мы хотели выполнить не одну команду после блока IF, а несколько, то нам бы пришлось писать все команды внутри блока BEGIN…END.

Давайте модифицируем наш предыдущий пример (про IF EXISTS) так, чтобы при наличии записей id > = 0 в таблице test_table, мы помимо присвоения значения переменной @TestVar, выполним еще и update, т.е. обновление неких данных в этой же таблице, а также выведем количество строк, которые мы обновили, используя глобальную переменную @@ROWCOUNT.

Читать еще:  Среда программирования visual studio c

Циклы T-SQL

Если говорить в общем о циклах, то они нужны для многократного повторения выполнения команд. В языке T-SQL есть один цикл WHILE с предусловием, это означает, что команды начнутся, и будут повторяться до тех пор, пока выполняется условие перед началом цикла, также выполнение цикла можно контролировать с помощью ключевых слов BREAK и CONTINUE.

В данном примере мы сначала, конечно же, объявляем переменные (Cnt и result мы сразу инициализируем, таким способом можно задавать значения переменных, начиная с SQL Server 2008). Затем узнаем, сколько строк в таблице test_table и после этого проверяем, если количество строк в таблице больше или равно нашему счетчику, то входим в наш тестовый цикл. В цикле мы увеличиваем значение счетчика, записываем результат и снова проверяем, если наш счетчик достиг уже значения 20, то мы его принудительно завершим, если нет, то пусть работает дальше, до того как значение счетчика станет больше или равно количеству строк в таблице или до 20, если в таблице строк больше.

Комментарии

Они нужны для того, чтобы пояснять, делать заметки в коде, так как если код большой и сложный, то через некоторое время Вы можете просто забыть, почему именно так и для чего Вы написали тот или иной участок кода. В языке T-SQL бывают однострочные (—Текст) и многострочные комментарии (/*Текст*/).

Команды T-SQL

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

WAITFOR

Команда может приостановить выполнение кода на время или до наступления заданного времени. Параметр DELAY делает паузу заданной длины, а TIME приостанавливает процесс до указанного времени. Значение параметров задается в формате hh:mi:ss

RETURN

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

PRINT

Для передачи служебного сообщения можно использовать команду PRINT. В Management Studio это сообщение отобразится на вкладке «Сообщения» (Messages).

Транзакции

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

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

В этом примере, если бы у нас в момент добавления данных (INSERT) возникла ошибка, то UPDATE бы отменился.

Обработка ошибок — конструкция TRY…CATCH

В процессе выполнения T-SQL кода может возникнуть непредвиденная ситуация, т.е. ошибка, которую необходимо обработать. В SQL сервере, начиная с SQL Server 2005, существует такая конструкция как TRY…CATCH, которая может отследить ошибку.

В этом примере возникла ситуация что происходит деление на ноль (как Вы знаете делить на 0 нельзя) и так как наш блок кода был помещен в конструкцию TRY у нас возникло исключение, при котором мы просто получаем номер ошибки и ее описание.

Я думаю для основ этого достаточно, если Вы хотите более подробно изучить все конструкции языка T-SQL, то рекомендую прочитать мою книгу «Путь программиста T-SQL», в которой уже более подробно рассмотрен язык T-SQL, у меня все, удачи!

Заметка! Для профессионального изучения языка T-SQL рекомендую пройти наши онлайн-курсы по T-SQL.

Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

Базы данных

Все записи в категории ‘ Программирование SQL Server ‘

SQL Server условия

AND Логический оператор AND OR Логический оператор OR AND and OR Логический оператор AND и OR LIKE Определяет, совпадает ли указанная символьная строка с заданным шаблоном IN Определяет, совпадает ли указанное значение с каким-либо значением во вложенным запросе или списке. NOT Отрицание условия IS NULL Используется для проверки значения NULL IS NOT NULL Используется для …

SQL Server циклы и условные операторы

GOTO Statement Оператор перехода GOTO WHILE LOOP Цикл WHILE FOR LOOP Имитация цикла FOR BREAK Оператор выхода из цикла CONTINUE Оператор продолжения цикла IF ELSE Statement Условный оператор IF

SQL Server типы запросов

SELECT Оператор SELECT SELECT TOP Оператор SELECT TOP SELECT INTO Оператор SELECT INTO DISTINCT Используется для удаления дубликатов из набора результатов FROM Используется для отображения таблиц и любых объединений WHERE Используется для фильтрации результатов ORDER BY Используется для сортировки результатов GROUP BY Используется для группировки результатов HAVING Используется в сочетании с оператором GROUP BY, чтобы …

SQL Server таблицы и представления

CREATE TABLE Оператор создания таблицы ALTER TABLE Оператор изменения таблицы DROP TABLE Оператор удаления таблицы LOCAL TEMP TABLES Локальная временная таблица GLOBAL TEMP TABLES Глобальная временная таблица VIEW Представление

SQL Server Уникальные ограничения

Indexes Индексы Unique Constraints Уникальные ограничения Check Constraints Проверка ограничений

Читать еще:  Что значит невозможно установить безопасное соединение

SQL Server ключи (primary key, foreign key)

Primary Keys Создание, удаление, включение и отключение первичного ключа Create Foreign Keys Создание внешнего ключа Drop a Foreign Key Удаление внешнего ключа Enable a Foreign Key Включение внешнего ключа Disable a Foreign Key Отключение внешнего ключа Create Foreign Keys with cascade delete Создание внешних ключей с каскадным удалением Create Foreign Keys with set null on …

SQL Server администрирование

Grant Revoke Privileges Предоставление и отмена привилегий CREATE LOGIN Создать логин ALTER LOGIN Изменить логин DROP LOGIN Удалить логин Find Logins in SQL Server Найти логин в SQL Server Change Password in SQL Server Изменить пароль в SQL Server CREATE USER Создать пользователя DROP USER Удалить пользователя Find Users in SQL Server Найти пользователя в …

Числовые / математические функции SQL Server

Функция & Описание ABS В SQL Server (Transact-SQL) функция ABS возвращает абсолютное значение числа. AVG В SQL Server (Transact-SQL) функция AVG возвращает среднее значение выражения. CEILING В SQL Server (Transact-SQL) функция CEILING возвращает наименьшее целочисленное значение, которое больше или равно числу. COUNT В SQL Server (Transact-SQL) функция COUNT возвращает количество строк поля или выражения в …

Символьные / строчные функции SQL Server

Функция & Описание ASCII В SQL Server (Transact-SQL) функция ASCII возвращает числовой код, который представляет указанный символ. CHAR В SQL Server (Transact-SQL) функция CHAR является противоположной функции ASCII. Возвращает символ, основанный на числовом коде. CHARINDEX В SQL Server (Transact-SQL) функция CHARINDEX возвращает местоположение подстроки в строке. Поиск не чувствителен к регистру. CONCAT В SQL Server …

Преобразования функции SQL Server

Функция & Описание CAST В SQL Server (Transact-SQL) функция CAST преобразует выражение из одного типа данных в другой тип данных. T В SQL Server (Transact-SQL) функция CONVERT преобразует выражение из одного типа данных в другой тип данных.

Уроки SQL

Уроки SQL для начинающих / #1 — Что такое SQL? Введение

Видеоурок

Полезные ссылки:

Начиная с этого урока мы приступаем к курсу по изучению языка SQL. В ходе курса мы не будем изучать SQL на примере какого-либо языка. Мы изучим синтаксис команд языка SQL и научимся прописывать запросы для работы с базами данных.

Информация про SQL

Немного информации про язык. Язык SQL появился еще в 70-х годах, но до сих пор остается мега популярным и востребованным языком. SQL используется для написания всевозможных запросов к базе данных: выборка, обновление, добавление, удаление записей и многое другое.

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

Компании зачастую требуют навыки и знаний языка SQL при трудоустройстве на работу. В ходе видеокурса вы познакомитесь с написанием команд для работы с базой данных и на основе этих команд вы сможете работать с БД используя любой другой язык: Python , C# , C++ , PHP и так далее. Все языки используют различные варианты для подключения к БД, но принцип отправки запросов к БД остаются одинаковыми, так как они пишутся на языке SQL.

SQL используется во множестве реляционных баз данных. Среди таковых можно выделить: MySQL, SQLite, Oracle, PostgreSQL, Microsoft SQL Server и многие многие другие.

Роль SQL в проектах

Sql выполняет роль посредника, между базами данных и проектом. Рассмотрим работу SQL на реально примере. Предположим, что у вас есть веб программа, написанная на PHP или Python . Также у вас есть база данных, к примеру MySQL, хотя на самом деле не важно какая БД у вас будет. Чтобы соединить обе технологии между собой нужен язык, понимающий как первую, так и вторую часть вышеуказанной логики. Таким языком является SQL. В нем вы записываете команду, при чем эта команда будет одинаковой что для PHP, что для Python, что для других языков программирования. После выполнения команды вы сможете получить данные из БД, записать данные или проделать другие манипуляции.

Информация про курс

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

Видео по работе с графическим интерфейсом PhpMyAdmin можно посмотреть ниже:

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

Задание к уроку

Выполните установку локального сервера и запустите графический редактор PhpMyAdmin.

Для установки локального сервера выполните установку одной из программ ниже:

Для запуска PhpMyAdmin перейдите на соответсвующий Url адрес, зачастую это: http://localhost/phpmyadmin/.

Большое задание по курсу

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

Роберт Виейра — Программирование баз данных MS SQL Server 2005. Базовый курс

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

Читать еще:  C сетевое программирование

Перечислим некоторые темы, которые рассматриваются в книге:

  • Способы изготовления и изменения таблиц.
  • Разнообразные пользовательские функции и триггеры.
  • Средства написания сценариев, управления ключами, и работы с хранимыми процедурами.
  • Принципы работы со службами Integration Services и Reporting Services.
  • Методы программирования с использованием языка XML.
  • Различные вспомогательные средства языка SQL.

Издательство: Вильямс
Год: 2007
ISBN: 978-5-8459-1202-2

Скачано: 67085 раз

Скачать книгу

Комментарии

Sir Ivan, 03.11.2010 08:07

Очень полезная книжка для понимания начал SQL Server. Написана хорошо и понятно, толково весьма.

выв, 21.09.2011 20:51

то что нужно для понимания основ программирования

Андрій, 29.09.2011 13:26

хочу навчитись ставити базу даних

Мтакум, 21.10.2011 07:51

Действительно хорошая книга.

аноним, 17.11.2011 15:32

robert viera, 06.02.2012 06:06

dumayu budet horoscha9 kniga

maks, 23.03.2012 03:35

Алекс, 22.09.2012 17:07

Спасибо! Для понимания — более чем достаточно

мавлен, 16.10.2012 10:05

мне надо новые баз данных

mavlen, 16.10.2012 10:07

Elvin, 23.10.2012 05:50

Spasibo vam bolwoe..

Alex, 10.11.2012 05:32

Книга — самое то

Farid, 22.12.2012 07:19

Alexandr, 30.12.2012 21:07

Adi, 05.01.2013 12:33

user, 22.01.2013 01:38

sank you very math

виктор, 06.02.2013 13:39

жека, 11.02.2013 10:56

книга и сам mssql унылы до безобразия

Вячеслав, 01.03.2013 05:38

Andy, 20.03.2013 10:58

Жека, уныл ты сам. Книга весьма хороша! В ней не хватает только еще главы про рел.алгебру.

Helloween, 24.04.2013 14:11

мне нравится эта книга

sasha, 13.06.2013 19:51

Andrey, 25.06.2014 20:59

Книга вроде бы нормальная, но много воды. Ее можно было ужать, как минимум, на треть.

Fitflop Sandals Sale, 06.07.2018 13:28

Oracle PL/SQL •MySQL •MariaDB •SQL Server •SQLite

Базы данных

Все записи в категории ‘ Программирование SQL Server ‘

SQL Server условия

AND Логический оператор AND OR Логический оператор OR AND and OR Логический оператор AND и OR LIKE Определяет, совпадает ли указанная символьная строка с заданным шаблоном IN Определяет, совпадает ли указанное значение с каким-либо значением во вложенным запросе или списке. NOT Отрицание условия IS NULL Используется для проверки значения NULL IS NOT NULL Используется для …

SQL Server циклы и условные операторы

GOTO Statement Оператор перехода GOTO WHILE LOOP Цикл WHILE FOR LOOP Имитация цикла FOR BREAK Оператор выхода из цикла CONTINUE Оператор продолжения цикла IF ELSE Statement Условный оператор IF

SQL Server типы запросов

SELECT Оператор SELECT SELECT TOP Оператор SELECT TOP SELECT INTO Оператор SELECT INTO DISTINCT Используется для удаления дубликатов из набора результатов FROM Используется для отображения таблиц и любых объединений WHERE Используется для фильтрации результатов ORDER BY Используется для сортировки результатов GROUP BY Используется для группировки результатов HAVING Используется в сочетании с оператором GROUP BY, чтобы …

SQL Server таблицы и представления

CREATE TABLE Оператор создания таблицы ALTER TABLE Оператор изменения таблицы DROP TABLE Оператор удаления таблицы LOCAL TEMP TABLES Локальная временная таблица GLOBAL TEMP TABLES Глобальная временная таблица VIEW Представление

SQL Server Уникальные ограничения

Indexes Индексы Unique Constraints Уникальные ограничения Check Constraints Проверка ограничений

SQL Server ключи (primary key, foreign key)

Primary Keys Создание, удаление, включение и отключение первичного ключа Create Foreign Keys Создание внешнего ключа Drop a Foreign Key Удаление внешнего ключа Enable a Foreign Key Включение внешнего ключа Disable a Foreign Key Отключение внешнего ключа Create Foreign Keys with cascade delete Создание внешних ключей с каскадным удалением Create Foreign Keys with set null on …

SQL Server администрирование

Grant Revoke Privileges Предоставление и отмена привилегий CREATE LOGIN Создать логин ALTER LOGIN Изменить логин DROP LOGIN Удалить логин Find Logins in SQL Server Найти логин в SQL Server Change Password in SQL Server Изменить пароль в SQL Server CREATE USER Создать пользователя DROP USER Удалить пользователя Find Users in SQL Server Найти пользователя в …

Числовые / математические функции SQL Server

Функция & Описание ABS В SQL Server (Transact-SQL) функция ABS возвращает абсолютное значение числа. AVG В SQL Server (Transact-SQL) функция AVG возвращает среднее значение выражения. CEILING В SQL Server (Transact-SQL) функция CEILING возвращает наименьшее целочисленное значение, которое больше или равно числу. COUNT В SQL Server (Transact-SQL) функция COUNT возвращает количество строк поля или выражения в …

Символьные / строчные функции SQL Server

Функция & Описание ASCII В SQL Server (Transact-SQL) функция ASCII возвращает числовой код, который представляет указанный символ. CHAR В SQL Server (Transact-SQL) функция CHAR является противоположной функции ASCII. Возвращает символ, основанный на числовом коде. CHARINDEX В SQL Server (Transact-SQL) функция CHARINDEX возвращает местоположение подстроки в строке. Поиск не чувствителен к регистру. CONCAT В SQL Server …

Преобразования функции SQL Server

Функция & Описание CAST В SQL Server (Transact-SQL) функция CAST преобразует выражение из одного типа данных в другой тип данных. T В SQL Server (Transact-SQL) функция CONVERT преобразует выражение из одного типа данных в другой тип данных.

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