W Cat - SQL за 24 часа
- Название:SQL за 24 часа
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
W Cat - SQL за 24 часа краткое содержание
SQL за 24 часа - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Ключевое слово STORAGE в различных реализациях SQL используется по-разному. Предыдущий пример использования STORAGE взят из Oracle, где оно добавляется к оператору CREATE TABLE. He забывайте, что стандарт ANSI для SQL является всего лишь стандартом и не более. Стандарт непосредственно языком не является, а обеспечивает производителям рекомендации, касающиеся разработки их реализаций SQL. Вы обнаружите, что и типы данных тоже зависят от реализации. Во многих отношениях зависят от реализации и подходы к хранению и обработке данных.
При выборе имен для объектов, в частности для таблиц и столбцов, имя должно соответствовать хранящимся данным. Например, для таблицы, в которой предполагается хранить информацию о служащих, подойдет имя EMPLOYEE_TBL. Той же логике должны следовать и имена столбцов. Для столбца, в котором будет храниться номер телефона служащего, очевидно подходящим именем будет PHONE_NUMBER.
Выясните, какие ограничения на длину имен и допустимые символы имеет ваша реализация SQL - эти ограничения для разных реализаций различны.
Таблицу можно модифицировать и после ее создания с помощью команды ALTER TABLE. С помощью этой команды можно добавлять и удалять столбцы, менять определения столбцов, добавлять и удалять ограничения, а в некоторых реализациях и модифицировать значения, задаваемые ключевым словом STORAGE. Стандартный синтаксис команды ALTER TABLE следующий:
ALTER TABLE ИМЯ_ТАБЛИЦЫ [MODIFY] [COLUMN ИМЯ_СТОЛБЦА] [ТИП ДАННЫХ|NULL NOT NULL] [RESTRICT|CASCADE]
[DROP] [CONSTRAINT ИМЯ_ОГРАНИЧЕНИЯ]
[ADD] [COLUMN] ОПРЕДЕЛЕНИЕ СТОЛБЦА
Атрибуты столбца задают правила представления данных в столбце. С помощью команды ALTER TABLE можно менять атрибуты столбца. Под атрибутами здесь понимается следующее:
• тип данных в столбце;
• длина, точность или масштаб данных в столбце;
. • разрешение или запрет иметь в столбце значение NULL.
В следующем примере команда ALTER TABLE используется для того, чтобы изменить атрибуты столбца EMP_ID таблицы EMPLOYEE_TBL.
ALTER TABLE EMPLOYEE_TBL MODIFY (EMP_ID VARCHAR2(10));
Изменение таблицы.
Столбцу уже был назначен тип данных VARCHAR2 (строка символов переменной длины), но здесь была увеличена максимальная длина строки с 9 до 10.
При добавлении столбца в уже существующую таблицу с имеющимися в ней данными новому столбцу нельзя назначить атрибут NOT NULL. NOT NULL означает, что столбец должен содержать значения для каждой строю! в таблице, так что если добавляемый столбец получит атрибут NOT NULL, вы сразу же получите противоречие с этим ограничением, поскольку имеющиеся в таблице столбцы не имеют значений для нового столбца.
И все же имеется возможность добавить столбец, требующий обязательного ввода данных, следующим образом.
1. Добавьте столбец, задав ему атрибут NULL (это значит, что в столбце не обязательно должны присутствовать данные).
2. Введите данные в каждую строку нового столбца таблицы.
3. Убедившись, что столбец содержит значение в каждой из строк таблицы, можно изменить атрибут столбца на NOT NULL.
При изменении столбцов таблиц нужно учитывать целый ряд моментов. Общие правила следующие.
• Ширина столбца может быть увеличена до максимальной длины, разрешенной для соответствующего типа данных.
• Ширину столбца можно уменьшить только до наибольшей длины имеющихся в этом столбце значений.
• Для столбцов с числовыми данными ширину всегда можно увеличить.
• Для столбцов с числовыми данными ширину можно уменьшить только тогда, когда нового числа знаков будет достаточно для размещения любого из имеющихся в столбце значений.
• Для числовых данных можно увеличивать или уменьшать число десятичных знаков.
• Тип данных в столбце обычно можно изменить.
В некоторых реачизациях использование определенных опций оператора ALTER TABLE может быть запрещено. Например, вам могут не позволить удалять столбцы из таблиц. Вместо этого вам нужно будет удалить таблицу и создать новую с нужным числом столбцов. Могут возникнуть проблемы с удалением столбцов из таблицы, зависящей от столбца из другой таблицы, или с удалением столбца, на который ссылается другая таблица. По этому поводу внимательно просмотрите документацию, предлагаемую той реализацией SQL, с которой вы работаете.
С помощью комбинации операторов CREATE TABLE и SELECT можно создать копию уже существующей таблицы. Столбцы новой таблицы будут иметь те же определения. При этом для копирования можно выбрать как все столбцы, так и только некоторые.
Новые столбцы, создаваемые как функции или комбинации столбцов, автоматически учитывают размеры, необходимые для хранения имеющихся данных. Базовый синтаксис оператора создания таблицы из уже существующей будет следующим.
CREATE TABLE ИМЯ_НОВОЙ_ТАБЛИЦЫ AS SELECT [ *|СТОЛБЕЦ!, СТОЛБЕЦ2 ] FROM ИМЯ_ТАБЛИЦЫ [ WHERE ]
Обратите здесь внимание на новые ключевые слова, в частности, на ключевое слово SELECT, которое представляет запрос к базе данных и будет обсуждаться подробно позже. Но сейчас важно знать, что вы можете создавать таблицы, основываясь на результатах запроса.
Сначала выполним запрос, чтобы увидеть данные в таблице PRODUCTSJTBL.
SELECT * FROM PRODUCTSJTBL;
PROD_ID PROD_DESC COST
11235 КОСТЮМ ВЕДЬМЫ 29.99
222 ПЛАСТИКОВЫЕ ТЫКВЫ 7.75
13 ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 1.1
90 ФОНАРИ 14.5
15 КОСТЮМЫ В АССОРТИМЕНТЕ 10
9 СЛАДКАЯ КУКУРУЗА 1.35
6 ТЫКВЕННЫЕ КОНФЕТЫ 1.45
87 ПЛАСТИКОВЫЕ ПАУКИ 1.05
119 МАСКИ В АССОРТИМЕНТЕ 4.95
SELECT * выбирает данные из всех полей данной таблицы Символ * представляет целую сроку данных (т. е. запись) в таблице.
Затем на основе результатов этого запроса создадим таблицу с именем PRODUCTS_TMP.
CREATE TABLE PRODUCTS_TMP AS
SELECT * FROM PRODUCTS_TBL;
Создание таблицы.
Если теперь выполнить запрос к таблице PRODUCTS_TMP, результат будет выглядеть так же, как результат запроса коригинальной таблице.
PROD_ID PROD_DESC COST
11235 КОСТЮМ ВЕДЬМЫ 29.99
222 ПЛАСТИКОВЫЕ ТЫКВЫ 7.75
13 ИСКУССТВЕННЫЕ ПАРАФИНОВЫЕ ЗУБЫ 1.1
90 ФОНАРИ 14.5
15 КОСТЮМЫ В АССОРТИМЕНТЕ 10
9 СЛАДКАЯ КУКУРУЗА 1.35
6 ТЫКВЕННЫЕ КОНФЕТЫ 1.45
87 ПЛАСТИКОВЫЕ ПАУКИ 1.05
119 МАСКИ В АССОРТИМЕНТЕ 4.95
При создании таблицы из уже имеющейся, новая таблица получит те же атрибуты STORAGE, что и исходная.
Удаление таблиц является, пожалуй, самым простым делом. Если используется опция RESTRICT либо на таблицу ссылается представление или ограничение, используемый для удаления оператор DROP возвратит ошибку. При использовании опции CASCADE будет выполнено удаление не только самой таблицы, но и всех ссылающиеся на таблицу представлений и ограничений. Синтаксис оператора, используемого для удаления таблиц, следующий:
Читать дальшеИнтервал:
Закладка: