Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Типи даних.Тип BLOB. Особливості. Сумісність типів

Основи роботи в MS SQL Server. Створення бази даних, використяння таблиць, виконання запитiв.

В MS SQL Server 6.5 есть возможность работать с БД в графическом интерфейсе:

SQL Enerprise Manager -Мощный централизованный инструмент полного управления серверами в масштабах предприятия, включая базы данных, их объекты, предупреждения (alerts), спланированные во времени задачи, тиражирование и запросы.

Рассмотрим же программную работу в MS SQL

Создание устройства БД

Базы данных размещаются на устройствах (device). Устройства – это файлы жесткого диска, которые помимо баз данных могут содержать журналы транзакций и резервные копии баз данных. Одна база данных может размещаться на нескольких устройствах, разнесенных по нескольким жестким дискам. Одно устройство может включать в себя несколько баз данных или их фрагментов. Устройство даже не содержащее ни одной базы данных, тем не менее занимает место на диске. Минимальный размер устройства 1 – Мб.

В процессе установки Microsoft SQL Server автоматически создаются три устройства баз данных – MASTER.DAT, MSDB.DAT и MSDBLOG.DAT. Все остальные устройства создает администратор.

DISK INIT NAME = <’Логическое имя’>, PHYSNAME = <’Физическое имя’>, VDEVNO = <Номер устройства>, SIZE = <Размер>[, VSTART = <Адрес>]

VDEVNO - Идентификатор устройства. Он может принимать значения от 0 до 255. Идентификатор 0 зарезервирован для устройства master.

VSTART - стартовое смещение в страницах.

Пример:

DISK INIT NAME = <’autostore’>, PHYSNAME = <’c:\sq16\data\autostore.dat>, VDEVNO = <11>, SIZE = <5120>DISK INIT NAME = <’auto_log’>, PHYSNAME = <’g:\sqllog\data\auto_log.dat ’>, VDEVNO = <11>, SIZE = <5120>

Создание БД

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

CREATE DATABASE <Имя БД>[ON {DEFАULT | <Имя Устройства>}[= <Размер>][, <Имя устройства>[= vРазмер>]]…][LOG ON <Имя устройства>[= <Размер>]]…][FOR LOAD]

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

CREATE DATABASE samokatON autostore = 10LOG ON auto_log = 10

Если при создании базы данных в команде не указанно никакое устройство, SQL Server ищет устройство по умолчанию.

Создание таблиц

CREATE TABLE table_name (column_name data_type [NULL | NOT NULL] [,...n])

Например:

CREATE TABLE member(member_no int NOT NULL, lastname char(50) NOT NULL, firstname char(50) NOT NULL, photo image NULL)

Этим оператором создается таблица member, состоящая из четырех колонок

sp_help - системная процедура, которая возвращает информацию об объектах БД (таблицах, хранимых процедурах и пр.).
Формат вызова таков:

sp_help <имя таблицы>

Удалить таблицу: drop table member

Работа с таблицами

Значения могут быт помещены и удалены из полей, тремя командами:

· INSERT - вставка данных

· UPDATE - изменение данных

· DELETE - удаление

INSERT INTO table_nameVALUES (value, value,...)

Так для того чтобы добавить запись в таблицу торговых агентов можно использовать команду:

INSERT INTO SalespeopleVALUES(1008, 'Johnson', 'London', 12)

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

INSERT INTO Customers(city, cname, cnum)VALUES('Новосибирск', 'Петров', 2010)

Команду INSERT можно использовать для вставки результатов запроса. Чтобы сделать это, просто заменяем предложение VALUES на соответствующий запрос:

INSERT INTO MoscowStaff SELECT * FROM Salespeople WHERE city = 'Москва'Для удаления строк из таблицы используется команда DELETE. DELETE FROM SalespeopleWHERE snum = 1007В отличие от файловых СУБД типа DBASE, SQL Server не помечает записи как удаленные, а удаляет их физически, т.е. восстановлению они не подлежат.

Команда UPDATE позволяет изменять некоторые или все значения в существующей записи в таблице. Эта команда содержит предложение UPDATE, за которым указывается имя таблицы, и предложение SET, которое указывает на изменение которое нужно сделать для определенного столбца. Например, чтобы изменить рейтинги всех заказчиков на 200 можно ввести команду:

UPDATE CustomersSET rating = 200

Аналогично DELETE, UPDATE может использовать условия для выбора записей, подлежащих изменению. Вот так можно изменить рейтинг для всех заказчиков агента Иванова (код 1001):

UPDATE CustomersSET rating = 300WHERE snum = 1001

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

Выполнение запросов к базе данных из "SQL Query Analyzer"

Запустите "SQL Query Analyzer" и подключитесь к MSSQL серверу, на котором вы зарегистрировали связанный сервер InterBase.

Запрос на выборку данных

begin distributed transaction;

select * from IB_EMPL...EMPLOYEE;

commit;

Параметризованный запрос на выборку данных

begin distributed transaction;

declare @first_name as varchar(32);

set @first_name='Scott';

select * from IB_EMPL...EMPLOYEE empl where empl.FIRST_NAME=@first_name;

commit;

Модификация данных

При выполнении SQL-запросов INSERT, UPDATE и DELETE, MSSQL пытается стартовать вложенную транзакцию. Если транзакция уже активна, то провайдер вернет ошибку. Поэтому, перед выполнением таких запросов нужно выполнить команду "SET XACT_ABORT ON", или вообще отказаться от явного управления транзакциями - определив в строке подключения " auto_commit =true".

Вставка нового ряда

set xact_abort on;

begin distributed transaction;

insert into IB_EMPL...COUNTRY (COUNTRY,CURRENCY) values ('Mars','Snickers');

commit transaction;

Изменение ряда

set xact_abort on;

begin distributed transaction;

declare @country varchar(32);

set @country='Mars';

update IB_EMPL...COUNTRY set CURRENCY='Beer' where COUNTRY=@country

commit;

Удаление ряда

set xact_abort on;

begin distributed transaction;

declare @country varchar(32);

set @country='Mars';

delete from IB_EMPL...COUNTRY where COUNTRY=@country commit;

Вызов хранимой процедуры

Внимание. MS SQL для вызова хранимых процедур всегда использует квотированные имена. Используйте gfix для перевода базы данных employee.gdb в третий диалект.

Получение результата работы хранимой процедуры в виде множества (odbc_call_sp =0)

begin distributed transaction;

declare @dept_head char(3);

set @dept_head='100';

exec IB_EMPL...SUB_TOT_BUDGET @dept_head

{call IB_EMPL...SUB_TOT_BUDGET(@dept_head)};

commit;

Получение результата работы хранимой процедуры через OUT-параметры. Использовался отдельный linked-server IB_EMPL_1, у которого установлен параметр odbc_call_sp =1

begin distributed transaction;

declare @dept_head char(3);
declare @tot_b numeric(15,2);
declare @avg_b numeric(15,2);
declare @min_b numeric(15,2);
declare @max_b numeric(15,2);

set @dept_head='100';

exec IB_EMPL_1...SUB_TOT_BUDGET @dept_head,@tot_b output,@avg_b output,@min_b output, @max_b output
print 'tot_b='+convert(varchar(32),@tot_b);
print 'avg_b='+convert(varchar(32),@avg_b);
print 'min_b='+convert(varchar(32),@min_b);
print 'max_b='+convert(varchar(32),@max_b);

{call IB_EMPL_1...SUB_TOT_BUDGET(@dept_head,@tot_b output,@avg_b output,@min_b output, @max_b output)};
print 'tot_b='+convert(varchar(32),@tot_b);
print 'avg_b='+convert(varchar(32),@avg_b);
print 'min_b='+convert(varchar(32),@min_b);
print 'max_b='+convert(varchar(32),@max_b);

commit;


SQL

Типи даних.Тип BLOB. Особливості. Сумісність типів

 

SQL Server поддерживает следующие типы данных:

Тип данных Обозначение Размер, байт
Бинарные данные binary varbinary[(n)] 1-8000
Символы char[(n)]varchar[(n)] 1-8000 (до 8000 символов)
Символы Unicode nchar[(n)] nvarchar[(n)] 1-8000 (до 4000 символов)
Дата и время datetime smalldatetime 8 4
Точные числа decimal[(p[,s])] numeric[(p[,s])] 5-17
Приблизительные числа float[(n)] real 4-8 4
Глобальный идентификатор uniqueidentifier  
Целые числа int smallint, tinyint 4 2, 1
Денежки!!! money, smallmoney 8, 4
Специальные bit, cursor, sysname, timestamp 1, 0-8
Текст и изображение text, image 0-2 Гб
Текст Unicode ntext 0-2 Гб

 

BLOB - Двоичные строки с максимальной длиной символов равной 65535. Тип BLOB (binary large object - большой двоичный объект) предназначен для хранения двоичных данных, в том числе изображений и звуковых последовательностей.

 

Совместимость типов:

Тип данных колонки Тип результата
Обе колонки типа char с фиксированными длинами L1 и L2 char с длиной равной наибольшему из L1 и L2
Обе колонки типа binary c фиксированной длиной L1 и L2 binary с длиной равной наибольшему из L1 и L2
Одна или обе типа varchar varchar с длиной равной наибольшему из L1 и L2
Одна или обе типа varbinary varbinary с длиной равной наибольшему из L1 и L2
Обе числового типа (smallint,money, float) Тип данных с наибольшей точностью (int=>float)

 


Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...