Студопедия — Изменение структуры таблицы средствами T-SQL. Удаление таблиц
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Изменение структуры таблицы средствами T-SQL. Удаление таблиц






Более сложный способ изменения структуры таблицы предлагает Transact-SQL, в котором для этого предусмотрена специальная команда:

ALTER TABLE table

{ [ALTER COLUMN

columnjname { new_data_type [ (precision^ scale]) ]

[ NULL | NOT NULL ]

| {ADO | DROP} ROWGUIDCOL}]

| ADD

{ [ <column_definition> ]

column_name AS computed_column_expression}[,...n]

[WITH CHECK | WITH NOCHECK] ADD

<table_constraint> }[,...n]

DROP

[CONSTRAINT] constraintjiame | COLUMN column }[....n]

{CHECK | NOCHECK} CONSTRAINT {ALL | constraint_name[,...n]}

{ENABLE j DISABLE} TRIGGER {ALL | trigger_name[....n]}}

Рассмотрим синтаксис данной команды, подробно объяснив назначение всех используемых ключевых слов. С помощью команды ALTER TABLE можно изменить определение уже существующих колонок, удалить любую из них, а также доба­вить в таблицу новые колонки:

Изменение определения колонки. Данная операция осуществляется с использованием ключевого слова ALTER COLUMN, после которого помещается имя изменяемой колонки (column_name). Вы можете изменить тип данных колонки (new_data_type), размерность (precision) и точность (scale). При желании можно указать, разрешено ли колонке содержать значения NULL. В этом случае обязательно нужно указать тип данных для колонки, даже если вы не хотите его изменять (просто укажите существующий тип данных). Если вы определяете для колонки свойство NOT NULL, необходимо предварительно позаботиться о том, чтобы на момент изменения колонка не содержала ни одного значения NULL.

Добавление в таблицу новой колонки. Для определения новой колонки необходимо использовать ключевое слово ADD. За ним следует описание колонки, которое имеет такой же формат, как и при создании колонки с помощью команды CREATE TABLE. Здесь же можно наложить на таблицу но­вые ограничения на значения колонок. Определив ключевое слово WITH CHECK, вы предписываете системе при добавлении новых ограничений на значения колонок FOREIGN KEY или CHECK осуществлять проверку данных в таблице на соответствие этим ограничениям. По умолчанию данная про­верка проводится для всех вновь создаваемых ограничений. Когда выпол­нение подобной проверки не требуется, необходимо использовать ключе­вое слово WITH NOCHECK.

Удаление колонок из таблицы. В случае необходимости можно удалить из таблицы некоторые колонки. Для этого используйте ключевое слово DROP. Вы можете удалить как конкретную колонку (ключевое слово COLUMN), так и определенное ограничение на значение колонки (ключевое слово CONSTRAINT). Однако необходимо помнить, что нельзя удалять следующие колонки:

□ колонки, задействованные в индексе;

□ колонки, полученные в результате репликации;

□ колонки, для которых определены любые ограничения на значения;

□ колонки, для которых определены значения по умолчанию;

□ колонки, связанные с правилом.

Управление ограничениями на значения колонок. Иногда бывает необхо­димо отключить ограничения на значения колонок FOREIGN KEY или CHECK. Отключение конкретного ограничения (NOCHECK CONSTRAINT) означает, что при вводе новых строк данные не будут проверяться на соответствие это­му ограничению. Когда снова потребуется сделать ограничение активным, используйте ключевое слово CHECK CONSTRAINT. При необходимости вы мо­жете управлять всеми ограничениями сразу. Для этого необходимо использовать ключевое слово ALL.

Управление триггерами. При помощи данной команды можно управлять состоянием триггеров, определенных для данной таблицы. Ключевое слово DISABLE TRIGER, OTKЛЮЧАЕТ триггер. При этом в процессе изменения данных в таблице те действия, которые определены в триггере как реакция системы на эти изменения, не производятся, хотя триггер продолжает существовать. Чтобы активизировать триггер, необходимо использовать команду с ключевым словом ENABLE TRIGGER. Если требуется управлять сразу всеми триггерами, используйте ключевое слово ALL.

 

 

29. Добавление данных в таблицу средствами T-SQL. Использование INSERT и SELECT…INTO.

Добавление данных

1) С помощью команды INSERT. Используя единственную команду, можно добавить как одну строку, так и множество строк.

2)С помощью программного интерфейса баз данных (Database API). Этот способ включает использование ADO, OLE DB, ODBC и DB-Library.

3)С использованием команды SELECT INTO, когда результат выполнения запроса копируется в таблицу.

4)С использованием возможностей Data Transformation Services. Используя эту технологию, можно выполнять сложные операции переноса и трансформации данных с использованием множества распределенных гетерогенных источников информации,

Использование INSERT

Команда INSERT позволяет вставить в таблицу одну или несколько строк. Приведем синтаксис команды INSERT:

INSERT [INTO]

{ table_name [WITH (<table_hint_limited> [...n])]

| view_name

| rowset_function_limited }

{ [(column_list[,...n])]

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

| derived_table | execute_statement } } | DEFAULT VALUES

Рассмотрим назначение каждого из аргументов команды.

[INTO]. Дополнительное ключевое слово, которое может быть использовано в команде между словом INSERT и именем таблицы для обозначения того, что следующий параметр является именем таблицы, в которую будут вставлены данные.

Table_name. Имя таблицы, в которую необходимо вставить данные.

WITH <table_hint_limited>. Специальная конструкция, с помощью которой можно на время вставки строк в таблице установить определенный уровень блокирования.

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

rowset_function_limited. Этот аргумент содержит команды OPENQUERY и OPENROWSET, которые определяют набор данных для вставки.

(co1umn_1ist[,...n]). Этот аргумент содержит список колонок строки, в которые будет производиться вставка данных. Если этот аргумент опущен, то сервер будет вставлять данные последовательно во все колонки, начиная с первой. Значения для колонок указываются аргументом VALUES.

Ключевое слово VALUES определяет набор данных, которые будут вставлены в таблицу. Количество аргументов VALUES определяется количеством колонок в таблице или количе­ством колонок в списке column_list (если таковой имеется). Для каждой колонки таблицы можно указать один из трех возможных вариантов:

□ DEFAULT. Будет вставлено значение по умолчанию, определенное для колонки

□ NULL. При указании этого параметра в колонку, для которой разрешено хранение значений NULL, будет вставлено значение NULL.

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

derived_table. Этот аргумент может содержать команду SELECT, с помощью которой будет производиться выборка данных, которые необходимо вста­вить в таблицу.

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

DEFAULT VALUES. При указании этого параметра строка будет содержать только значения по умолчанию. Если для колонки не установлено значение по умолчанию, но разрешено хранение значений NULL, то в колонку будет вставлено NULL. Если же для колонки не разрешено хранение NULL, нет значения по умолчанию и в команде INSERT не указано значение для вставки, то сервер выдаст сообщение об ошибке и прервет выполнение команды. Это произойдет также в случае неправильного указания типа данных.

В простейшем случае вставка данных с помощью команды INSERT предлагает использование конструкции INSERT...VALUES:

INSERT [INTO] table_or_view [(column_list,..n)] VALUES(data_va1ues,..n)

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

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

SELECT {column_name [[AS] column_alias],...n}

INTO new_table FROM {source_table....n} [<select_options>]

Рассмотрим назначение каждого из аргументов:

Аргумент column_name указывает имя колонки таблицы, которая будет включена в результат. Указанная колонка должна принадлежать одной из таблиц, перечисленных в списке FROM {source_table,...n}. Если колонки, принадлежащие разным таблицам, имеют одинаковые имена, то для колонки необходимо использовать псевдоним. В противном случае сервер попытается создать таблицу с колонками, имеющими одинаковые имена. В результате произойдет ошибка и выполнение запроса будет прервано

new_table- содержит имя таблицы, которая будет создана.

FROM {source_table,...n}. В простейшем случае конструкция FROM содержит список исходных таблиц. В более сложных запросах с помощью этой конструкции определяются условия связывания двух и более таблиц.

<select_options>- содержит список различных параметров команды select.

30. Извлечение данных средствами T-SQL. Команда SELECT. Разделы SELECT и INTO.

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

В большинстве случаев используется упрощенный вариант команды SELECT, имеющий следующий синтаксис:

SELECT select_list

[INTO new_table_]

FROM table_source

[WHERE search_condition]

[GROUP BY group_by_expression]

[HAVING search_condition]

[ORDER BY order_expression [ASC | DESC] ]

Раздел SELECT имеет следующий синтаксис:

SELECT [ ALL | DISTINCT ]

[ TOP n [PERCENT] [ WITH TIES] ]

<select_list>

Рассмотрим более подробно назначение аргументов:

ALL. При указании этого ключевого слова в результат запроса разрешается включение дублирующихся строк. Параметр ALL используется по умолча­нию.

DISTINCT. Это ключевое слово запрещает появление в результате дублирующихся строк.

TOP n [PERCENT] [ WITH TIES].Использование этой конструкции предписывает серверу выбирать не все строки, а только n первых. Можно также выбирать не фиксированное количество строк, а определенный процент от всех строк, удовлетворяющих условию.

Конструкция <;select_list >;определяет список и происхождение колонок, которые будут включены в результат.

Аргумент table_name должен содержать имя таблицы, из которой необходимо выбрать все колонки. Имя таблицы необходимо указы­вать, если в запрос включено несколько таблиц. Если же в запросе участвует только одна таблица, то проще применить символ * без указания имени таблицы.

Аргумент view_name указывает имя представления, из которого необходимо выбрать все колонки.

Аргумент table_alias указывает псевдоним таблицы, из которой необходимо выбрать все колонки.

column_name [[AS] column_alias]. Этот аргумент указывает имя колонки, которое необходимо включить в результат. Колонка должна принадлежать одной из таблиц, указанных в конструкции FROM.

Синтаксис команды SELECT позволяет изменять имена колонок, которые они будут иметь в результате. Для этого используются псевдонимы. Псевдоним задается с помощью аргумента column_alias, он должен быть уникален в пределах результата. Использование псевдонимов обязательно, если исходные таблицы имеют колонки с одинаковыми именами и эти колонки необходимо включить в результат.

Раздел INTO для сохранения результата, выполняет запрос в заданной таблице.

31. Извлечение данных средствами T-SQL. Команда SELECT. Раздел FROM (глава 25 – Управление данными; Раздел «Извлечение данных»; Подраздел «Раздел FROM» с.772-776).







Дата добавления: 2015-04-19; просмотров: 1107. Нарушение авторских прав; Мы поможем в написании вашей работы!



Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

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

Медицинская документация родильного дома Учетные формы родильного дома № 111/у Индивидуальная карта беременной и родильницы № 113/у Обменная карта родильного дома...

Основные разделы работы участкового врача-педиатра Ведущей фигурой в организации внебольничной помощи детям является участковый врач-педиатр детской городской поликлиники...

Меры безопасности при обращении с оружием и боеприпасами 64. Получение (сдача) оружия и боеприпасов для проведения стрельб осуществляется в установленном порядке[1]. 65. Безопасность при проведении стрельб обеспечивается...

Весы настольные циферблатные Весы настольные циферблатные РН-10Ц13 (рис.3.1) выпускаются с наибольшими пределами взвешивания 2...

Хронометражно-табличная методика определения суточного расхода энергии студента Цель: познакомиться с хронометражно-табличным методом опреде­ления суточного расхода энергии...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия