What are the sql database functions?
Содержание:
- ODBC для C++
- Хранение данных
- Логический порядок обработки инструкции SELECT
- FOR BROWSE
- Поддержка операционных систем
- Using SQL Server with client/server applications
- Веб-сайт для создания приложений (клиентских приложений SQL)
- Управление серверными и клиентскими сетевыми протоколами
- Использование инструкции EXIT для возвращения результатов программы osql
- Entity Framework (EF) с C#
- SQL Server editions
ODBC для C++
Открытый интерфейс доступа к базам данных (ODBC) был разработан в 1990 году. Он предшествовал .NET Framework. ODBC разработан для того, чтобы быть независимым от какой-либо конкретной системы баз данных и операционной системы.
За много лет разработчики в корпорации Майкрософт и других компаниях создали и выпустили множество драйверов ODBC. Набор драйверов включает в себя несколько клиентских языков программирования. Список целевых объектов данных выходит далеко за пределы SQL Server.
Некоторые другие драйверы подключения используют ODBC внутренним образом.
Разделы документации
Содержимое ODBC в этом разделе посвящено доступу к SQL Server или Базе данных SQL Azure с помощью C++. В следующей таблице приведены приблизительные структурные разделы основной документации по ODBC.
Область | Подобласть | Описание |
---|---|---|
ODBC для C++ | Корневой раздел нашей документации. | |
Linux — macOS | Сведения об использовании ODBC в операционных системах Linux или macOS. | |
Windows | Сведения об использовании ODBC в операционной системе Windows. | |
Администрирование | Средство администрирования для управления источниками данных ODBC. | |
Майкрософт | Различные драйверы ODBC, создаваемые и предоставляемые корпорацией Майкрософт. | |
Основные понятия и справочные материалы | Основные сведения об интерфейсе ODBC, а также обычная справочная информация. | |
« | Приложения | Таблицы переходов состояния, библиотека курсоров ODBC и многое другое. |
« | Разработка приложения | Функции, дескрипторы и многое другое. |
« | Разработка драйверов | Сведения о разработке собственного драйвера ODBC, если у вас есть специализированный источник данных. |
« | Установка | Установка ODBC, подразделы и многое другое. |
« | Синтаксис | API для настройки, установки, перевода и доступа к данным. |
Хранение данных
Хранилище данных представляет собой базу данных, которая представляет собой набор таблиц из типизированных столбцов. SQL Server поддерживает различные типы данных, включая основные, такие как Integer, Float, Decimal, Сhar, Varchar, двоичный, Text и другие.
Статистика сервера доступна в виде виртуальных таблиц и представлений (так называемые Динамические административные представления или DMV). В дополнение к таблицам, база данных может также содержать другие объекты, в том числе представления, процедуры, индексы и ограничения, а также журнал транзакций. База данных SQL Server может содержать максимум 231 объект, и может охватывать несколько файлов на уровне операционной системы с максимальным размером файла 260 байт. Данные в базе данных хранятся в первичных файлах данных с расширением .mdf. Вторичные файлы данных, которые были определены с расширением .ndf, используются, чтобы данные единой базы данных могли распространяться на более чем один файл, и, возможно, более чем на одну файловую систему. Файлы журнала идентифицируются с .ldf расширением.
Дисковое пространство базы данных делится на последовательно пронумерованные страницы, каждая по 8 КБ. Страница является основной единицей ввода / вывода для операций SQL Server. Страница отмечена 96-байтный заголовком, который хранит метаданные о странице, включая номер страницы, тип страницы, свободное пространство на странице и идентификатор объекта, которому они принадлежат. Тип страницы определяет данные, содержащиеся на странице: данные, хранящиеся в базе данных, индекс, карту распределения, карту изменения, которая содержит информацию об изменениях, внесенных в другие страницы с момента последнего резервного копирования или протоколирования, или содержат большие типы данных, такие как изображение или текст.
Для физического хранения таблицы, ее строки разделены на ряд разделов (пронумерованных от 1 до N). Размер раздела определяется пользователем; по умолчанию все строки находятся в одном разделе. Таблица разделена на несколько разделов, чтобы распределить базу данных по кластерам. Строки в каждом разделе хранятся в виде B-дерева или кучи.
Логический порядок обработки инструкции SELECT
Следующие действия демонстрируют логический порядок обработки или порядок привязки инструкции SELECT. Этот порядок определяет, когда объекты, определенные в одном шаге, становятся доступными для предложений в последующих шагах. Например, если обработчик запросов можно привязать (для доступа) к таблицам или представлениям, определенным в предложении FROM, эти объекты и их столбцы становятся доступными для всех последующих шагов. И наоборот, поскольку предложение SELECT является шагом 8, любые псевдонимы столбцов или производных столбцов, определенные в этом предложении, не могут быть объектом для ссылки предыдущих предложений. Вместе с тем к ним могут обращаться последующие предложения, например предложение ORDER BY. Фактическое физическое выполнение инструкции определяется обработчиком запросов и порядок из этого списка может значительно отличаться.
- FROM
- ON
- JOIN
- WHERE
- GROUP BY
- WITH CUBE или WITH ROLLUP
- HAVING
- SELECT
- DISTINCT
- ORDER BY
- В начало
Предупреждение
Как правило, применяется предыдущая последовательность. Однако в редких случаях может быть указана другая последовательность.
Например, предположим, что в представлении есть кластеризованный индекс и представление исключает некоторые строки таблицы, а для списка столбцов SELECT представления используется инструкция CONVERT, которая изменяет тип данных с varchar на integer. В этом случае CONVERT может выполняться до выполнения предложения WHERE. Это нестандартное поведение. Если это имеет значение в вашем случае, можно изменить представление, чтобы исключить использование другой последовательности.
FOR BROWSE
BROWSE
Активирует возможность обновления данных во время их просмотра с помощью курсора в режиме обзора DB-Library. Таблицу можно просмотреть внутри приложения, если в таблице содержится столбец timestamp, таблице присвоен уникальный индекс или в конце инструкции SELECT, отсылаемой экземпляру SQL Server, имеется параметр FOR BROWSE.
Примечание
Нельзя использовать синтаксис <lock_hint> HOLDLOCK для инструкции SELECT, включающей в себя параметр FOR BROWSE.
Параметр FOR BROWSE не может быть использован в инструкциях SELECT, соединенных оператором UNION.
Примечание
Если ключевые столбцы уникального индекса таблицы могут принимать неопределенные значения, а таблица находится внутри внешнего соединения, индексы в режиме обзора не поддерживаются.
Режим просмотра позволяет просматривать строки в таблице SQL Server и обновлять данные в таблице по одной строке одновременно. Чтобы получить доступ к таблице SQL Server в приложении в режиме просмотра, необходимо использовать один из следующих вариантов.
-
Инструкция SELECT, применяемая для получения доступа к данным таблицы SQL Server, должна оканчиваться ключевыми словами FOR BROWSE. Если для использования режима просмотра включен параметр FOR BROWSE, создаются временные таблицы.
-
Необходимо выполнить следующую инструкцию Transact-SQL, чтобы включить режим просмотра с параметром NO_BROWSETABLE:
После включения параметра NO_BROWSETABLE все инструкции SELECT действуют так, как если бы к инструкциям был добавлен параметр FOR BROWSE. Однако параметр NO_BROWSETABLE не создает временные таблицы, которые обычно используются параметром FOR BROWSE, чтобы передать результаты в приложение.
Если предпринимается попытка получить доступ к данным таблиц SQL Server в режиме просмотра с помощью запроса SELECT, содержащего инструкцию внешнего соединения, и если определен уникальный индекс в таблице, которая присутствует во внутренней части инструкции внешнего соединения, в режиме просмотра не поддерживается уникальный индекс. В режиме просмотра уникальный индекс поддерживается, только если все ключевые столбцы уникального индекса могут принимать значения NULL. Уникальный индекс не поддерживается в режиме просмотра, если следующие условия являются истинными.
-
Предпринимается попытка получить доступ к данным таблиц SQL Server в режиме просмотра с использованием запроса SELECT, содержащего инструкцию внешнего соединения.
-
Уникальный индекс определен на таблице, которая присутствует во внутренней части инструкции внешнего соединения.
Чтобы воспроизвести это поведение в режиме просмотра, выполните следующие шаги.
В среде SQL Server Management Studio создайте базу данных с именем SampleDB.
В базе данных SampleDB создайте таблицы tleft и tright так, чтобы каждая содержала один столбец с именем c1. Определите уникальный индекс на столбце c1 в таблице tleft и предусмотрите, чтобы этот столбец принимал значения NULL. Чтобы это сделать, выполните в соответствующем окне запроса следующие инструкции Transact-SQL:
Вставьте несколько значений в таблицу tleft и таблицу tright. Обязательно вставьте значение NULL в таблицу tleft. Чтобы это сделать, выполните в окне запроса следующие инструкции Transact-SQL:
Включите параметр NO_BROWSETABLE. Чтобы это сделать, выполните в окне запроса следующие инструкции Transact-SQL:
Получите доступ к данным в таблице tleft и таблице tright с помощью инструкции внешнего соединения в запросе SELECT. Убедитесь, что таблица tleft находится во внутренней части инструкции внешнего соединения
Чтобы это сделать, выполните в окне запроса следующие инструкции Transact-SQL:
Обратите внимание на следующие выходные данные на панели «Результаты»:
c1
—-
NULL
NULL
После выполнения запроса SELECT для получения доступа к таблицам в режиме просмотра результирующий набор запроса SELECT содержит два значения NULL для столбца c1 в таблице tleft, поскольку таково определение инструкции правого внешнего соединения. Поэтому в результирующем наборе невозможно различить значения NULL, полученные из таблицы, и значения NULL, добавленные инструкцией правого внешнего соединения. Могут быть получены неверные результаты, если необходимо пропустить значения NULL из результирующего набора.
Примечание
Если столбцы, которые включены в уникальный индекс, не допускают значения NULL, это значит, что все значения NULL в результирующем наборе были добавлены инструкцией правого внешнего соединения.
Поддержка операционных систем
В следующей таблице показано, какие версии SQL Server 2016 и 2017 совместимы с различными версиями Windows:
Выпуск SQL Server: | Enterprise | Разработчик | Standard | Интернет | Express |
---|---|---|---|---|---|
Windows Server 2019 Datacenter | Да | Да | Да | Да | Да |
Windows Server 2019 Standard | Да | Да | Да | Да | Да |
Windows Server 2019 Essentials | Да | Да | Да | Да | Да |
Windows Server 2016 Datacenter | Да | Да | Да | Да | Да |
Windows Server 2016 Standard | Да | Да | Да | Да | Да |
Windows Server 2016 Essentials | Да | Да | Да | Да | Да |
Windows Server 2012 R2 Datacenter | Да | Да | Да | Да | Да |
Windows Server 2012 R2 Standard | Да | Да | Да | Да | Да |
Windows Server 2012 R2 Essentials | Да | Да | Да | Да | Да |
Windows Server 2012 R2 Foundation | Да | Да | Да | Да | Да |
Windows Server 2012 Datacenter | Да | Да | Да | Да | Да |
Windows Server 2012 Standard | Да | Да | Да | Да | Да |
Windows Server 2012 Essentials | Да | Да | Да | Да | Да |
Windows Server 2012 Foundation | Да | Да | Да | Да | Да |
Windows 10 IoT Корпоративная | нет | Да | Да | нет | Да |
Windows 10 Корпоративная | нет | Да | Да | нет | Да |
Windows 10 Профессиональная | нет | Да | Да | нет | Да |
Windows 10 Домашняя | нет | Да | Да | нет | Да |
Windows 8.1 Корпоративная | нет | Да | Да | нет | Да |
Windows 8.1 Профессиональная | нет | Да | Да | нет | Да |
Windows 8.1 Корпоративная | нет | Да | Да | нет | Да |
Windows 8 Профессиональная | нет | Да | Да | нет | Да |
Windows 8 | нет | Да | Да | нет | Да |
Минимальные требования к версиям для установки SQL Server в Windows Server 2012 или Windows 8 см. в разделе Установка SQL Server в Windows Server 2012 и Windows 8.
Поддержка Server Core
Установка SQL Server 2016 и 2017 в режиме основных серверных компонентов поддерживается в следующих выпусках Windows Server:
Дополнительные сведения об установке SQL Server на Server Core см. в разделе Установка SQL Server на Server Core.
Поддержка WOW64
WOW64 (32-разрядная Windows в 64-разрядной Windows) — это компонент 64-разрядных выпусков Windows, который позволяет выполнять 32-разрядные приложения в собственном 32-разрядном режиме. Приложения работают в 32-разрядном режиме даже в случае, если базовая операционная система является 64-разрядной. Режим WOW64 не поддерживается для установок SQL Server . Тем не менее в режиме WOW64 могут работать средства управления.
Функции, поддерживаемые в 32-разрядных клиентских операционных системах
Клиентские операционные системы Windows, такие как Windows 10 и Windows 8.1, могут иметь 32-разрядную или 64-разрядную архитектуру. Полная поддержка всех функций SQL Server доступна только в 64-разрядных операционных системах. В поддерживаемых 32-разрядных операционных системах Microsoft поддерживаются следующие функции:
- Клиент Data Quality
- Средства связи клиентских средств
- Службы Integration Services
- Обратная совместимость клиентских средств
- Пакет SDK клиентских средств
- Компоненты документации
- Компоненты распределенного воспроизведения
- Контроллер распределенного воспроизведения
- Клиент распределенного воспроизведения
- Пакет SDK для подключения клиентов SQL
Windows Server 2008 R2 и серверные операционные системы более поздней версии не поддерживают 32-разрядную архитектуру. Все поддерживаемые серверные операционные системы доступны только с 64-разрядной архитектурой. Полная поддержка всех функций доступна только в 64-разрядных серверных операционных системах.
Using SQL Server with client/server applications
You can install just the SQL Server client components on a computer that is running client/server applications that connect directly to an instance of SQL Server. A client components installation is also a good option if you administer an instance of SQL Server on a database server, or if you plan to develop SQL Server applications.
The client tools option installs the following SQL Server features: backward compatibility components, SQL Server Data Tools, connectivity components, management tools, software development kit, and SQL Server Books Online components. For more information, see Install SQL Server.
Running with IIS
On an internet server, such as a server that is running Internet Information Services (IIS), you will typically install the SQL Server client tools. Client tools include the client connectivity components used by an application connecting to an instance of SQL Server.
Note
Although you can install an instance of SQL Server on a computer that is running IIS, this is typically done only for small Web sites that have a single server computer. Most Web sites have their middle-tier IIS systems on one server or a cluster of servers, and their databases on a separate server or federation of servers.
Веб-сайт для создания приложений (клиентских приложений SQL)
На нашем веб-сайте для создания приложений можно выбрать один из длинного списка языков программирования для подключения к SQL Server. Клиентская программа может работать с различными операционными системами.
Веб-сайт для создания приложений уделяет особое внимание простоте и доступности функций для начинающих разработчиков. Приведенные ниже шаги показывают, как это сделать
- Установка Microsoft SQL Server
- Скачивание и установка средств и драйверов.
- Осуществление необходимых настроек в соответствии с выбранной операционной системой.
- Компиляция предоставленного исходного кода.
- Как запустить программу.
Далее представлено несколько приблизительных разделов с описаниями, содержащихся на веб-сайте.
Java в Ubuntu
- Настройка среды
- Шаг 1.1. Установка SQL Server
- Шаг 1.2. Установка Java.
- Шаг 1.3. Установка пакета средств разработки Java (JDK).
- Шаг 1.4. Установка Maven.
- Создание приложения Java с помощью SQL Server.
- Шаг 2.1. Создание приложения Java, которое подключается к SQL Server и выполняет запросы.
- Шаг 2.2. Создание приложения Java, которое подключается к SQL Server с помощью популярной платформы Hibernate.
- Ускорение работы приложения Java в 100 раз.
Python в Windows
- Настройка среды
- Шаг 1.1. Установка SQL Server
- Шаг 1.2. Установка Python.
- Шаг 1.3. Установка драйвера ODBC и служебной программы командной строки SQL для SQL Server.
- Создание приложения Python с помощью SQL Server.
- Шаг 2.1. Установка драйвера Python для SQL Server.
- Шаг 2.2. Создание базы данных для приложения.
- Шаг 2.3. Создание приложения Python, которое подключается к SQL Server и выполняет запросы.
- Ускорение работы приложения Python в 100 раз.
- Шаг 3.1. Создание новой таблицы с 5 млн записей с помощью программы sqlcmd.
- Шаг 3.2. Создание приложения Python, которое запрашивает эту таблицу и измеряет затраченное время.
- Шаг 3.3. Измерение времени, затрачиваемого на выполнение запроса.
- Шаг 3.4. Добавление индекса columnstore в таблицу.
- Шаг 3.5. Измерение времени, затрачиваемого на выполнение запроса с индексом columnstore.
На следующих снимках экрана показано, как выглядит наш веб-сайт документации по разработке SQL.
Управление серверными и клиентскими сетевыми протоколами
SQL Server позволяет настраивать серверные и клиентские сетевые протоколы, а также параметры подключения. После включения правильных протоколов обычно не нужно менять сетевые подключения сервера. В то же время диспетчер конфигурации SQL Server можно использовать для перенастройки соединений, чтобы SQL Server прослушивал определенный сетевой протокол, порт или канал. Дополнительные сведения о включении протоколов см. в разделе Включение или отключение сетевого протокола сервера. Сведения о разрешении доступа к протоколам в брандмауэре см в разделе Настройка брандмауэра Windows для разрешения доступа к SQL Server.
SQL Server Диспетчер конфигурации позволяет управлять серверными и клиентскими сетевыми протоколами, в том числе применять шифрование протокола, просматривать свойства псевдонима, а также включать и отключать протокол.
Диспетчер конфигурации SQL Server позволяет создавать или удалять псевдонимы, изменять порядок использования протоколов и просматривать свойства псевдонима сервера, включая:
-
псевдонимы сервера— псевдонимы сервера, используемый для компьютера, с которым соединяется клиент;
-
протокол — сетевой протокол, используемый для данной конфигурации;
-
параметры соединения — параметры, связанные с адресом соединения для конфигурации сетевого протокола.
Диспетчер конфигурации SQL Server позволяет также просматривать сведения об экземплярах отказоустойчивого кластера, хотя для некоторых действий, например запуска и остановки служб, должен использоваться администратор кластера.
Доступные сетевые протоколы
SQL Server поддерживает протоколы общей памяти, TCP/IP и именованных каналов. Сведения о выборе сетевых протоколов см. в разделе Configure Client Protocols. SQL Server не поддерживает сетевые протоколы VIA, Banyan VINES Sequenced Packet Protocol (SPP), Multiprotocol, AppleTalk и NWLink IPX/SPX. Клиенты, подключенные ранее с помощью этих протоколов, для соединения с SQL Serverдолжны выбрать другой протокол. Диспетчер конфигурации SQL Server нельзя использовать для настройки прокси-сервера WinSock. Чтобы настроить прокси-сервер WinSock, см. документацию по ISA Server.
Использование инструкции EXIT для возвращения результатов программы osql
Результат выполнения инструкции SELECT можно использовать в качестве возвращаемого программой osql значения. Если тип числовой, то последний столбец последней строки результатов преобразуется в 4-байтовое целое число (long). В MS-DOS младший байт передается родительскому процессу или уровню ошибки операционной системы. Windows передает все 4-байтовое целое число. Синтаксис:
Пример:
В пакетный файл также можно включить параметр EXIT. Пример:
Программа osql передает на сервер все содержимое, которое заключено в круглые скобки () , точно в таком виде, в котором оно введено. Если хранимая системная процедура выбирает набор и возвращает значение, то возвращается только выбранный набор. Инструкция EXIT () без выражения в круглых скобках выполняет все, что предшествует ей в пакете, и затем завершается, не возвращая значения.
Существуют четыре формата инструкции EXIT:
EXIT
Примечание
Не выполняет пакет, немедленно завершает работу и не возвращает значение.
EXIT ()
Примечание
Выполняет пакет, завершает выполнение и не возвращает значения.
EXIT ( запрос )
Примечание
Выполняет пакет, включая запрос, затем возвращает результаты запроса и завершает работу.
RAISERROR с состоянием 127
Примечание
Если в скрипте osql используется RAISERROR и при этом возникает состояние 127, программа osql завершает выполнение и возвращает клиенту идентификатор сообщения. Пример:
Эта ошибка приведет к завершению скрипта osql , при этом клиенту будет возвращен идентификатор сообщения 50001.
Возвращаемые значения от -1 до -99 зарезервированы для SQL Server. Программа osql определяет следующие значения:
-
–100
Перед выбором возвращаемого значения произошла ошибка.
-
–101
При выборе возвращаемого значения не найдены строки.
-
–102
При выборе возвращаемого значения произошла ошибка преобразования.
Entity Framework (EF) с C#
Entity Framework (EF) предоставляет объектно-реляционное сопоставление (ОРС). ОРС упрощает работу с данными, полученными из реляционной базы данных SQL, в исходном коде объектно-ориентированного программирования (ООП).
Платформа EF прямо или косвенно связана со следующими технологиями:
- .NET Framework
- LINQ to SQL или LINQ to Entities;
- улучшения синтаксиса языка, такие как оператор => в C#;
- удобные программы, создающие исходный код для классов, которые сопоставляются с таблицами в базе данных SQL, например EdmGen.exe.
Исходная EF и новая EF
На начальной странице Entity Framework представлено такое описание.
Механизм Entity Framework является модулем объектно-реляционного сопоставления, который позволяет разработчикам .NET работать с базой данных с помощью объектов .NET. Это исключает необходимость в большинстве вариантов исходного кода доступа к данным, который обычно требуется писать разработчикам.
Entity Framework — это имя, совместно используемое двумя отдельными ветвями исходного кода. Одна ветвь EF более старая, и ее исходный код теперь является общедоступным. Другая ветвь EF — новая. Ниже описаны две ветви EF.
Версия | Описание |
---|---|
EF 6.x | Первая платформа EF была выпущена корпорацией Майкрософт в августе 2008 года. В марте 2015 года корпорация Майкрософт объявила, что EF 6.x была окончательной разработанной ими версией. Корпорация Майкрософт опубликовала исходный код в общедоступном домене.Изначально EF была частью .NET Framework. В последствии EF 6.x была удалена из .NET Framework.Исходный код EF 6.x на GitHub в репозитории aspnet/EntityFramework6 |
EF Core | Корпорация Майкрософт выпустила новую платформу EF Core в июне 2016 года. EF Core предназначена для повышения гибкости и переносимости. Эта платформа может работать в операционных системах не только под управлением Microsoft Windows. Платформа EF Core может взаимодействовать не только с базами данных Microsoft SQL Server и другими реляционными базами данных.Примеры кода C#:Приступая к работе с платформой Entity Framework CoreНачало работы с EF Core в .NET Framework с существующей базой данных |
EF и связанные с ней технологии являются сложными, и разработчикам предстоит многому научиться, чтобы освоить их полностью.
SQL Server editions
The following table describes the editions of SQL Server.
SQL Server edition | Definition |
---|---|
Enterprise | The premium offering, SQL Server Enterprise edition delivers comprehensive high-end datacenter capabilities with blazing-fast performance, unlimited virtualization1, and end-to-end business intelligence — enabling high service levels for mission-critical workloads and end-user access to data insights. |
Standard | SQL Server Standard edition delivers basic data management and business intelligence database for departments and small organizations to run their applications and supports common development tools for on-premises and cloud — enabling effective database management with minimal IT resources. |
Web | SQL Server Web edition is a low total-cost-of-ownership option for Web hosters and Web VAPs to provide scalability, affordability, and manageability capabilities for small to large-scale Web properties. |
Developer | SQL Server Developer edition lets developers build any kind of application on top of SQL Server. It includes all the functionality of Enterprise edition, but is licensed for use as a development and test system, not as a production server. SQL Server Developer is an ideal choice for people who build and test applications. |
Express editions | Express edition is the entry-level, free database and is ideal for learning and building desktop and small server data-driven applications. It is the best choice for independent software vendors, developers, and hobbyists building client applications. If you need more advanced database features, SQL Server Express can be seamlessly upgraded to other higher end versions of SQL Server. SQL Server Express LocalDB is a lightweight version of Express that has all of its programmability features, runs in user mode and has a fast, zero-configuration installation and a short list of prerequisites. |
1
Unlimited virtualization is available on Enterprise Edition for customers with Software Assurance. Deployments must comply with the licensing guide. For more information, see our pricing and licensing page.