Создание таблиц. А.М. Гудов 2Заключение Имеется несколько способов соединения таблиц: –Эквисоединение –Не-эквисоединение –Внешнее соединение –Соединение.

Презентация:



Advertisements
Похожие презентации
Язык SQL Последовательности Представления Индексы.
Advertisements

Лекция 16 Лекция 16 Основы SQL. Описание отношений, доменов, ограничений целостности, представлений данных. Реализация операций реляционной алгебры в SQL.
Лекция 3 Домены Ограничения на значения столбцов Создание, изменение и удаление таблиц Ключи и ссылочная целостность Защита таблиц.
Язык SQL Типы данных SQL Типы данных, используемые в стандартном SQL, можно подразделить на следующие группы: строковые типы; числовые типы; типы для представления.
Введение в SQL (НЕ select) Затрагиваемые темы Роль языка SQL. Части SQL Роль языка SQL. Части SQL Администрирование БД: привилегии (DCL) Администрирование.
Реляционная модель данных Разработана Е.Ф.Коддом (E.F.Codd) в 1970 г.
БАЗЫ ДАННЫХ ЛЕКЦИЯ 12. тема: ОСНОВЫ ЯЗЫКА SQL Общие сведения SQL структурированный язык запросов (Structured Query Language)
Лекция 10. Запросы определения данных (DDL). Свойства столбцов и таблиц. На основе запроса выборки можно построить представление. В SQL представление является.
Принципы поддержки целостности в реляционной модели данных.
РАЗРАБОТКА ПРОСТОГО БЛОКА. Структура простого блока DECLARE BEGIN EXCEPTION END;
Базы данных Язык запросов SQL. Введение. SQL – Structured Query Language SQL – это структурированный язык запросов к реляционным базам данных (БД). SQL.
База данных База данных – это конкретная предметная область, описанная с помощью таблиц.
SQL. Создание базы данных CREATE DATABASE ALTER DATABASE DROP DATABASE.
Data Definition Language (DDL)– язык определения данных Бази даних та інформаційні системи Лекція 13.
Презентация на тему: Ключевое слово TOP n [PERCENT] [WITH TIES]
СУБД Microsoft Access 2003 РАЗРАБОТКА БАЗЫ ДАННЫХ (Таблицы и связи между ними)
Реляционные базы данных N-арное отношение – подмножество декартова произведения N множеств возможных значений (доменов, типов данных, атрибутов) Изображение.
Три способа организации доступа к базе данных через: 1.Запуск PostgreSQL интерактивной терминальной программы, называемые PSQL, который позволяет интерактивно.
1 Часть II. Лекция 4. © Куркурин Николай Дмитриевич. (906)
Ограничение целостности CHECK задает диапазон возможных значений для столбца. Ограничение целостности CHECK задает диапазон возможных значений для столбца.
Транксрипт:

Создание таблиц

А.М. Гудов 2Заключение Имеется несколько способов соединения таблиц: –Эквисоединение –Не-эквисоединение –Внешнее соединение –Соединение с собой WHEREОтсутствие предложения WHERE приводит к возникновению декартова произведения таблиц. Использование псевдонимов таблиц ускоряет доступ к базе данных. Для соединения таблицы с собой использование псевдонимов обязательно.

А.М. Гудов 3 Структуры данных База данных Oracle7 может содержать многочисленные структуры данных. Table –Таблица (Table)Хранит данные View –ПредставлениеПодмножество данных из (View)одной или нескольких таблиц Sequence –Последователь-Генерирует значения ность (Sequence)первичного ключа Index –Индекс (Index)Повышает производительность некоторых запросов Определять структуры таблиц следует на этапе проектирования базы данных.

А.М. Гудов 4 Создание таблиц: синтаксис CREATE TABLE [schema.]table (column datatype [DEFAULT expr] [column_constraint],... [table_constraint]); [table_constraint]); CREATE TABLE [schema.]table (column datatype [DEFAULT expr] [column_constraint],... [table_constraint]); [table_constraint]); DEFAULT Параметр DEFAULT задает значение столбца по умолчанию при вставке строк. SYSDATEUSER Допускаются строковые константы, выражения и такие функции SQL, как SYSDATE и USER. Недопустимыми значениями являются имена других столбцов и псевдостолбцы. Тип данных значения, используемого по умолчанию, должен совпадать с типом данных столбца.... start_date DATE DEFAULT SYSDATE,...

А.М. Гудов 5 Ссылки на таблицы других пользователей Ограничения должны ссылаться на таблицы в пределах одной базы данных. Таблицы других пользователей отсутствуют в схеме данного пользователя. Имя владельца следует использовать в качестве префикса к имени таблицы. Правила присвоения имен Должны начинаться с буквы. Могут включать от 1 до 30 символов. Могут содержать только символы A-Z, a-z, 0-9, _ (подчеркивание), $ и #. Не могут совпадать с именем другого объекта, принадлежащего этому же пользователю. Не могут совпадать с зарезервированным словом сервера Oracle7.

А.М. Гудов 6 Типы данных VARCHAR2(размер) CHAR(размер) NUMBER NUMBER(p,s) DATELONG RAW и LONG RAW Описание Символьные значения переменной длины Символьные значения фиксированной длины Числа с плавающей точкой Числовые значения Значения даты и времени Символьные значения переменной длины размером до 2Гб VARCHAR2LONG Эквиваленты VARCHAR2 и LONG для двоичных данных

А.М. Гудов 7Ограничения Реализуют правила по обеспечению целостности данных на уровне таблицы. Предотвращают удаление таблицы при наличии взаимозависимостей. В Oracle7 существуют следующие виды ограничений: –NOT NULL –UNIQUE –PRIMARY KEY –FOREIGN KEY –CHECK Имена ограничениям присваивайте сами. В противном случае сервер может создать имя в формате SYS_Cn. Создавайте ограничения: –В момент создания таблицы. –После создания таблицы. Используйте ограничения на уровне столбца или таблицы.

А.М. Гудов 8 Ограничение: синтаксис Ограничение на уровне столбца Ограничение на уровне таблицы column [CONSTRAINT constraint_name] constraint_type, column,... [CONSTRAINT constraint_name] constraint_type [CONSTRAINT constraint_name] constraint_type (column,...), (column,...),column,... [CONSTRAINT constraint_name] constraint_type [CONSTRAINT constraint_name] constraint_type (column,...), (column,...),

А.М. Гудов 9 Ограничение NOT NULL Не допускает неопределенных значений в столбце. Задается на уровне столбца. Пример: CREATE TABLEfriend... phoneVARCHAR2(15) NOT NULL,... phoneVARCHAR2(15) NOT NULL,... last_nameVARCHAR2(25) last_nameVARCHAR2(25) CONSTRAINT friend_last_name_nn NOT NULL,... CONSTRAINT friend_last_name_nn NOT NULL,... CREATE TABLEfriend... phoneVARCHAR2(15) NOT NULL,... phoneVARCHAR2(15) NOT NULL,... last_nameVARCHAR2(25) last_nameVARCHAR2(25) CONSTRAINT friend_last_name_nn NOT NULL,... CONSTRAINT friend_last_name_nn NOT NULL,...

А.М. Гудов 10 Ограничение UNIQUE Задает один или несколько столбцов, значение или комбинация значений в которых не могут повторяться в двух строках таблицы. UNIQUEДопускает неопределенные значения, если ключ UNIQUE создан по одному столбцу. Может быть задано как для таблицы, так и для столбца. Автоматически создает уникальный индекс.... phoneVARCHAR2(10) CONSTRAINT s_emp_phone_uk UNIQUE,... CONSTRAINT s_emp_phone_uk UNIQUE, phoneVARCHAR2(10) CONSTRAINT s_emp_phone_uk UNIQUE,... CONSTRAINT s_emp_phone_uk UNIQUE,...

А.М. Гудов 11 Ограничение PRIMARY KEY Создает первичный ключ таблицы. Каждая таблица может иметь только один первичный ключ. Обеспечивает отсутствие повторяющихся столбцов. Не допускает неопределенных значений ни в одной компоненте первичного ключа. Может быть задано как на уровне таблицы, так и на уровне столбца. Автоматически создает уникальный индекс.... idNUMBER(7) CONSTRAINT s_emp_id_pk PRIMARY KEY,... CONSTRAINT s_emp_id_pk PRIMARY KEY, idNUMBER(7) CONSTRAINT s_emp_id_pk PRIMARY KEY,... CONSTRAINT s_emp_id_pk PRIMARY KEY,...

А.М. Гудов 12 Ограничение FOREIGN KEY Задает столбец или набор столбцов в качестве внешнего ключа таблицы. Устанавливает связь с первичным или уникальным ключом в той же самой таблице или между таблицами. Может быть задано как на уровне таблицы, так и на уровне столбца. NULLЗначение внешнего ключа должно совпадать с существующим значением в родительской таблице или быть неопределенным (NULL).... dept_idNUMBER(7) CONSTRAINT s_emp_dept_id_fk CONSTRAINT s_emp_dept_id_fk REFERENCES s_dept(id),... REFERENCES s_dept(id), dept_idNUMBER(7) CONSTRAINT s_emp_dept_id_fk CONSTRAINT s_emp_dept_id_fk REFERENCES s_dept(id),... REFERENCES s_dept(id),...

А.М. Гудов 13 Ключевые слова ограничения FOREIGN KEY FOREIGN KEYFOREIGN KEY –Определяет столбец в дочерней таблице как внешний ключ. REFERENCESREFERENCES –Указывает таблицу и столбец в родительской таблице. ON DELETE CASCADEON DELETE CASCADE –Разрешает удаление в родительской таблице и удаление зависимых строк в дочерней таблице.

А.М. Гудов 14 Ограничение CHECK Задает условие, которому должна удовлетворять каждая строка. В выражениях запрещены: CURRVAL NEXTVALLEVELROWNUM –Ссылки на псевдостолбцы CURRVAL, NEXTVAL, LEVEL и ROWNUM. SYSDATEUIDUSER USERENV –Вызовы функций SYSDATE, UID, USER и USERENV. –Запросы со ссылками на другие значения в других строках. Это ограничение может быть задано как на уровне таблицы, так и на уровне столбца.

А.М. Гудов 15 Создание таблицы на основе бланка экземпляра таблицы CREATE TABLE имя_таблицы 1.Создать командный файл. Включить команду CREATE TABLE имя_таблицы. 2.Отобразить имена столбцов, типы данных и их длину. NOT NULL PRIMARY KEY 3.Ограничение NOT NULL задавать на уровне столбцов во всех случаях, кроме главного ключа (PRIMARY KEY). PRIMARY KEY 4.Задать ограничение PRIMARY KEY. UNIQUECHECKFOREIGN KEY 5.Задать ограничения UNIQUE, CHECK и FOREIGN KEY. 6.Сохранить и выполнить командный файл.

А.М. Гудов 16 Бланк экземпляра таблицы: S_DEPT Имя столбцаIDNAMEREGION_ID Тип ключа Тип ключаPKFK NN/UK NN/UKNN, UNN, U2U2 Таблица FK Таблица FK S_REGION Столбец FK Столбец FK ID Тип данных Тип данныхNUMBERCHARNUMBER Длина Длина7257 Пример данных Пример данных10Finance1 31Sales1 32Sales2 33Sales3

А.М. Гудов 17 Создание таблицы: пример SQL> CREATE TABLE s_dept 2 (idNUMBER(7) 3 CONSTRAINT s_dept_id_pk PRIMARY KEY, 4 nameVARCHAR2(25) 5 CONSTRAINT s_dept_name_nn NOT NULL, 6 region_idNUMBER(7) 7 CONSTRAINT s_dept_region_id_fk REFERENCES 8 s_region (id), 9 CONSTRAINT s_dept_name_region_id_uk UNIQUE 10 (name, region_id));

А.М. Гудов 18 Создание таблицы: пример SQL> CREATE TABLE s_emp 2 (idNUMBER(7) 3 CONSTRAINT s_emp_id_pk PRIMARY KEY, 4 last_nameVARCHAR2(25) 5 CONSTRAINT s_emp_last_name_nn NOT NULL, 6 first_nameVARCHAR2(25), 7 useridVARCHAR2(8) 8 CONSTRAINT s_emp_userid_nn NOT NULL 9 CONSTRAINT s_emp_userid_uk UNIQUE, 10 start_dateDATE DEFAULT SYSDATE, 11 commentsVARCHAR2(25), 12 manager_idNUMBER(7), 13 titleVARCHAR2(25), 14 dept_idNUMBER(7) 15 CONSTRAINT s_emp_dept_id_fk REFERENCES 16 s_dept (id), 17 salaryNUMBER(11,2), 18 commission_pctNUMBER(4,2) 19 CONSTRAINT s_emp_commission_pct_ck CHECK 20 (commission_pct IN(10,12.5,15,17.5,20))); SQL> CREATE TABLE s_emp 2 (idNUMBER(7) 3 CONSTRAINT s_emp_id_pk PRIMARY KEY, 4 last_nameVARCHAR2(25) 5 CONSTRAINT s_emp_last_name_nn NOT NULL, 6 first_nameVARCHAR2(25), 7 useridVARCHAR2(8) 8 CONSTRAINT s_emp_userid_nn NOT NULL 9 CONSTRAINT s_emp_userid_uk UNIQUE, 10 start_dateDATE DEFAULT SYSDATE, 11 commentsVARCHAR2(25), 12 manager_idNUMBER(7), 13 titleVARCHAR2(25), 14 dept_idNUMBER(7) 15 CONSTRAINT s_emp_dept_id_fk REFERENCES 16 s_dept (id), 17 salaryNUMBER(11,2), 18 commission_pctNUMBER(4,2) 19 CONSTRAINT s_emp_commission_pct_ck CHECK 20 (commission_pct IN(10,12.5,15,17.5,20)));

А.М. Гудов 19 Создание таблицы посредством подзапроса Количество заданных столбцов должно совпадать с количеством столбцов в подзапросе. Для столбцов можно указать только имя, значение по умолчанию и правила целостности CREATE TABLE table [column(, column...)] [column(, column...)] AS subquery; AS subquery; CREATE TABLE table [column(, column...)] [column(, column...)] AS subquery; AS subquery; Создание таблицы и вставка строк с помощью команды CREATE TABLEAS подзапрос CREATE TABLE и параметра AS подзапрос.

А.М. Гудов 20 Создание таблицы с данными о всех сотрудниках отдела номер 41 из таблицы S_EMP. Помните о том, что копируется только ограничение NOT NULL. Создание таблицы посредством подзапроса CREATE TABLE emp_41 AS SELECTid, last_name, userid, start_date FROMs_emp WHERE dept_id = 41;

А.М. Гудов 21Заключение CREATE TABLE Таблицы базы данных создаются с помощью команды CREATE TABLE SQL. При создании таблицы указывается следующее: –Имя таблицы. –Имена столбцов, типы данных и их длина. –Ограничения, направленные на сохранение целостности данных. CREATE TABLE [schema.]table (column datatype [column_constraint],... [table_constraint]); [table_constraint]); CREATE TABLE [schema.]table (column datatype [column_constraint],... [table_constraint]); [table_constraint]);

А.М. Гудов 22Заключение Типы ограничений –NOT NULL –UNIQUE –PRIMARY KEY –FOREIGN KEY –CHECK UNIQUEИндексы по уникальным ключам (UNIQUE) PRIMARY KEYUNIQUE –Создаются автоматически при наличии ограничений PRIMARY KEY и UNIQUE. DESCRIBEКоманда DESCRIBE SQL*Plus –Показывает структуру таблицы.

А.М. Гудов 23 Задания для практического занятия