Типы функций в языке T-SQL (Microsoft SQL Server)

Приветствую Вас на сайте Info-Comp.ru! В данном материале мы рассмотрим все типы функций, которые существуют в языке T-SQL.

Типы функций в языке T-SQL (Microsoft SQL Server)

Функция в базе данных – это подпрограмма внутри базы данных, реализующая определенный алгоритм.

В Microsoft SQL Server существуют следующие типы функций.

Пользовательские функции в T-SQL

Пользовательские функции (UDF – User Defined Functions) – это функции, которые создаём мы — пользователи, т.е. программисты T-SQL.

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

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

Заметка! Для чего нужны пользовательские функции в T-SQL.

В Microsoft SQL Server пользовательские функции делятся на несколько типов.

  • Скалярные функции – это функции, которые возвращают одно значение заданного типа данных;
  • Табличные функции – это функции, которые возвращают табличные данные, т.е. данные типа TABLE.

Встроенные функции T-SQL

Кроме пользовательских функций, которые создаём мы, в Microsoft SQL Server есть ещё и функции, которые созданы разработчиками СУБД с целью выполнения различных, часто встречающихся операций. Такие функции называется – встроенные функции.

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

В Microsoft SQL Server существует множество встроенных функций. Все их можно подразделить на группы по назначению.

Заметка! Чем отличаются функции от хранимых процедур в T-SQL.

Агрегатные функции

Агрегатные функции – это функции, которые выполняют определенное вычисление на наборе значений и возвращают одиночное значение.

Агрегатные функции обычно используются в сочетании с группировкой GROUP BY инструкции SELECT.

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

К агрегатным функциям T-SQL относятся:

  • AVG
  • SUM
  • MAX
  • MIN
  • COUNT
  • COUNT_BIG
  • APPROX_COUNT_DISTINCT
  • CHECKSUM_AGG
  • GROUPING
  • GROUPING_ID
  • STDEV
  • STDEVP
  • STRING_AGG
  • VAR
  • VARP

Строковые функции

Строковые функции – это функции, которые работают со строками, иными словами, с текстовыми значениями в столбце, т.е. выполняют различные операции над текстом.

Практически все встроенные строковые функции (кроме FORMAT) являются детерминированными.

К строковым функциям T-SQL относятся:

  • LEN
  • LEFT
  • RIGHT
  • LTRIM
  • RTRIM
  • TRIM
  • LOWER
  • UPPER
  • SUBSTRING
  • CONCAT
  • CONCAT_WS
  • ASCII
  • CHAR
  • NCHAR
  • CHARINDEX
  • REPLACE
  • SPACE
  • STR
  • PATINDEX
  • QUOTENAME
  • и другие.

Заметка! Конкатенация строк в T-SQL. Способы используемые в Microsoft SQL Server.

Математические функции

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

Все математические функции, кроме RAND, являются детерминированными.

  • FLOOR
  • CEILING
  • ROUND
  • ABS
  • PI
  • POWER
  • RAND
  • SIGN
  • SQRT
  • SQUARE
  • COS
  • ACOS
  • SIN
  • ASIN
  • TAN
  • ATAN
  • COT
  • LOG
  • и другие.

Функции для работы с датой и временем

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

  • GETDATE
  • DATENAME
  • DATEPART
  • DAY
  • MONTH
  • YEAR
  • DATEDIFF
  • DATEADD
  • ISDATE
  • и другие.

Заметка! Статистика в Microsoft SQL Server – что это такое и для чего она нужна.

Функции преобразования

Функции преобразования – это функции, которые позволяют преобразовать значение одного типа данных в другой.

  • CAST
  • TRY_CAST
  • CONVERT
  • TRY_CONVERT
  • PARSE
  • TRY_PARSE

Логические функции

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

  • IIF
  • CHOOSE

Заметка! Логическая функция CHOOSE в T-SQL – описание и примеры использования.

Функции работы с курсорами

Такие функции возвращают сведения о курсорах.

Все функции работы с курсорами являются недетерминированными.

  • @@CURSOR_ROWS
  • @@FETCH_STATUS
  • CURSOR_STATUS

Функции JSON

Такие функции предназначены для работы с форматом данных JSON.

  • ISJSON
  • JSON_VALUE
  • JSON_QUERY
  • JSON_MODIFY

Заметка! Работа с JSON в Microsoft SQL Server.

Ранжирующие функции

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

  • ROW_NUMBER
  • RANK
  • DENSE_RANK
  • NTILE

Аналитические функции

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

  • FIRST_VALUE
  • LAST_VALUE
  • LAG
  • LEAD
  • PERCENT_RANK
  • PERCENTILE_CONT
  • PERCENTILE_DISC
  • CUME_DIST

Заметка! Как включить нумерацию строк кода в SQL Server Management Studio.

Функции конфигурации

Функции конфигурации – это функции, которые возвращают сведения о текущих значениях параметров конфигурации.

Все функции конфигурации являются недетерминированными.

  • @@DATEFIRST
  • @@DBTS
  • @@LANGID
  • @@LANGUAGE
  • @@LOCK_TIMEOUT
  • @@MAX_CONNECTIONS
  • @@MAX_PRECISION
  • @@NESTLEVEL
  • @@OPTIONS
  • @@REMSERVER
  • @@SERVERNAME
  • @@SERVICENAME
  • @@SPID
  • @@TEXTSIZE
  • @@VERSION

Функции метаданных

Функции метаданных – это функции, которые возвращают сведения о базах данных и объектах баз данных. Все функции метаданных являются недетерминированными.

  • VERSION
  • DB_ID
  • DB_NAME
  • FILE_ID
  • FILE_NAME
  • APP_NAME
  • OBJECT_ID
  • OBJECT_NAME
  • SCHEMA_ID
  • SCHEMA_NAME
  • SCOPE_IDENTITY
  • TYPE_ID
  • TYPE_NAME
  • PARSENAME
  • SERVERPROPERTY
  • и другие.

Заметка! Всем тем, кто только начинает свое знакомство с языком SQL, рекомендую прочитать книгу «SQL код» – это самоучитель по языку SQL для начинающих программистов. В ней очень подробно рассмотрены основные конструкции языка.

Функции безопасности

Функции безопасности – это функции, которые возвращают данные о пользователях и ролях. Иными словами, такие функции возвращают сведения, необходимые для управления безопасностью.

  • IS_MEMBER
  • IS_ROLEMEMBER
  • IS_SRVROLEMEMBER
  • SUSER_SNAME
  • SYSTEM_USER
  • SUSER_NAME
  • USER_ID
  • USER_NAME
  • SUSER_SID
  • SESSION_USER
  • CURRENT_USER
  • и другие.

Системные функции

Системные функции – это функции, которые выполняют операции над значениями, объектами и параметрами экземпляра Microsoft SQL Server и возвращают сведения о них.

Системные статистические функции

Такие функции возвращают статистические сведения о системе. Все системные статистические функции являются недетерминированными.

  • @@CONNECTIONS
  • @@PACK_RECEIVED
  • @@CPU_BUSY
  • @@PACK_SENT
  • fn_virtualfilestats
  • @@TIMETICKS
  • @@IDLE
  • @@TOTAL_ERRORS
  • @@IO_BUSY
  • @@TOTAL_READ
  • @@PACKET_ERRORS
  • @@TOTAL_WRITE

Заметка! Курсы по T-SQL для начинающих.

На сегодня это все, надеюсь, материал был Вам полезен, пока!

Понравилась статья? Поделиться с друзьями:
Заметки IT специалиста
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:
Нажимая на кнопку «Отправить комментарий», я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.