Скачиваний:
11
Добавлен:
27.11.2024
Размер:
1.38 Mб
Скачать

ALTER TABLE <имя таблицы> ADD CONSTRAINT <имя ограничения> <тип ограничения> <имя столбца>

Примеры:

ALTER TABLE products ADD CHECK (name <> '');

ALTER TABLE products ADD CONSTRAINT some_name UNIQUE (product_no);

Примечание. Чтобы добавить ограничение not null, которое нельзя записать как ограничение на таблицу, используйте синтаксис:

ALTER TABLE products ALTER COLUMN product_no SET NOT NULL 5) Удаление ограничения

ALTER TABLE <имя таблицы> DROP CONSTRAINT <имя ограничения> Создание внешнего ключа с помощью запросов

ALTER TABLE <имя таблицы> ADD CONSTRAINT <имя ограничения> FOREIGN KEY (<имя столбца подчиненной таблицы>) REFERENCES <имя главной таблицы> (<имя столбца главной таблицы>)

Пример. ALTER TABLE Stud ADD CONSTRAINT df FOREIGN KEY (P_Id) REFERENCES Persons(P_Id)

ТЕХНОЛОГИЯ ВЫПОЛНЕНИЯ РАБОТЫ

Создание новой базы данных

1 способ

Для создания новой базы данных нужно выбрать пункт Создать базу данных

во всплывающем меню типа объектов базы данных (рис 3).

Рис 3 Создание новой базы данных

Открывается окно создания новой базы данных, где вводится имя базы данных,

владелец и определяются файлы базы данных (рис 4)

Рис 4 Окно создания новой базы данных

2 способ

Создаем новый запрос (рис 5)

Рис 5 Создание нового запроса

1)Простейший запрос на создание базы данных Синтаксис: create database <имя базы данных>;

Пример: create database student;

Выполнив запрос, убедимся, что база данных успешно создана (рис 6)

Рис 6

2)Расширенный запрос на создание базы данных

Синтаксис:

create database <имя базы данных> on (

name = ’<имя первичного файла БД>’,

filename = ’<размещение первичного файла БД>’, size = <размер первичного файла БД>)

logon (

name = ’<имя файла журнала транзакций>’,

filename = ’<размещение файла журнала транзакций>’, size = <размер файла журнала транзакций>)

Пример:

create database student on (

name = ’student’,

filename = ’C:\Program Files\ Microsoft SQL Server\MSSQL.1\MSSQL\DATA\student.mdf’,

size = 20 MB) logon (

name = ’ student_log’,

filename = ’C:\Program Files\ Microsoft SQL Server\MSSQL.1\MSSQL\DATA\student_log.ldf’, size = 5 MB);

Выполнив запрос, убедимся, что база данных успешно создана.

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

1 способ Для создания новой таблицы нужно выбрать пункт Создание новой

таблицы во всплывающем меню типа объектов Таблицы. Окно сменяется страницей, на которой создаются основные определения столбцов таблицы:

вводится имя столбца (колонка Column name), выбирается тип и размер данных в столбце (колонка Data Type задается ограничение целостности NOT NULL столбцов (колонка Allow Nulls). В полях в нижней части страницы можно так же задать описание столбца (поле Description) и значение по умолчанию (поле Default Value). На рис.8 представлена страница определения состава столбцов таблицы.

Рис.8. Страница определения состава столбцов таблицы При выделении в списке в верхней части страницы какого-нибудь

столбца и нажатии правой кнопки мыши появляется контекстное меню,

которое позволяет определять дополнительные свойства столбцов и таблиц.

С помощью пункта Set Primary Key этого меню определяется (при необходимости) первичный ключ таблицы, а с помощью пункта

Relstionships... определяются (при необходимости) ограничения внешних ключей.

При попытке выхода с данной страницы (или при нажатии File > Save)

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

SQL Server Management Studio.

2 способ

Запрос на создание таблицы

Create table <имя таблицы>

(<имя поля 1> <тип данных> <ограничения>,

(<имя поля n> <тип данных><ограничения>)

Пример

Create table students (id int primary key, stname varchar (10) not null, stfam varchar (10) not null)

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

Используемые типы данных

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

Числовые типы данных

 

целочисленные

 

Bit

Принимает значения 0,1, NULL, применяется для

 

хранения логических переменных

Tinyint

целый тип длиной в 1 байт и диапазоном от 0 до 255

Smallint

Хранит целые числа от -32768 до 32767

Int

Хранит целые числа от -231

до 231-1

Bigint

Хранит целые числа от -263

до 263-1

 

десятичные

Decimal [(p[,s])]

десятичный двоично-кодированный тип с p

 

десятичными разрядами, из которых s – дробных;

 

максимальное значение p достигает 38

Numeric [(p[,s])]

 

 

С плавающей точкой

Float [n]

плавающий (приблизительный) тип длиной в 4 байта и

 

с диапазоном от –1.79x10308 до 1.79x10308 ; значение

 

n определяет количество бит для хранения мантисы

 

и может принимать значения от 1 до 53.

real

плавающий тип, являющийся аналогом float(240)

Дата/время

Datetime

 

 

тип данных для хранения даты (4 первых байта) и

 

 

 

времени (4 последних байта) в диапазоне от

 

 

 

1.1.1753 и до 31.12.9999 года; дата хранится в виде

 

 

 

смещения относительно базовой даты 1.1.1753, а

 

 

 

время является количеством миллисекунд после

 

 

 

полуночи.

Smalldatetime

 

 

тип данных для хранения даты (первых 2 байта) и

 

 

 

времени (последние 2 байта) в диапазоне от

 

 

 

1.1.1900г. до 6.6.2079г., время задается с точностью

 

 

 

до минуты.

Date

 

 

Хранит только дату

Денежные

 

 

 

 

 

 

 

Money

 

 

тип данных для хранения больших денежных

 

 

 

величин с точностью до 4 знаков после запятой в

 

 

 

диапазоне от –922 337 203 685 477.5808 до +922 337

 

 

 

203 685 477.5807; для хранения данных отводится 8

 

 

 

байт

Smallmoney

 

 

тип данных для хранения нормальных денежных

 

 

 

величин с точностью до 4 знаков после запятой в

 

 

 

диапазоне от –214 748.3648 до 214 748.3647; для

 

 

 

хранения данных отводится 4 байта.

Текстовые

 

 

 

 

 

 

 

Не поддерживающие UNICODЕ

Char (n)

 

 

строковый тип данных фиксированной длины без

 

 

 

поддержки Unicode длиной до 8000 байтов

Varchar (n)

 

 

строковый тип, как и char(n),но с переменной

 

 

 

длиной

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

поддерживающие UNICODЕ

Nchar (n)

 

 

строковый тип как и char(n), но с поддержкой

 

 

 

Unicode, поэтому максимальное количество

 

 

 

символов составляет 4000

Nvarchar (n)

 

 

строковый тип, как varchar(n), но с поддержкой

 

 

 

Unicode

 

 

 

 

 

 

 

 

Двоичные

binary(n)

двоичные данные фиксированной длины до 8000

 

байт

varbinary(n)

двоичные данные переменной длины до 8000 байт

image

двоичные данные длиной до 231 – 1; место

 

выделяется в виде цепочки страниц

Удаление базы данных

1способ – выбрать команду удалить для данной базы данных

2способ – запрос на удаление базы данных

Drop database <имя базы данных>

Пример:

Drop database student

1.Создайте базу данных, позволяющую вести учет сотрудников,

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

1.Добавьте в таблицу Staff столбец Adress, отображающий адрес сотрудника. Для этого выполните запрос:

ALTER TABLE Staff ADD Adress char (20) not null;

Проверьте правильность выполнения запроса.

2.Измените в таблице Pay тип данных для столбца Sum_pay с Numeric на

Int.

Для этого выполните запрос:

ALTER TABLE Pay ALTER COLUMN Sum_pay int;

Проверьте правильность выполнения запроса.

3.Удалите из таблицы Staff столбец Adress. Для этого выполните запрос:

ALTER TABLE Staff DROP COLUMN Adress;

Проверьте правильность выполнения запроса.

4.Добавьте в таблицу Pay ограничение Unique на столбец Сode_pay ALTER TABLE Pay ADD CONSTRAINT с_2 UNIQUE (Сode_pay);

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

ALTER TABLE Staff ADD CONSTRAINT с_1 PRIMARY KEY (T_number);

Аналогично создай те первичные ключи для остальных таблиц.

6.Зададим значения по умолчанию в таблице Staff в столбце Type_post -

Служащий, в столбце Date_input - текущая дата.

ALTER TABLE Staff ADD CONSTRAINT с_3 DEFAULT 'Служащий ' FOR Type_post ;

ALTER TABLE Staff ADD CONSTRAINT с_5 DEFAULT Getdate() FOR Date_input ;