Transact sql что это
Справочник по Transact-SQL (компонент Database Engine)
В этом разделе приводится общее описание поиска и использования разделов справки по Microsoft Transact-SQL (T-SQL). T-SQL является ключом к использованию продуктов и служб Microsoft SQL. Все средства и приложения, которые взаимодействуют с базами данных SQL, делают это путем отправки команд T-SQL.
Соответствие T-SQL стандарту SQL
Подробные технические документы о реализации определенных стандартов в SQL Server см. в документации по поддержке стандартов Microsoft SQL Server.
Средства, использующие T-SQL
Ниже приведены лишь некоторые средства Майкрософт, использующие команды T-SQL.
Поиск разделов справочника по Transact-SQL
Чтобы найти разделы T-SQL, воспользуйтесь полем поиска в верхней правой части или оглавлением в левой части этой страницы. Можно также ввести ключевое слово T-SQL в окне редактора запросов среды Management Studio и нажать клавишу F1.
Поиск системных представлений
Чтобы найти системные таблицы, представления, функции и процедуры, см. ссылки в разделе Использование реляционных баз данных в документации по SQL.
Ссылки «Относится к»
Справочные разделы T-SQL могут охватывать несколько версий SQL Server, начиная с 2008 года, а также другие службы SQL Azure. В верхней части каждой статьи приведен раздел, указывающий, какие продукты и службы поддерживают описанную в ней функциональность.
Например, текущий раздел применим ко всем версиям и имеет следующую метку.
Еще один пример: следующая метка указывает, что раздел применяется только к Azure Synapse Analytics и Parallel Data Warehouse.
В некоторых случаях функциональность раздела используется продуктом или службой, но поддерживаются не все аргументы. В этом случае другие разделы Относится к вставляются в описания соответствующих аргументов в теле раздела.
Получение помощи на странице вопросов и ответов на сайте Майкрософт
Справочники по другим языкам
Документация по SQL включает и другие справочники по языкам.
Дальнейшие действия
Теперь, когда вы знаете, как найти справочные разделы T-SQL, можно:
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
Transact-SQL
Содержание
История
Типы данных
Точные числовые типы
Числовые и десятичные значения являются типами данных с фиксированной точностью и масштабированием и функционально эквивалентны.
Тип | Нижняя граница | Верхняя граница |
---|---|---|
BIGINT | -9.223.372.036.854.775.808 | 9.223.372.036.854.775.807 |
INT | -2147483648 | 2147483647 |
TINYINT | 0 | 255 |
smallmoney | -214,748.3648 | +214,748.3647 |
money | -922,337,203,685,477.5808 | +922,337,203,685,477.5807 |
bit | 0 | 1 |
decimal | -10^38 +1 | 10^38 –1 |
SMALLINT | -32768 | 32767 |
Типы даты и времени
Тип | Нижняя граница | Верхняя граница |
---|---|---|
datetime (точность 3.33 миллисекунды) | -9.223.372.036.854.775.808 | 9.223.372.036.854.775.807 |
datetime2 (точность 100 наносекунд. Представлено в SQL Server 2008) | 1 января 0001 г. | 31 декабря 9999 г. |
time(точность 100 наносекунд. Представлено в SQL Server 2008) | 00: 00: 00,0000000 | 23: 59: 59,9999999 |
smalldatetime (с точностью до 1 минуты) | 1 января 1900 г. | 6 июня 2079 г. |
Другие типы данных
Запросы
Создание таблиц
Удаление таблиц
Оператор DROP TABLE используется для удаления таблицы и всех данных (индексов, ограничений, спецификаций разрешений для этой таблицы). При использовании этой команды необходимо соблюдать осторожность, поскольку после удаления таблицы вся доступная в ней информация также будет потеряна навсегда. Ниже приведен основной синтаксис рассматриваемого оператора.
Добавление новых строк
Инструкция INSERT INTO используется для добавления новых строк данных в таблицу в базе данных. Ниже приведены два основных синтаксиса оператора INSERT INTO.
Извлечения данных из таблицы
Указания условия
Изменения существующих записей в таблице
Запрос UPDATE используется для изменения существующих записей в таблице. Можно использовать предложение WHERE с запросом UPDATE для обновления выбранных строк. Ниже приведен основной синтаксис запроса UPDATE с предложением WHERE:
Вы можете объединить N условий с помощью операторов И или ИЛИ.
Удаления существующих записей
Запрос DELETE используется для удаления существующих записей из таблицы. Необходимо использовать предложение WHERE с запросом DELETE для удаления выбранных строк, иначе будут удалены все записи. Синтаксис:
Сравнение значения с аналогичными значениями
Условие LIKE используется для сравнения значения с аналогичными значениями с помощью подстановочных операторов. В сочетании с оператором LIKE используются два подстановочных знака:
Вы можете комбинировать N количество условий с помощью операторов AND или OR. XXXX может быть любым числовым или строковым значением.
Сортировка данных
Условие ORDER BY используется для сортировки данных в порядке возрастания или убывания, на основе одного или более столбцов. Некоторые запросы сортировки базы данных по умолчанию по возрастанию. Ниже приведен основной синтаксис ключевого слова ORDER BY:
Вы можете использовать более одного столбца в предложении ORDER BY, но тот столбец, который используется для сортировки, должен быть в списке столбцов.
Организации идентичных данных в группы
Условие GROUP BY используется совместно с оператором SELECT для организации идентичных данных в группы. Предложение GROUP BY следует за предложением WHERE в инструкции SELECT и предшествует предложению ORDER BY. Ниже приведен основной синтаксис предложения GROUP BY. Предложение GROUP BY должно следовать условиям в предложении WHERE и должно предшествовать предложению ORDER BY, если оно используется.
Получение уникальных записей
Ключевое слово DISTINCT используется совместно с оператором SELECT для устранения всех дубликатов записей и получения только уникальных записей. Может возникнуть ситуация, когда в таблице есть несколько повторяющихся записей. При извлечении таких записей имеет смысл извлекать только уникальные записи, а не извлекать дубликаты записей. Ниже приведен базовый синтаксис ключевого слова DISTINCT для устранения дубликатов записей:
Подзапросы
Подзапросы с инструкцией SELECT
Синтаксис
Подзапросы чаще всего используются с оператором SELECT. Ниже приведен базовый синтаксис
Подзапросы с инструкцией INSERT
Подзапросы также могут использоваться с операторами INSERT. Оператор INSERT использует данные, возвращаемые из подзапроса, для вставки в другую таблицу. Выбранные данные в подзапросе могут быть изменены с помощью любых функций символа, даты или числа.
Синтаксис
Ниже приведен базовый синтаксис.
Подзапросы с инструкцией UPDATE
Подзапрос может использоваться в сочетании с оператором UPDATE, тем самым будут обновлены один или несколько столбцов в таблице.
Синтаксис
Ниже приведен базовый синтаксис.
Подзапросы с инструкцией DELETE
Подзапрос может использоваться в сочетании как с оператором DELETE, как и с любыми другими упомянутыми выше ключевыми словами.
Синтаксис
Ниже приведен базовый синтаксис.
Объединение таблиц
Рассмотрим следующие две таблицы: (a) Первая таблица:
Приведем пример, присоединимся к этим двум таблицам в инструкции SELECT. Это можно осуществить следующим образом:
Вышеуказанная команда выдаст следующий результат.
Заметно, что соединение выполняется в предложении WHERE. Для объединения таблиц можно использовать несколько операторов. Однако наиболее распространенным оператором является символ равенства. В MS SQL Server существуют различные типы соединений:
Транзакции
Свойства транзакций
Транзакции имеют следующие четыре стандартных свойства:
Управление транзакциями
Существуют следующие команды, используемые для управления транзакциями:
Команды управления транзакциями используются только с командами DML INSERT, UPDATE и DELETE. Они не могут использоваться при создании таблиц или их удалении, поскольку эти операции автоматически фиксируются в базе данных. Чтобы использовать транзакционные команды управления в MS SQL Server, мы должны начать транзакцию с «begin tran» или начать команду транзакции, иначе эти команды не будут работать.
Команда COMMIT
Синтаксис
Ниже приведен синтаксис команды COMMIT.
Пример
Рассмотрим таблицу CUSTOMERS, имеющую следующие записи.
Следующий пример команды удалит записи из таблицы где значение столбца AGE равно 25.
В результате две строки из таблицы будут удалены, а инструкция SELECT выдаст следующий результат.
Команда ROLLBACK
Синтаксис
Ниже приведен синтаксис команды ROLLBACK.
Пример
Рассмотрим таблицу CUSTOMERS, имеющую следующие записи.
Следующий пример команды удалит записи из таблицы где значение столбца AGE равно 25.
В результате операция удаления не повлияет на таблицу, а инструкция SELECT приведет к следующему результату.
Команда SAVEPOINT
Синтаксис
Ниже приведен синтаксис команды SAVEPOINT.
Эта команда служит только для создания SAVEPOINT среди транзакционных операторов. Команда ROLLBACK используется для отмены группы транзакций.
Ниже приведен синтаксис для возврата к SAVEPOINT.
В следующем примере мы удалим три разные записи из таблицы CUSTOMERS. Нам нужно будет создать SAVEPOINT перед каждым удалением, чтобы мы могли в любой момент вернуть исходные данные.
Пример
Рассмотрим таблицу CUSTOMERS, имеющую следующие записи:
Ниже приведены серии операций
Эти три удаления произошли, однако мы передумали и решили использовать ROLLBACK для SAVEPOINT, которые мы идентифицировали как SP2. Поскольку SP2 был создан после первого удаления, последние два удаления отменены
Обратите внимание, что только первое удаление произошло после того, как мы вернулись к SP2.
Команда SET TRANSACTION
Команда SET TRANSACTION может использоваться для инициирования транзакции базы данных. Эта команда используется для указания характеристик для последующей транзакции.
Синтаксис
Индексы
Индексы представляют собой специальные таблицы поиска, которые поисковая система базы данных может использовать для ускорения поиска. Индекс является указателем на данные в таблице.
Индекс помогает ускорить запросы SELECT и предложения WHERE, но это замедляет ввод данных с помощью операторов UPDATE и INSERT. Индексы могут быть созданы или удалены без влияния на данные.
Команда CREATE INDEX
Ниже приведен основной синтаксис CREATE INDEX:
Одиночные колонки
Уникальные индексы
Уникальные индексы используются не только для производительности, но и для целостности данных. Уникальный индекс не позволяет вставлять повторяющиеся значения в таблицу. Ниже приведен базовый синтаксис:
Композитные индексы
Если используется только один столбец, должен быть выбран один столбцовый индекс. Если есть два или более столбца, которые часто используются в предложении WHERE в качестве фильтров, то лучше использовать составной индекс.
Неявные индексы
Команда DROP INDEX
Индекс можно отбросить с помощью команды DROP. Следует соблюдать осторожность, поскольку значение производительности может меняться в ту или иную сторону. Ниже приведен базовый синтаксис.
Когда следует избегать индексов?
Хотя индексы предназначены для повышения производительности баз данных, бывают случаи, когда их следует избегать. Следующие рекомендации указывают на необходимость пересмотра использования индекса
Хранимые процедуры
В качестве примера рассмотрим таблицу CUSTOMERS, имеющую следующие записи.
Следующая команда является примером, который извлекает все записи из таблицы CUSTOMERS в базе данных Testdb.
Приведенная выше команда выдаст следующий вывод.
Функции
MS SQL Server имеет много встроенных функций для выполнения обработки строковых или числовых данных. Ниже приведен список всех полезных встроенных функций SQL:
Строковые функции
Строковые функции MS SQL Server могут быть применены к строковому значению или будут возвращать строковое значение или числовые данные. Ниже приведен список функций String с примерами.
Значение кода Ascii будет выводиться для символьного выражения. Пример:
Символ Unicode придет как выход для данного целого числа. Следующий запрос даст символ Unicode для данного целого числа.
Начальная позиция для заданного поискового выражения будет отображаться в заданном строковом выражении. Следующий запрос даст начальную позицию символа «G» для данного строкового выражения «KING».
Количество символов будет выводиться для данного строкового выражения.Следующий запрос даст 5 для строкового выражения ‘HELLO’.
Строковое выражение придет в качестве вывода для данных строковых данных после удаления начальных пробелов. Следующий запрос даст «МИР» для символьных данных «WORLD».
Строковое выражение будет выводиться для заданных строковых данных после удаления конечных пробелов. Следующий запрос даст «INDIA » для символьных данных «INDIA ».
Строковое выражение придет в качестве вывода для данных строковых данных после замены всех вхождений указанного символа указанным символом. Следующий запрос выдаст строку ‘KNDKA’ для данных строки ‘INDIA’.
Повторное строковое выражение придет в качестве вывода для заданных строковых данных с указанным числом раз.Следующий запрос выдаст строку «WORLDWORLD» для данных строки «WORLD».
Возвращает четырехсимвольный код (SOUNDEX) для оценки сходства двух заданных строк. Следующий запрос даст «S530» для строк «Smith», «Smyth».
Символьные данные поступят как выходные данные для данных числовых данных. Следующий запрос даст 187,37 для данного 187,369 на основе заданной длины как 6 и десятичной как 2.
Целочисленное значение придет как выход для первого символа данного выражения. Следующий запрос даст 82 для выражения ‘RAMA’.
Данная строка будет выводиться с указанным разделителем. Следующий запрос выдаст «RAMA» для данной строки «RAMA», так как мы указали двойную кавычку в качестве разделителя.
Требуется начальная позиция первого вхождения из заданного выражения, поскольку мы указали позицию «I». Следующий запрос даст 1 для «INDIA».
Одна строка будет выводиться после объединения указанных значений параметров.Следующий запрос даст «A, B, C» для заданных параметров.
Функции даты
Он вернет текущую дату вместе со временем.
Он вернет часть даты или времени.
Он будет отображать дату и время путем сложения или вычитания даты и времени.
Он будет отображать дату и время между двумя датами.
Он будет отображать дату и время в разных форматах.
Абсолютное значение придет в качестве вывода для числового выражения.
Значение арккосинуса придет как выход для указанного числового выражения.
Значение арктангенса во всех четырех квадрантах будет выводиться для указанного числового выражения.
Минимальное значение придет как выход из данного выражения.
Квадратный корень данного числового выражения придет как выходной.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
Содержание
История
В 1986 году SQL был одобрен ANSI (Американским национальным институтом стандартов), а в 1987 году он был одобрен Международной организацией по стандартизации (ISO).
Типы данных
SQL Server предлагает семь категорий, включая другую категорию типов данных для использования. [Источник 4]
Тип | От | До |
---|---|---|
Float | -1.79E + 308 | 1.79E + 308 |
Real | -3.40E + 38 | 3.40E + 38 |
Тип | От | До |
---|---|---|
datetime(точность 3,33 миллисекунды) | 1 января 1753 г. | 31 декабря, 9999 |
smalldatetime(точность 1 минута) | 1 января 1900 года | 6 июня, 2079 |
date(точность на 1 день. Представлена в SQL Server 2008) | 1 января 0001 года | 31 декабря, 9999 |
datetimeoffset(точность 100 наносекунд. Представлена в SQL Server 2008) | 1 января 0001 года | 31 декабря, 9999 |
datetime2(точность 100 наносекунд, введенная в SQL Server 2008 ) | 1 января 0001 года | 31 декабря, 9999 |
time(точность 100 наносекунд. Представлена в SQL Server 2008 ) | 00: 00: 00,0000000 | 23: 59: 59,9999999 |
Другие типы данных
Cоздание таблиц
Создание базовой таблицы включает в себя именование таблицы и определение ее столбцов и типа данных каждого столбца. Оператор SQL Server CREATE TABLE используется для создания новой таблицы.
Синтаксис
Ниже приведен основной синтаксис оператора CREATE TABLE
Копию существующей таблицы можно создать, используя комбинацию оператора CREATE TABLE и оператора SELECT. Вы можете проверить полные данные в таблице с помощью другой таблицы.
Пример
Вы можете проверить, была ли ваша таблица успешно создана, просмотрев сообщение, отображаемое SQL-сервером, иначе вы можете использовать следующую команду:
Вышеуказанная команда производит следующий вывод.
Теперь вы можете увидеть, что таблица CUSTOMERS доступна в вашей базе данных, которую вы можете использовать для хранения необходимой информации, связанной с клиентами.
Удаление
Оператор SQL Server DROP TABLE используется для удаления определения таблицы и всех данных, индексов, триггеров, ограничений и спецификаций разрешений для этой таблицы.
Примечание. Вы должны быть осторожны при использовании этой команды, поскольку, как только таблица будет удалена, вся информация, доступная в таблице, также будет потеряна навсегда.
Синтаксис
Ниже приведен основной синтаксис оператора DROP TABLE
Пример
Сначала проверим таблицу CUSTOMERS, а затем удалим ее из базы данных
Вышеприведенная команда показывает следующую таблицу.
Таблица CUSTOMERS доступна в базе данных, поэтому давайте ее опустим. Ниже приведена команда для этого.
С помощью указанной команды вы не получите никаких строк.
INSERT
Оператор SQL Server INSERT INTO используется для добавления новых строк данных в таблицу в базе данных.
Синтаксис
Ниже приведены два основных синтаксиса инструкции INSERT INTO.
Вы не должны указывать имя столбца в SQL-запросе, если вы добавляете значения для всех столбцов таблицы. Но убедитесь, что порядок значений находится в том же порядке, что и столбцы в таблице. Ниже приведен синтаксис SQL INSERT INTO
Пример
Синтаксис
Вы можете создать запись в таблице CUSTOMERS, используя следующий синтаксис:
Заполнение одной таблицы с использованием другой таблицы
Вы можете заполнить данные в таблицу посредством инструкции SELECT по другой таблице, если в другой таблице есть набор полей, которые должны заполнять первую таблицу. Ниже приведен синтаксис
Инструкция SELECT
Синтаксис
Ниже приведен основной синтаксис инструкции SELECT
Пример
Рассмотрим таблицу CUSTOMERS, имеющую следующие записи:
Следующей командой является пример, который будет получать поля ID, Name и Salary для клиентов, доступных в таблице CUSTOMERS
Вышеуказанная команда выдаст следующий результат.
Если вы хотите получить все поля таблицы CUSTOMERS, используйте следующий запрос
Вышеприведенный результат даст следующий результат.
Инструкция UPDATE
SQL UPDATE Query используется для изменения существующих записей в таблице.
Вы можете использовать предложение WHERE с запросом UPDATE для обновления выбранных строк, иначе все строки будут затронуты.
Синтаксис
Ниже приведен основной синтаксис запроса UPDATE с предложением WHERE
Вы можете комбинировать N количество условий с помощью операторов AND или OR.
Пример
Рассмотрим таблицу CUSTOMERS, имеющую следующие записи:
Следующей командой является пример, который обновит ADDRESS для клиента с идентификатором 6
Таблица CUSTOMERS теперь будет иметь следующие записи:
Если вы хотите изменить все значения столбца ADDRESS и SALARY в таблице CUSTOMERS, вам не нужно использовать предложение WHERE. Запрос UPDATE будет следующим:
Таблица CUSTOMERS теперь будет иметь следующие записи.
Инструкция DELETE
SQL DELETE Query используется для удаления существующих записей из таблицы.
Вы должны использовать предложение WHERE с запросом DELETE для удаления выбранных строк, иначе все записи будут удалены.
Синтаксис
Ниже приведен основной синтаксис запроса DELETE с предложением WHERE
Вы можете комбинировать N количество условий с помощью операторов AND или OR.
Пример
Рассмотрим таблицу CUSTOMERS, имеющую следующие записи
Следующей командой является пример, который УДАЛИТЬ клиента, чей идентификатор равен 6
Таблица CUSTOMERS теперь будет иметь следующие записи.
Если вы хотите УДАЛИТЬ все записи из таблицы CUSTOMERS, вам не нужно использовать предложение WHERE. DELETE будет выглядеть следующим образом:
Таблица CUSTOMERS теперь не будет иметь никакой записи.
Условие WHERE
Условие WHERE в MS SQL Server используется для указания условия при извлечении данных из одной таблицы или присоединения к нескольким таблицам.
Если заданное условие выполняется, только тогда оно возвращает определенное значение из таблицы. Вам нужно будет использовать предложение WHERE для фильтрации записей и получения только необходимых записей.
Предложение WHERE используется не только в инструкции SELECT, но также используется в инструкциях UPDATE, DELETE и т. д.,
Синтаксис
Ниже приведен основной синтаксис оператора SELECT с предложением WHERE
Вы можете указать условие, используя сравнительные или логические операторы, такие как>, Пример
Рассмотрим таблицу CUSTOMERS, имеющую следующие записи
Вышеуказанная команда выдаст следующий результат.
Следующей командой является пример, который будет извлекать поля ID, Name и Salary из таблицы CUSTOMERS для клиента с именем «Hardik». Важно отметить, что все строки должны быть указаны внутри одинарных кавычек (), тогда как числовые значения должны указываться без каких-либо котировок, как в приведенном выше примере
Вышеуказанная команда выдаст следующий результат.
Условие LIKE
Знак процента представляет нулевой, один или несколько символов. Подчеркнутый символ представляет собой одно число или символ. Символы могут использоваться в комбинациях.
Синтаксис
Ниже приведен базовый синтаксис% и _.
Вы можете комбинировать N количество условий с помощью операторов AND или OR. XXXX может быть любым числовым или строковым значением.
Пример
Ниже приведен ряд примеров, показывающих, что часть WHERE имеет разные предложения LIKE с операторами «%» и «_».
Sr.No | Запрос и описание | Описание |
---|---|---|
1 | WHERE SALARY LIKE ‘200%’ | Находит любые значения, начинающиеся с 200 |
2 | WHERE SALARY LIKE ‘%200%’ | Находит любые значения, которые имеют 200 в любом положении |
3 | WHERE SALARY LIKE ‘_00%’ | Находит любые значения, которые имеют 00 во второй и третьей позициях |
4 | WHERE SALARY LIKE ‘2_%_%’ | Находит любые значения, начинающиеся с 2 и длиной не менее 3 символов |
5 | WHERE SALARY LIKE ‘%2’ | Находит любые значения, заканчивающиеся на 2 |
6 | WHERE SALARY LIKE ‘_2%3’ | Находит любые значения, которые имеют 2 во второй позиции и заканчиваются 3 |
7 | WHERE SALARY LIKE ‘2___3’ | Находит любые значения в пятизначном номере, начинающемся с 2, и заканчивается 3 |
Рассмотрим таблицу CUSTOMERS, имеющую следующие записи.
Вышеуказанная команда выдаст следующий результат.
Условие ORDER BY
Условие ORDER BY используется для сортировки данных в порядке возрастания или убывания, на основе одного или более столбцов. Некоторые запросы сортировки базы данных по умолчанию по возрастанию.
Синтаксис
Ниже приведен основной синтаксис предложения ORDER BY.
Вы можете использовать более одного столбца в предложении ORDER BY. Убедитесь, что любой столбец, который вы используете для сортировки, этот столбец должен быть в списке столбцов.
Пример
Рассмотрим таблицу CUSTOMERS, имеющую следующие записи:
Вышеуказанная команда выдаст следующий результат.
Следующей командой является пример, который сортирует результат в порядке убывания с помощью NAME.
Вышеприведенная команда даст следующий результат:
Условие GROUP BY
Условие GROUP BY используется совместно с оператором SELECT для организации идентичных данных в группы.
Предложение GROUP BY следует за предложением WHERE в инструкции SELECT и предшествует предложению ORDER BY.
Синтаксис
Ниже приведен основной синтаксис предложения GROUP BY. Предложение GROUP BY должно следовать условиям в предложении WHERE и должно предшествовать предложению ORDER BY, если оно используется.
Пример
Рассмотрим, что таблица CUSTOMERS имеет следующие записи:
Если вы хотите узнать общую сумму зарплаты для каждого клиента, следующим будет запрос GROUP BY.
Вышеуказанная команда выдаст следующий результат.
Если мы хотим узнать общую сумму зарплаты для каждого клиента, то следующим будет запрос GROUP BY.
Вышеуказанная команда выдаст следующий результат.
Условие DISTINCT
Ключевое слово MS SQL Server DISTINCT используется совместно с оператором SELECT для устранения всех дубликатов записей и получения только уникальных записей.
Может возникнуть ситуация, когда в таблице есть несколько повторяющихся записей. При извлечении таких записей имеет смысл извлекать только уникальные записи, а не извлекать дубликаты записей.
Синтаксис
Ниже приведен базовый синтаксис ключевого слова DISTINCT для устранения дубликатов записей.
Пример
Рассмотрим таблицу CUSTOMERS, имеющую следующие записи.
Посмотрим, как следующий запрос SELECT возвращает повторяющиеся записи зарплаты.
Вышеприведенная команда выдаст следующий результат, где зарплата 2000 поступает дважды, что является дубликатной записью из исходной таблицы.
Давайте теперь используем ключевое слово DISTINCT с вышеуказанным запросом SELECT и видим результат.
Вышеприведенная команда выводит следующий результат, в котором у нас нет дубликатов.
Объединение таблиц
Рассмотрим следующие две таблицы: (a) Таблица CUSTOMERS выглядит следующим образом:
Давайте присоединимся к этим двум таблицам в инструкции SELECT следующим образом:
Вышеуказанная команда выдаст следующий результат.
Заметно, что соединение выполняется в предложении WHERE. Для объединения таблиц можно использовать несколько операторов, таких как. все они могут использоваться для объединения таблиц. Однако наиболее распространенным оператором является символ равенства.
В MS SQL Server существуют различные типы соединений,
Вложенный запрос
Подзапрос или внутренний запрос или вложенный запрос является запросом в другом запросе SQL Server и заливал в ИНЕКЕ. Подзапрос используется для возврата данных, которые будут использоваться в основном запросе, в качестве условия для дальнейшего ограничения данных, которые будут извлечены.
Синтаксис
Подзапросы чаще всего используются с оператором SELECT. Ниже приведен базовый синтаксис
Пример
Рассмотрим таблицу CUSTOMERS, имеющую следующие записи.
Давайте применим следующий подзапрос с инструкцией SELECT.
Вышеуказанная команда выдаст следующий результат.
Подзапросы с инструкцией INSERT
Sub-запросы также могут использоваться с операторами INSERT. Оператор INSERT использует данные, возвращаемые из подзапроса, для вставки в другую таблицу. Выбранные данные в подзапросе могут быть изменены с помощью любых функций символа, даты или числа.
Синтаксис
Ниже приведен базовый синтаксис.
Пример
Рассмотрим таблицу CUSTOMERS_BKP с аналогичной структурой, такой как таблица CUSTOMERS. Ниже приведен синтаксис для копирования полной таблицы CUSTOMERS в CUSTOMERS_BKP.
Подзапросы с инструкцией UPDATE
Подзапрос может использоваться в сочетании с оператором UPDATE. Либо один или несколько столбцов в таблице могут быть обновлены при использовании подзапроса с помощью инструкции UPDATE.
Синтаксис
Ниже приведен базовый синтаксис.
Пример
Предположим, что имеется таблица CUSTOMERS_BKP, которая является резервной копией таблицы CUSTOMERS.
Следующий пример команды обновляет SALARY в 0,25 раза в таблице CUSTOMERS для всех клиентов, AGE которых больше или равно 27.
Это повлияет на две строки, и, наконец, таблица CUSTOMERS будет иметь следующие записи.
Подзапросы с инструкцией DELETE
Подзапрос может использоваться в сочетании с оператором DELETE, как и с любыми другими упомянутыми выше утверждениями.
Синтаксис
Ниже приведен базовый синтаксис.
Пример
Предположим, что имеется таблица CUSTOMERS_BKP, которая является резервной копией таблицы CUSTOMERS.
В следующем примере команда удаляет записи из таблицы CUSTOMERS для всех клиентов, AGE которых больше или равно 27.
Это повлияет на две строки, и, наконец, таблица CUSTOMERS будет иметь следующие записи.
Хранимая процедура
Хранимая процедура MS SQL Server используется, чтобы сэкономить время, чтобы писать код снова и снова, сохраняя его в базе данных, а также получать требуемый вывод, передавая параметры.
Синтаксис
Ниже приведен основной синтаксис создания хранимой процедуры.
Пример
Рассмотрим таблицу CUSTOMERS, имеющую следующие записи.
Вышеуказанная команда выдаст следующий результат.
Транзакции
Практически вы соберете множество SQL-запросов в группу, и вы будете выполнять их все вместе как часть транзакции.
Свойства транзакций
Управление транзакциями
Команды управления транзакциями используются только с командами DML INSERT, UPDATE и DELETE. Они не могут использоваться при создании таблиц или их удалении, поскольку эти операции автоматически фиксируются в базе данных.
Чтобы использовать транзакционные команды управления в MS SQL Server, мы должны начать транзакцию с «begin tran» или начать команду транзакции, иначе эти команды не будут работать.
Команда COMMIT
Синтаксис
Ниже приведен синтаксис команды COMMIT.
Пример
Рассмотрим таблицу CUSTOMERS, имеющую следующие записи.
Следующий пример команды удалит записи из таблицы с возрастом = 25, а затем COMMIT изменения в базе данных.
В результате две строки из таблицы будут удалены, а инструкция SELECT выдаст следующий результат.
Команда ROLLBACK
Синтаксис
Ниже приведен синтаксис команды ROLLBACK.
Пример
Рассмотрим таблицу CUSTOMERS, имеющую следующие записи.
Следующий пример команды удалит записи из таблицы с возрастом = 25, а затем ROLLBACK изменения в базе данных.
В результате операция удаления не повлияет на таблицу, а инструкция SELECT приведет к следующему результату.
Команда SAVEPOINT
Синтаксис
Ниже приведен синтаксис команды SAVEPOINT.
Эта команда служит только для создания SAVEPOINT среди транзакционных операторов. Команда ROLLBACK используется для отмены группы транзакций.
Ниже приведен синтаксис для возврата к SAVEPOINT.
В следующем примере мы удалим три разные записи из таблицы CUSTOMERS. Нам нужно будет создать SAVEPOINT перед каждым удалением, чтобы мы могли в любой момент ROLLBACK в любой SAVEPOINT вернуть исходные данные в соответствующие исходные данные.
Пример
Рассмотрим таблицу CUSTOMERS, имеющую следующие записи:
Ниже приведены серии операций
Эти три удаления произошли, однако мы передумали и решили использовать ROLLBACK для SAVEPOINT, которые мы идентифицировали как SP2. Поскольку SP2 был создан после первого удаления, последние два удаления отменены
Обратите внимание, что только первое удаление произошло после того, как мы вернулись к SP2.
Команда SET TRANSACTION
Команда SET TRANSACTION может использоваться для инициирования транзакции базы данных. Эта команда используется для указания характеристик для последующей транзакции.
Синтаксис
Индексы
Индексы представляют собой специальные таблицы поиска, которые поисковая система базы данных может использовать для ускорения поиска данных. Проще говоря, индекс является указателем на данные в таблице. Индекс в базе данных очень похож на индекс в конце книги.
Например, если вы хотите ссылаться на все страницы книги, в которых обсуждается определенная тема, сначала обратитесь к индексу, в котором перечислены все темы в алфавитном порядке и затем указаны один или несколько конкретных номеров страниц.
Индекс помогает ускорить запросы SELECT и предложения WHERE, но это замедляет ввод данных с помощью операторов UPDATE и INSERT. Индексы могут быть созданы или удалены без влияния на данные.
Создание индекса включает оператор CREATE INDEX, который позволяет вам указывать индекс, указывать таблицу и столбцы или столбцы для индексации, а также указывать, находится ли индекс в порядке возрастания или убывания.
Индексы также могут быть уникальными, подобно ограничению UNIQUE, поскольку индекс предотвращает дублирование записей в столбце или комбинации столбцов, на которых есть индекс.
Команда CREATE INDEX
Ниже приведен основной синтаксис CREATE INDEX.
Синтаксис
Одиночные колонки
Синтаксис
Пример
Уникальные индексы
Уникальные индексы используются не только для производительности, но и для целостности данных. Уникальный индекс не позволяет вставлять повторяющиеся значения в таблицу. Ниже приведен базовый синтаксис.
Синтаксис
Пример
Композитные индексы
Синтаксис
Пример
Чтобы создать индекс с одним столбцом или составной индекс, учитывайте столбцы (столбцы), которые вы можете использовать очень часто в предложении WHERE запроса в качестве условий фильтра.
Если используется только один столбец, должен быть выбран один столбцовый индекс. Если есть два или более столбца, которые часто используются в предложении WHERE в качестве фильтров, составной индекс будет лучшим выбором.
Неявные индексы
Команда DROP INDEX
Индекс можно отбросить с помощью команды MS SQL SERVER DROP. Следует соблюдать осторожность при снижении индекса, поскольку производительность может замедляться или улучшаться.
Синтаксис
Ниже приведен базовый синтаксис.
Когда следует избегать индексов?
Хотя индексы предназначены для повышения производительности баз данных, бывают случаи, когда их следует избегать. Следующие рекомендации указывают на необходимость пересмотра использования индекса
Вывод
В ходе данной работы были рассмотрены основные особенности Transact-SQL, а также была продемонстрирована работа основных операторов и изучены типы данных. Был продемонстрирован процесс создания простой базы данных с помощью T-SQL.
На основе проделанной работы можно сделать вывод о том, что Transact-SQL, в отличии от SQL, имеет дополнительные возможности такие как:
Весь этот функционал дает обширные возможности для разработчиков.