Create table studyschema. Study ( 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Create table studyschema. Study (



Grup_ID int NOT NULL REFERENCES

StudySchema.Grup(Grup_ID) ON DELETE CASCADE,

Subj_ID int NOT NULL REFERENCES StudySchema.Subjects (Subj_ID),

Teach_ID bigint NOT NULL REFERENCES DekanatSchema.Teacher (Teach_ID),

Kredit_count int,

Lesson_Hours int not null,

CONSTRAINT PK_Study PRIMARY KEY (Grup_ID, Subj_ID, Teach_ID)

);

Создание таблицы Успеваемость:

CREATE TABLE StudySchema.Progress (

Grup_ID int not null,

Subj_ID int not null,

Teach_ID bigint not null,

Kredit_count int FOREIGN KEY REFERENCES StudySchema.Study (Kredit_count)

Pr_DATE datetime null,

OCENKA integer CHECK (OCENKA in (0,1,2,3,4,5,6,7,8,9)) DEFAULT(0),

CONSTRAINT FK_Progress_Study FOREIGN KEY (Grup_ID, Subj_ID, Teach_ID) REFERENCES StudySchema.Study (Grup_ID, Subj_ID, Teach_ID),

CONSTRAINT PK_Progress PRIMARY KEY (Stud_ID,Grup_ID, Subj_ID, Teach_ID)

);

 

Сжатие данных

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

Рассмотрим примеры создания полей таблиц для хранения подобных данных:

CREATE TABLE Tab1

(col1 int, col2 int, sum_col AS col1+col2);

CREATE TABLE Tab2

(col1 int PRIMARY KEY,

Col2 nvarchar(200) SPARSE NULL);

CREATE TABLE Tab3

(col1 int, col2 nvarchar(150))

WITH (DATA_COMPRESSION = ROW);

 

Изменение структуры таблиц

 

Структуру таблиц можно изменять командой ALTER TABLE.

Добавление полей. Добавление в таблицу DekanatSchema.Chair поле DekanatSchema.Chair_Cab:

 

ALTER TABLE DekanatSchema.Chair

ADD Chair_Cab char(10) not null;

Удаление полей из таблицы. Удалите введенное поле из таблицы:

 

ALTER TABLE DekanatSchema.Chair

DROP COLUMN Chair_Cab;

Добавьте в таблицу StudySchema.StudySchema.Students поле, где будет храниться информация о стипендии студентов:

 

ALTER TABLE StudySchema.Students ADD stud_stip int;

Добавление ограничений. Если в таблице не были определенны первичные или внешние ключи, это также можно исправить с помощью ALTER TABLE.

Предположим, что в таблице DekanatSchema.Chair не был определен первичный ключ:

ALTER TABLE DekanatSchema.Chair

ADD CONSTRAINT PK_Chair PRIMARY KEY (Chair_ID);

 

В таблице DekanatSchema.Teacher (Преподаватели) не был описан один из внешних ключей, добавим его:

 

ALTER TABLE DekanatSchema.Teacher ADD CONSTRAINT fK_Chair_Teacher FOREIGN KEY (Chair_ID)REFERENCES DekanatSchema.Chair (Chair_ID);

Удаление таблиц

 

Для удаления таблиц (или объектов) предназначена команда

DROP <object type>.

 

Например

Добавление новых строк в таблицу.

Синтаксис

 

INSERT [INTO] table_name [ (column_list) ]

{ VALUES ({ DEFAULT | NULL | expression } [,...n])

| derived_table

}

Примечания:

· чтобы заменить данные в таблице, необходимо использовать инструкцию DELETE для очистки существующих данных перед загрузкой новых данных с помощью INSERT. Чтобы изменить значения столбца в существующей строке воспользуйтесь инструкцией UPDATE;

· если вставка column_list пропущена, список вставки столбцов, в котором указываются все столбцы таблицы в возрастающем порядке в соответствии с их порядковыми номе-рами, становится неявным;

· в column_list столбец таблицы можно определить только один раз. Если в column_list столбец отсутствует, SQL Server должен предоставить значение на основании определения столбца; в противном случае строку загрузить не удастся. SQL Server автоматически предоставляет значение для столбца в столбце:

• имеется свойство IDENTITY. Используется следующее значение приращения для идентификатора;

• имеется стандартное значение. Используется стандартное значение для столбца;

• неопределенное значение. Используется значение Null.

 

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

Если для указания значения столбца используется значение DEFAULT, то для этого столбца вставляется стандартное значение. Если стандартного значения для столбца не существует и в столбце могут быть значения Null, то вставляется значение NULL. Значение DEFAULT недопустимо для столбца идентификаторов.

 

При вставке строк применяются следующие правила:

• если значение загружается в столбец с типом данных char, varchar или varbinary, добавление или усечение замыкающих пробелов (пробелов для char и varchar, нулей для varbinary) определяется в соответствии с приведенной ниже таблицей;

 

Тип данных Стандартная операция
char/binary Добавление исходного значения с замыкающими пробелами для столбцов char или с замыкающими нулями для столбцов binary к длине столбца.
varchar Замыкающие пробелы в значениях символов, которые вставлены в столбцы varchar, не усекаются. Значения не добавляются к длине столбца.
varbinary Замыкающие нули в двоичных значениях, которые вставлены в столбцы varbinary, не усекаются. Значения не добавляются к длине столбца.

 

• если инструкция INSERT нарушает константу или правило, либо в ней присутствует значение, несовместимое с типом данных столбца, при выполнении инструкции происходит сбой и отображается сообщение об ошибке;

• если INSERT загружает несколько строк с помощью SELECT, любое нарушение правила или ограничения, возникающее в результате загрузки значений, приводит к остановке полной инструкции и строки не загружаются.

Примеры кода:

1. Использование простой инструкции INSERT



Поделиться:


Последнее изменение этой страницы: 2021-03-09; просмотров: 135; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.150.59 (0.007 с.)