W Cat - SQL за 24 часа
- Название:SQL за 24 часа
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
W Cat - SQL за 24 часа краткое содержание
SQL за 24 часа - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Использование условий проверки показано в следующем примере.
CREATE TABLE EMPLOYEE_TBL (EMP_ID CHAR(9) NOT NULL,
EMP_NAME VARCHAR2(40) NOT NULL,
EMP_ST_ADDR VARCHAR2{20) NOT NULL,
EMP_CITY VARCHAR2(15) NOT NULL,
EMP_ST CHAR(2) NOT NULL,
EMP_ZIP NUMBER(5) NOT NULL,
EMP_PHONE NUMBER(10) NULL,
EMP_PAGER NUMBER(10) NULL), PRIMARY KEY (EMP_ID), CONSTRAINT CHK_EMP_ZIP CHECK ( EMP_ZIP = '46234' );
В этом примере условия проверки назначены столбцу EMP_ZIP и состоят в том, чтобы у всех служащих из этой таблицы был ZIP-код равный ' 46234 '. Наверное, это слишком строгое ограничение, но зато вы можете видеть, как оно работает.
Если нужно использовать условия проверки для того, чтобы допустить ZIP-коды только из определенного набора значений, условие может выглядеть так:
CONSTRAINT CHK_EMP_ZIP CHECK (EMP_ZIP in ('46234','46227','46745'));
Если имеется минимальный уровень оплаты труда, который должен быть обеспечен служащему, можно указать следующие условия:
CREATE TABLE EMPLOYEE_PAY_TBL
(EMP_ID CHAR(9) NOT NULL,
POSITION VARCHAR2(15) NOT NULL,
DATE_HIRE DATE NULL,
PAY_RATE NUMBER(4,2) NOT NULL,
DATE_LAST_RAISE DATE NULL,
CONSTRAINT EMP_ID_FK FOREIGN KEY (EMP_ID) REFERENCES EMPLOYEEJTBL (EMP_ID), CONSTRAINT CHK_PAY CHECK (PAY_RATE > 12.50 ) );
В данном примере любому из служащих, информация о которых заносится в таблицу, необходимо назначить 'плату более $12,50 в час. Для условий проверки можно использовать практически любые условия, допустимые для запросов SQL. В ходе дальнейшего чтения такие условиях будут обсуждаться подробнее.
Любое из назначенных условий можно удалить с помощью оператора ALTER TABLE с опцией DROP CONSTRAINT. Например, чтобы отменить назначение ключа в таблице EMPLOYEES, можно воспользоваться следующей командой.
ALTER TABLE EMPLOYEES DROP CONSTRAINT EMPLOYEES_PK;
Изменение таблицы.
В некоторых реализациях SQL предлагаются специальные сокращения для удаления определенных условий. Например, чтобы удалить ключ таблицы в Oracle, можно воспользоваться следующей командой.
ALTER TABLE EMPLOYEES DROP PRIMARY KEY;
Изменение таблицы.
В некоторых реализациях SQL вместо окончательного удаления ограничения из базы данных можно временно отключить имеющееся ограничение, чтобы позже включить его снова.
Вы узнали кое-что об объектах базы данных, в частности, достаточно подробно разобрались с таблицами. Таблицы представляют собой простейшую форму хранения данных в реляционных базах данных. В таблицах сгруппированы логически единые куски информации, например, о служащих, клиентах или товарах. Таблицы состоят из столбцов, которым назначаются различные атрибуты, в основном, типы данных и различные ограничения - значения NOT NULL, ключевые поля и внешние ключи, требования уникальности значений.
Вы ознакомились с примерами использования команды CREATE TABLE и с ее опциями, среди которых, в частности, параметры выделения таблице памяти. Вы научились модифицировать структуру уже созданной таблицы с помощью команды ALTER
TABLE. Хотя процесс управления таблицами базы данных и нельзя отнести к основным задачам использования SQL, мы считаем, что если вы узнаете больше о структуре и природе таблиц, вам легче будет освоить принципы доступа к таблицам, лежащие в основе манипуляций данными или осуществления запросов. Из следующих уроков вы узнаете об управлении с помощью SQL другими объектами базы данных, в частности, индексами таблиц и представлениями.
При создании таблицы обязательно ли в ее имени использовать суффикс _твь?
Определенно нет. Вас ничего не принуждают его использовать. Например, таблице с информацией о служащих можно назначить либо одно из следующих имен, либо любое другое, которое будет соответствовать хранимым в этой таблице данным:
EMPLOYEE EiMP_TBL EMPLOYEE TBL EMPLOYEE^TABLE WORKER
Почему при удалении таблицы так важно указывать имя соответствующей схемы?
Вот вам непридуманная история о молодом администраторе базы данных, удалившем таблицу. Один программист создал в рамках своей схемы таблицу с именем точно таким же, как у таблицы с производственной информацией. Прошло некоторое время и он из компании уволился. При попытке ликвидации его учетной записи оператор DROP USER вернул ошибку из-за каких-то принадлежащих программисту объектов, оставшихся в базе данных. Исследование проблемы показало, что таблица, созданная тем программистом, не нужна и по отношению к ней был применен оператор DROP TABLE.
Все прошло прекрасно, но возникла другая проблема - оказалось, что администратор применил оператор DROP TABLE, войдя в базу данных под именем производственной схемы. Как было бы хорошо, если бы администратор указал имя схемы или владельца удаляемой таблицы 1Да, была удалена не та таблица из не той схемы. На восстановление производственной базы данных потребовалось почти восемь часов.
Задания практических занятий разделены на тесты и упражнения. Тесты предназначены для проверки общего уровня понимания рассмотренного материала. Упражнения дают возможность применить на практике идеи, обсуждавшиеся в ходе текущего урока, в комбинации с идеями из предыдущих уроков. Мы рекомендуем ответить на тестовые вопросы и выполнить упражнения прежде, чем продолжать дальнейшее чтение книги. Ответы можно проверить по Приложению Б, "Ответы".
1. Будет ли работать следующий оператор CREATE TABLE? Если нет, то что нужно в нем исправить?
CREATE TABLE EMPLOYEEJTBL AS (SSN NUMBER(9) NOT NULL,
LAST_NAME VARCHAR2(20) NOT NULL
FIRST_NAME VARCHAR2(20) NOT NULL,
MIDDLE_NAME VARCHAR2(20) NOT NULL, ST ADDRESS VARCHAR2(30) NOT NULL, CITY CHAR(20) NOT NULL, STATE CHAR2) NOT
NULL, ZIP NUMBER(4) NOT NULL, DATE HIRED DATE) STORAGE
(INITIAL 3K, NEXT IK ) ;
2. Можно ли удалить столбец из таблицы?
3. Что будет, если в оператор CREATE TABLE не включить ключевое слово STORAGE?
1. Ознакомьтесь с Приложением В, "Операторы CREATE TABLE для примеров книги" и проанализируйте приведенные там операторы.
4-й час Процесс нормализации
На этом уроке вы ознакомитесь с процессом разделения сырой базы данных на логические единицы, называемые таблицами. Этот процесс называют процессом нормализации.
Мы обсудим преимущества и недостатки нормализованных баз данных, в частности, получение вследствие нормализации гарантий целостности данных за счет скорости работы базы данных.
Основными на этом уроке будут следующие темы.
• Что такое нормализация?
• Преимущества нормализации
• Преимущества денормализации
• Инструкции по проведению нормализации
• Три нормальные формы
• Проектирование баз данных
Нормализация - это процесс сокращения повторений информации в базе данных. Нормализуются в базе данных не только данные, но и имена, включая имена объектов и форм.
Ненормализованная база данных может содержать данные, содержащиеся в нескольких таблицах без всяких на то причин. Это может быть неприемлемо, например, с точки зрения безопасности, использования дискового пространства, удобства обновления базы данных и, что более важно, с точки зрения целостности данных. Ненормализованная база данных - это база данных, не разделенная на меньшие, логически единые и более управляемые таблицы.
Читать дальшеИнтервал:
Закладка: