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 ;
