Тип данных счетчик в sql

Тип данных счетчик в sql

Встроенные типы данных Microsoft Access и SQL Server, числовые, текстовые, даты/времени, логический, двоичные, счетчик, уникальный идентификатор

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

5.1 Встроенные типы данных в SQL Server и Access

Прежде, чем создавать таблицы, необходимо разобраться с типами данных — то есть какие именно данные можно будет помещать в столбцы таблиц. Информация будет даваться для SQL Server и Access.

Вначале — о числовых типах данных.

В SQL Server числовые типы данных можно разделить на целочисленные, десятичные дроби и числа с плавающей запятой. В нашем распоряжении следующие числовые типы данных:

· целочисленные: tinyint (0 — 255), smallint (от -32 768 до 32 767), int (от -2,147,483,648 до 2,147,483,647) и bigint (от -2^63 до 2^63 -1);

· десятичные: decimal и numeric (это — два названия одного и того же);

· денежные: money (от -2^63 до 2^63 — 1 с точностью 4 знака после запятой) и smallmoney (от -214,748.3648 до +214,748.3647).;

· с плавающей запятой: float (от -1.79E + 308 до 1.79E + 308) и real (от -3.40E + 38 до 3.40E + 38).

В MS Access все проще — там есть единственный тип поля — числовое и его подтипы в строке "размер".

Обычно, если база данных не относится к числу специальных, большая часть столбцов в ее таблицах отводится под текстовые данные. В SQL Server предусмотрены две дублирующих разновидности полей для представления текстовых данных: поля Unicode и не-Unicode. Unicode — типы данных отличить очень просто: они начинаются на n (от слова national, то есть с поддержкой национальных символов). Если есть возможность, то следует выбирать именно типы Unicode (хоть они и требуют в два раза больше места под хранение каждого символа) — поскольку современные клиенты изначально разрабатываются для удобной работы с кодировками этого типа.

Всего в SQL Server предусмотрены следующие типы для текстовых данных:

· char / nchar — строковые данные фиксированной длины (максимум 8000/4000 символов);

· varchar / nvarchar — строковые данные переменной длины (то же самое);

· text / ntext — для очень больших текстовых записей — до двух миллионов/миллиона символов.

В Access, как обычно, все проще. Есть тип данных текстовый с максимальной длинной записей в 255 символов (данные автоматически хранятся в Unicode) и тип данных Memo с максимальной длиной 65 536 знаков.

В реальных базах данных, конечно, не обойтись без полей для хранения информации дате и времени. В SQL Server это datetime (8 байт, точность то 3,33 миллисекунд) и smalldatetime (4 байта, точность до минуты). В большинстве приложений вполне хватает s malldatetime , но часто разработчики про s malldatetime забывают.

В Access у нас предусмотрен единственный 8-байтовый тип данных дата/время.

Еще один распространенный тип данных — это логический, который может хранить в себе значения вида true/false (единица/ноль). Обычно он используется как флаг чего-либо. В SQL Server он представлен типом данных bit , а в Access — типом данных, который так и называется "логический".

В современных базах данных также часто хранятся большие двоичные данные — BLOB, например, документы, фотографии, архивы и т.п. В SQL Server для них традиционно используется тип данных Image (до 2 Гбайт). Есть еще типы данных binary и varbinary , но максимальный их размер — 8000 байт, а такие маленькие двоичные данные встречаются нечасто. В Acce ss для этой цели используется тип данных поле объекта OLE (до 1 Гбайт) — то есть могут храниться данные только OLE-совместимых программ.

Есть также и некоторые специальные типы данных, которые используются нечасто:

· UniqueIdentifier в SQL Server , числовой для кодов репликации в Access. Это — большие случайно сгенерированные числа, вероятность совпадения которых практически нулевая. В базах данных они обычно используются для того, чтобы гарантировать уникальность какой-либо записи;

· поле счетчика в Access, числовой тип данных со свойством Identity в true в SQL Server. Это — числовое поле с автоприращением, обычно применяется как суррогатный ключ;

· sql_variant в SQL Server — позволяет хранить в столбце данные разных типов;

· timestamp — метка версии строки в SQL Server ;

· гиперссылка — специальный вид поля (до 64 000 знаков) в Access.

Другие типы данных ( cursor , table в SQL Server) в таблицах использоваться не могут и применяются только в запросах и хранимых процедурах.

Было бы чудесно, если бы программы SQL Server и Access применяли один и тот же набор типов данных. Но у этих приложений разное происхождение и порой их отличия заметны.

К счастью, между большинством типов данных программ есть близкое соответствие. Это означает, что у большей части типов данных Access есть соответствующий тип данных SQL Server, очень близкий к типу Access. (Когда БД преобразуется, программа Access, как пра- вило, способна подобрать хорошее соответствие.) В табл. 20.1 приведены типы данных про- граммы SQL Server, которые вы получаете для разных типов данных Access.

Читайте также:  Поиск людей рядом вконтакте

У программы SQL Server есть еще много типов данных, не приведенных в этой таблице и не имеющих близких аналогов в программе Access. Но типы данных, которые включены в таблицу, — несомненно, самые распространенные.

Таблица 20.1. Сравнение типов данных SQL Server и Access

Тип данных Access

Эквивалент SQL Server

nvarchar (способен хранить до 4000 символов, в отличие от Текстового типа данных Access, у которого верхний предел составляет 255 символов)

Тип данных Access

Эквивалент SQL Server

Числовой (Number) (со значением в свойстве Размер поля (Field Size) — Целое (Integer))

Числовой (Number) (со значением в свойстве Размер поля (Field Size) — Длинное целое (Long Integer))

Числовой (Number) (со значением в свойстве Размер поля (Field Size) — Одинарное с плавающей точкой (Single))

Числовой (Number) (со значением в свойстве Размер поля (Field Size) —Двойное с плавающей точкой (Double))

Числовой (Number) (со значением в свойстве Размер поля (Field Size) —Действительное (Decimal))

Числовой (Number) (со значением в свойстве Размер поля (Field Size) — Байт (Byte))

Числовой (Number) (со значением в свойстве Размер поля (Field Size) — Код репликации (ReplicationID))

int (с параметром Identity равным Yes (Да))

nvarchar (сохраняется только имя файла)

Таблица 20.1 (окончание)

Поля типа Счетчик

Возможно, вы заметили, что у программы SQL Server нет типа данных Счетчик. Но не дайте себя одурачить, решив, что нет способа получить это невероятно полезное средство в программе SQL Server. Просто задавать его придется немного иначе.

1. Когда создаете поле ID (Код), задайте для него тип данных int.

2. На вкладке Columns (Столбцы), расположенной под списком полей, задайте свойство Identity равным Yes (Да).

Значение параметра Identity — это имя поля типа Счетчик в программе SQL Server. Это имя программа присваивает автоматически и гарантирует его уникальность.

3. Вы также можете задать свойства Identity Seed (Начальное значение IDENTITY) и Identity Increment (Приращение IDENTITY).

? Значение Identity Seed (Начальное значение IDENTITY) — начальное значение. Это свойство — досадное упущение программы Access, которая всегда начинает считать с 1.

o Значение Identity Increment (Приращение IDENTITY) — величина, на которую программа SQL Server увеличивает очередное значение. Например, если Identity Increment — 5, вы увидите числа 1, 6, 11, 16 и т. д. Конечно, программа SQL Server может по разным причинам, как и программа Access, пропустить очередное значение.

Конструктор SQL Server лишен удобного мастера подстановки, который применяет программа Access. Вместо него вы должны выбрать поле, куда хотите поместить подстановку, щелкнуть кнопкой мыши вкладку Lookup (Подстановка) в нижней части окна конструктора (рис. 20.11) и затем заполнить все данные подстановки. Далее приведены ключевые параметры, необходимые для создания подстановки.

¦ В поле параметра Display Control (Тип элемента управления) следует задать Combo Box (Поле со списком), раскрывающийся список, позволяющий выбрать нужное значение.

¦ В поле параметра Row Source Type (Тип источника строк) нужно задать Tables/Views/Functions (Таблицы/представления/функции), если хотите создать подстановку, применяющую данные из связанной таблицы. (Если хотите предоставить просто список значений, можно использовать значение Value List (Список значений).)

Рис. 20.11. Подготовленная полностью подстановка для поля CreditCardID в таблице Orders

¦ В поле параметра Row Source (Источник строк) указываются данные для подстановки. Если данные извлекаются из другой таблицы, применяется SQL-команда SELECT, которая извлекает два поля — поле с описательной информацией и поле со значением ID (Код). Например, можно использовать команду SELECT ID, ProductName FROM Products ORDER BY ProductName для создания отсортированного по названию товара списка подстановки, который получает ID и название каждого товара из таблицы Products.

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

¦ Параметр Bound Column (Связанный столбец) обозначает, какой столбец (из параметра Row Source (Источник строк)) должен быть добавлен в поле, когда выбрано значение из списка значений подстановки. Например, если первое поле в вашей команде SELECT — ID (как в предыдущем примере), нужно задать значение 1.

¦ В параметре Column Count (Число столбцов) задается количество столбцов, отображаемых в списке подстановки. Обычно задается значение 2 (для отображения обоих столбцов), но ширина первого столбца с номером ID задается бесконечно малой, поэтому вы его практически не видите.

¦ Параметр Column Heads (Заголовки столбцов) определяет, выводить ли заголовки в первой строке столбцов в списке подстановки. Обычно задается значение No (Нет). Однако если создается подстановка, отображающая несколько порций связанной информации, можно применить заголовки столбцов для того, чтобы легче было понять, что есть что, при просмотре списка подстановки.

¦ Параметр Column Width (Ширина столбцов) задает ширину каждого столбца в списке подстановки. Каждое значение в дюймах отделяется точкой с запятой. Например, значение 0 ";1" скрывает из вида первый столбец и делает второй столбец шириной 1 дюйм.

Читайте также:  Разборка ноутбука acer видео

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

Когда БД преобразуется, программе Access хватает изобретательности, чтобы сохранить все ваши подстановки.

Как вы узнали в главе 5, у каждой заслуживающей уважения БД есть множество отношений, В программе Access существуют два способа быстрого построения отношения: с помощью схемы данных и созданием подстановки в поле. Но в проекте Access ни одно из этих средств не доступно. Вместо этого вам придется определять отношения вручную в окне Конструктора для вашей таблицы.

Вот как это делается.

1. Откройте подчиненную или дочернюю таблицу в Конструкторе.

У этой таблицы есть поле, связанное с родительской таблицей. (Например, Products — дочерняя таблица для ProductCategories. Поле ProductCategorylD — связующее звено, которое присутствует в таблице Products.)

2. Выберите на ленте Table Tools | Design > Show/Hide > Property Sheet (Работа с таблицами | Конструктор > Показать или скрыть > Страница свойств).

Это действие выводит на экран диалоговое окно Properties (Свойства) (рис. 20.12), которое выглядит совсем не так, как Property Sheet (Окно свойств), которое вы применяли раньше в БД Access.

Рис. 20.12. Показано установленное отношение, связывающее таблицу OrderDetails (как дочернюю) с таблицей Products (как родительской). В каждой записи таблицы OrderDetails поле ProductID указывает на заказанный товар

3. Щелкните кнопкой мыши вкладку Relationships (Схема данных).

4. Щелкните кнопкой мыши кнопку New (Создать) для определения нового отношения.

5. В списке, расположенном под заголовком Primary key table (Таблица первичного ключа), выберите родительскую таблицу.

6. В первой строке, расположенной под именем таблицы, выберите однозначно определенное поле в родительской таблице.

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

7. В списке, находящемся под заголовком Foreign key table (Таблица внешнего ключа), выберите дочернюю таблицу.

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

8. Если хотите убедиться в том, что существующие данные удовлетворяют данному отношению, установите флажок Check existing data on creation (Проверять существующие данные при создании).

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

9. Установите флажок Enforce relationships for INSERTS and UPDATES (Обеспечить отношение для INSERT и UPDATE), если хотите обеспечить ссылочную целостность при добавлении и изменении записей.

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

10. Когда закончите, закройте окно.

Таблицы данных — не единственные объекты БД, хранящиеся в БД SQL Server. Ваша БД SQL Server может также содержать запросы, бесконечно полезные процедуры для поиска (или изменения) нужных записей.

У объектов, которые приверженцы программы Access называют запросами, совсем иное существование в SQL Server. Там, где вы видите запросы, программа SQL Server видит три объекта разных типов.

¦ View (Представление). Представление — приблизительный аналог запроса на выборку (select query) — он выбирает записи (возможно, из связанных таблиц) и отображает их на листе данных.

¦ User-defined function (Пользовательская функция). Пользовательская функция аналогична запросу на выборку с параметрами. (Как вы уже знаете, параметры позволяют запрашивать порцию информации сразу перед выполнением запроса. Эту информацию затем можно применить для отбора записей и выполнения вычисления.)

¦ Stored procedure (Хранимая процедура). Хранимая процедура — тяжеловес среди объектов БД SQL Server. Она может выполнять целый ряд задач, таких как выбор записей, фиксация изменений, выполнение транзакций. Вы не будете использовать большую часть этих возможностей, когда создадите хранимую процедуру в программе Access. Вместо этого вы будете применять хранимые процедуры для создания аналога запроса на изменение в SQL Server, который фиксирует в БД одиночную операцию обновления, добавления или удаления.

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

Доброго времени суток дорогие друзья. Давненько я ничего не писал. Решил написать статью про Microsoft SQL Server, так как много вопросов было по этому поводу, а если быть точным, то о том, как можно создать поле Счетчик в MS SQL Server.

Все знают замечательный тип данных в MS Access – Счетчик, который сам увеличивает значение при добавлении новой строке данных в таблицу. Многие бы хотели сделать тоже самое и в Microsoft SQL Server. Это возможно и очень просто, поэтому в данной статье мы рассмотрим эту возможность. Кроме этого, я расскажу: как я создаю БД, к ним таблицы и другие данные. Ну и напоследок, мы рассмотрим, как можно подключиться к SQL Server через ADO в Delphi.

Читайте также:  Монитор самсунг полосы на экране

Ничего сложного нет и для начала нам необходим MS SQL Server, который можно взять с официального сайта Microsoft (я установил 2005 версию). Поэтому скачиваете, если у Вас нет его еще, устанавливаете и запускаете. Для создания баз данных, их редактирования, присоединения к серверу, я использую среду Microsoft SQL Server Management Server Studio Express. Если честно, то довольно мощное средство. Поэтому, для нашей статьи, данное программное обеспечением нам также понадобится. Его Вы также можете скачать с официального сайта Microsoft, делаем это и устанавливаем.

После того как у нас установлен MS SQL Server и приложение для доступа к нашему серверу, нам необходимо подключиться к нему. Поэтому, запускаем SQL Server Management Server Studio Express и подключаемся к нашему серверу (из списка выбрать нужный сервер, если у Вас их несколько):

В данном окне выбрали нужное имя сервера и нажали на кнопку Соединить. После этого, в обозревателе объектов, мы можем наблюдать список всех объектов, которые мы можем создавать, изменять, удалять на сервере. Начать необходимо с создания базы данных, поэтому, нажимаем правой кнопкой мыши по объекту Базы данных и из контекстного меню выбираем пункт Создать базу данных…

В появившемся окне нам необходимо ввести имя базы данных и сделать соответствующие настройки. Я все оставил стандартно, если Вам необходимо иметь какие-то определенные настройки, то сделайте это. Затем нажмите на кнопку ОК. После этого, в обозревателе объектов у Вас должна появиться Ваша база данных, для которой мы можем создавать другие объекты: таблицы, индекса и так далее.

Мы раскрываем в обозревателе объектов пункт Базы данных и находим в списке нашу созданную БД, которую также раскрываем. В данном списке находим объект Таблицы и по нему нажимаем правой кнопкой мыши, после чего, в контекстном меню выбираем пункт Создать таблицу…

В следующем окне нам необходимо создать таблицу: задать список полей, задать имя таблицы и внимание. Задать типы данных полей, в том числе и для нашего поля-счетчика. Если Вы определились со списком полей, с именем таблицы и с типами, то давайте зададим тип счетчик для нашего поля. Оно у меня называется id и тип я ему задал int:

Для того чтобы в нем увеличивалось значение на единицу автоматически, Вам необходимо перейти в окно Свойства столбцов, которое находится ниже. То есть, Вы выделяете наш столбец (id) и переходим в его свойства, где находим свойство – Спецификация идентифицирующего столбца. Раскрываем данное свойство и в поле (Является идентифицирующим столбцом) устанавливаем значение Да.

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

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

Устанавливаем на форму компонент TADOConnection и TADOQuery, связываем их. В свойстве Connection компонента TADOQuery указываем имя компонента TADOConnection. Затем выделяем компонент TADOConnection и следующие его свойства устанавливаем в значения:

  • Mode=cmShareDenyWrite
  • LoginPromt=False

Открываем свойства ConnectionString и настраиваем строку подключения к нашему серверу и соответственно базе данных. В первой вкладке, выбираем поставщика данных – Microsoft OLE DB Provider for SQL Server, затем нажимаем кнопку Далее>>, где указываем имя сервера, а затем и имя нашей базы данных.

Все, затем нажимаем на кнопку Проверить подключение, если оно прошло успешно, то нажимаем на кнопку ОК и устанавливаем свойство Connected компонента TADOConnection в True.

Вот примерно и все. Далее Вы можете делать запросы, либо работать с данными SQL Server как и в работа с ADO в Delphi.

Кстати, Вы можете присоединить свою базу данных к серверу при помощи среды Microsoft SQL Server Manegement Studio Express, либо же при помощи Delphi (когда делаете подключение). В итоге, в данной статье мы рассмотрели ответы на следующие вопросы (которые задавали Вы):

  • Создать базу данных на SQL Server
  • Создать таблицу
  • Создать поле Счетчик в таблице MS SQL Server
  • Подключиться к MS SQL Server в Delphi (использовали технологию ADO)
  • Присоединить БД к MS SQL Server

Ну что, теперь я буду с Вами прощаться, задавайте еще вопросы и до новых встреч дорогие друзья, всего Вам самого наилучшего. Не забудьте прочитать статью о том, как можно подключиться к БД MySQL при помощи ADO.

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