6173

Создание, изменение и удаление таблиц в SQL Oracle

Лабораторная работа

Информатика, кибернетика и программирование

Создание, изменение и удаление таблиц в SQL Oracle Цели лабораторной работы Изучить возможности SQL Oracle по созданию, изменению и удалению таблиц. Приобрести практический опыт по созданию, изменению и удалению таблиц в SQL*Plus. ...

Русский

2012-12-30

208 KB

58 чел.

Создание, изменение и удаление таблиц в SQL Oracle

  1.  Цели лабораторной работы
  •  Изучить возможности SQL Oracle по созданию, изменению и удалению таблиц.
  •  Приобрести практический опыт по созданию, изменению и удалению таблиц в SQL*Plus.
  1.  Теоретические основы
    1.  Создание таблицы
      1.  Синтаксис

  1.  Назначение

Создание реляционной таблицы – базовой структуры, которая предназначена для хранения данных. Таблицы создаются с пустыми данными. Вы можете добавить строки данных с помощью предложения INSERT. После создания таблицы вы можете переопределить ее, например, добавляя новые столбцы и/или ограничения целостности, с помощью фразы ADD предложения ALTER TABLE. Вы можете изменить описание существующего столбца с помощью фразы MODIFY предложения ALTER TABLE.

  1.  Предварительные требования

Для создания реляционной таблицы в вашей собственной схеме необходима системная привилегия CREATE TABLE . Для создания таблицы в схеме другого пользователя необходима системная привилегия CREATE ANY TABLE.

Для создания ограничений целостности UNIQUE или PRIMARY KEY вы должны иметь привилегии, необходимые для создания индекса таблицы. Эти привилегии необходимы в связи с тем, что Oracle создает индекс индексы по столбцам, которые имеют ограничения unique или primary key в той схеме, где расположена таблица.

  1.  Ключевые слова и параметры 

schema

Схема, которая будет содержать таблицу. Если вы опустили schema, Oracle создаст таблицу в вашей собственной схеме.

table

Имя создаваемой таблицы.

column

Специфицирует имя столбца таблицы.

Если вы также указали AS subquery, то можете опустить column и datatype.

datatype

Тип данных столбца. Типы данных, поддерживаемые в Oracle приведены в разделе «Типы данных Oracle».

Вы можете определить столбец с типом данных ROWID, однако Oracle не гарантирует, что принимаемые значения будут соответствовать допустимым значениям этого типа. datatype может быть опущен:

-  если вы указали фразу AS subquery. (Если вы создаете таблицу с индексами и указываете фразу AS subquery, то вы обязаны опустить тип данных.)

- если соответствующий столбец входит в состав внешнего ключа в референциальном ограничении целостности. (Oracle автоматически присвоит столбцу тип данных, имеющийся у столбца, на который производится ссылка в референциальном ограничении целостности.)

DEFAULT expr

Определяет значение, которое должно быть присвоено столбцу в том случае, когда в последующих предложениях INSERT значение столбца не будет указываться. Тип данного для выражения expr должен совпадать с типом данных столбца. Столбец также должен быть достаточно длинным, что разместить значение выражения.

column_constraint 

Определяет ограничение целостности в качестве составной части определения столбца. Ограничения целостности будут изучены в лабораторной работе 2.

table_constraint

Определяет ограничение целостности в качестве составной части определения таблицы. Ограничения целостности будут изучены в лабораторной работе 2.

AS subquery

Вставляет строки, возвращаемые подзапросом, в создаваемую таблицу.

Ограничения: 

  •  Количество столбцов в таблице должно быть равно количеству столбцов, возвращаемых подзапросом.
  •  Определения столбцов могут содержать только имена столбцов, значения по умолчанию и ограничения целостности, но не могут содержать тип данных.
  •  Вы не можете определить референциальное ограничение целостности (см. Лаб. 2) в предложении CREATE TABLE, которое содержит фразу AS subquery. В этом случае вы должны создать таблицу без таких ограничений и затем добавть их позже с помощью предложения ALTER TABLE.
  1.  Типы данных Oracle 

Тип данных связывает фиксированный набор свойств со значениями, которые могут использоваться в столбце таблицы или в качестве аргумена процедуры или функции. Эти свойства заставляют Oracle трактовать значения одного типа данных по другому по отношению к значениям другого типа. Например, Oracle может складывать значения типа NUMBER, но не может это делать для типа RAW.

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

Тип данных

Описание

Длина столбца и значение по умолчанию o

CHAR (size)

Строковые данные фиксированной длины в size байт 

Длина фиксирована для всех строк таблицы (с учетом дописываемых справа пробелов). Максимально допустимый размер - 2000 байт. Размер по умолчанию – 1 байт.

VARCHAR2 (size)

Variable-length character data

Variable for each row, up to 4000 bytes per row. A maximum size must be specified.

NUMBER (p,s)

Числовое данное переменной длины. Максимальное значение точности p и/или масштаба равно 38

Длина переменная для каждой стоки. Для такого столбца максимально необходимое пространство равно 21 байт

DATE 

Данное фиксированной длины, содержащее дату и время в диапазоне от Jan. 1, 4712 B.C.E. до Dec. 31, 4712 C.E.

Длина фиксирована и равна 7 байт для каждой стоки в таблице. Формат по умолчанию (например, DD-MON-YY) определяется параметром NLS_DATE_FORMAT

BLOB

Неструктурированные бинарные данные

До 232 - 1 байт или 4 гигабайт

RAW (size)

Бинарные данные переменной длины

Каждая строка имеет переменную длину, не превышающую 2000 байт. Максимальные размер size должен быть указан. Используется для совместимости с предыдущими версиями Oracle.

LONG

Строковые данные переменной длины

до 2GB

LONG RAW

Бинарные данные переменной длины

Каждая строка имеет переменную длину, не превышающую 231 - 1 байт или 2 гигабайта. Используется для совместимости с предыдущими версиями Oracle.

ROWID

Бинарные данные, представляющие адрес строки.

Фиксированной длины в 10 байт (расширенный ROWID) или 6 байт (ограниченный ROWID) для каждой строки таблицы

  1.  Семантика сравнения строковых данных 

Oracle сравнивает значения типа CHAR с использованием семантику сравнения с дополнением пробелами. Если два значения имеют различную длину, то Oracle дополняет пробелами более короткое значение пробелами до размера более длинного значения, и затем сравнивает их посимвольно до первого отличающегося символа. То значение, которое имеет отличающийся символ большим по величине, рассматривается как большим значением. Если два значения отличаются только количеством пробелов в конце, то они рассматриваются равными.

Oracle сравнивает значения типа VARCHAR2 используя семантику сравнения без дополнения пробелами. Два значения рассматриваются равными, если они равны по длине и содержат одинаковые символы. Oracle сравнивает значения посимвольно до первого отличающегося символа. То значение, которое имеет отличающийся символ большим по величине, рассматривается как большим значением.

  1.  Использование типа данных NUMBER

Используйте тип NUMBER для хранения действительных чисел в формате с фиксированной или плавающей точкой. Гарантируется, что числа в этом формате будут совместимыми на всех платформах Oracle. Допустимая точность - 38 десятичных цифр. В столбце типа NUMBER можно запоминать положительные и отрицательные числа в диапазоне от 1 x 10-130 до 9.99...x10125, а также нули.

Для числовых столбцов вы можете специфицировать столбец как число с плавающей запятой следующим образом:

Column_name NUMBER

Вы можете указать точность – precision - (общее количество десятичных знаков в числе) и масштаб – scale - (количество десятичных знаков справа от десятичной точки) следующим образом:

Column_name NUMBER (<precision>, <scale>)

Например: число 123.45 имеет точность 5 и масштаб 2.

Для указания чисел специального типа используйте следующие возможности:

Целое число – NUMBER(p);

Число с фиксированной точкой – NUMBER(p,s)

Число с плавающей точкой - NUMBER

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

Исходные данные

Формат запоминания

Сохраняются так

7,456,123.89

NUMBER

7456123.89

7,456,123.89

NUMBER (9)

7456124

7,456,123.89

NUMBER (9,2)

7456123.89

7,456,123.89

NUMBER (9,1)

7456123.9

7,456,123.89

NUMBER (6)

(не допустимо, так как превышена точность)

7,456,123.89

NUMBER (7, -2)

7456100

  1.  Использование типа данных DATE

Используйте тип данных DATE для запоминания даты и времени. Тип DATE запоминает столетие, год, месяц, день, часы, минуты и секунды.

Oracle использует свой внутренний формат для хранения дат. Данные типа даты запоминаются в полях фиксированной длины в 7 байт, каждый байт используется для хранения столетия, года, месяца, дня, часа, минуты и секунды соответственно.

При вводе и выводе даты стандартным форматом даты по умолчанию является DD-MON-YY. Например:

'13-NOV-92'

Для изменения этого формата по умолчанию на другой используйте параметр NLS_DATE_FORMAT. Для изменения формата по умолчанию даты на период сеанса работы используйте предложение ALTER SESSION. Для ввода даты, которая отличается от текущего формата по умолчанию воспользуйтесь функцией TO_DATE с соответствующей маской формата, например:

TO_DATE ('November 13, 1992', 'MONTH DD, YYYY')

Если используется формат DD-MON-YY, то YY указывает на год в 20-м столетии (например, 31-DEC-92 является датой December 31, 1992). Если необходимо представить год с указанием столетия, то используйте соответствующую маску формата, например, как это показано на примере выше.

Время запоминается в формате 24 часов: #HH:MM:SS. По умолчанию время в поле даты равно 12:00:00 A.M. если временная компонента даты не была указана. Если вводится только время, то дата по умолчанию предполагается равной первому дню текущего месяца. Для ввода только времени используйте функцию TO_DATE с маской формата, указывающей на присутствии только времени, например::

INSERT INTO EventTime (name, EvTime) VALUES

    ('START',TO_DATE('10:56',' HH:MI'));

Стандарт SQL предполагает еще одну форму задания литерала типа даты (то есть собственно даты без времени), который также поддерживается в Oracle. Этот формат следующий: 

DATE 'YYYY-MM-DD'

Где:

DATE – ключевое слово

YYYY-MM-DDдата в формате:

YYYY – четыре цифры года

ММ  – две цифры месяца

DD  – две цифры дня

-    –  символ «минус»

Примеры: DATE '1968-01-17', DATE '2005-07-23'

Арифметические действия с датами

Вы можете прибавлять и вычитать числа к/из даты и отнимать даты от дат. Oracle интепретирует числа в арифметических выражения с датой как количество дней. Например, SYSDATE + 1 дает завтрашнюю дату, а SYSDATE - 7 – дату неделю раньше. Выражение  SYSDATE + (10/1440) дает дату и время спустя 10 минут от текущей датф и времени. Вычитание из столбца HIREDATE таблицы TEACHER значения функции SYSDATE дает количество дней, прошедших с момента поступления преподавателя на работу. Значения типа DATE нельзя умножать и делить.

Oracle предоставляет ряд функций для оперирования с датами, например, функция ADD_MONTHS позволяет добавлять итли вычитать месяцы из даты. Дополнительную информацию о функция манипулирования с датами вы можете найти в Лаб. 5.

Так как дата содержит также и время, результаты вычисления операций над датами дают дробные значения. Дробь означает часть дня, например, 1.5 дней – это 36 часов.

  1.  Типы данных ANSI/ISO

Вы можете определять столбцы с типами данных ANSI/ISO datatypes. В этом случае Oracle конвертирует эти типы в типы данных Oracle datatypes

Преобразование типов данных ANSI в типы данных Oracle приведено в таблице ниже. Типы данных ANSI/ISO NUMERIC, DECIMAL и DEC могут специфицировать только числа с фиксированной запятой. Для этих типов по умолчанию маштаб (s) принимается равным 0.

Типы данных ANSI SQL

Типы данных Oracle

CHARACTER(n), CHAR(n)

CHAR(n)

NUMERIC(p,s), DECIMAL(p,s), DEC(p,s)

NUMBER(p,s)

INTEGER, INT, SMALLINT

NUMBER(38)

FLOAT (p)

FLOAT(p)

REAL

FLOAT(63)

DOUBLE PRECISION

FLOAT(126)

CHARACTER VARYING(n), CHAR VARYING(n)

VARCHAR2(n)

  1.  Изменение таблиц
    1.  Синтаксис

  1.  Назначение

Изменить определение таблицы. Таблицы изменяются в Oracle в следующих случаях:

  •  Чтобы добавить один или более столбцов к таблице.
  •  Чтобы добавить одно или более ограничений целостности к таблице.
  •  Для изменения определения существующего столбца (тип данных, дина, значение по умолчанию, ограничение целостности NOT NULL) .
  •  Для удаления ограничения целостности, связанного с таблицей.
  •  Для удаления столбца.
    1.  Предварительные требования 

Таблица должна размещаться в вашей собственной схеме, иначе вы должны иметь системную привилегию ALTER ANY TABLE. Для некоторых операций также нужна привилегия CREATE ANY INDEX.

Для создания ограничений целостности UNIQUE или PRIMARY KEY вы должны иметь привилегии, необходимые для создания индекса таблицы. Эти привилегии необходимы в связи с тем, что Oracle создает индекс индексы по столбцам, которые имеют ограничения unique или primary key в той схеме, где расположена таблица.

  1.  Ключевые слова и параметры

В таблице ниже описываются фразы, которые имеют специальный смысл для предложения ALTER TABLE. Для ознакомления с описанием других фраз см. раздел «Создание таблицы».

schema 

Схема, содержащая таблицу. Если schema опускается, Oracle предполагает, что таблица располагается в вашей схеме.

table 

Имя изменяемой таблицы.

ADD 

relational _properties 

Добавляет столбец или ограничение целостности. Если добавляется столбец, то для него устанавливается значение NULL для всех строк таблицы. Для описание ключевых слов и параметров см. раздел «Создание таблицы».

Если вы ранее создали виртуальную таблицу (о виртуальных таблицах см. лабораторную работу 8) с запросом вида "SELECT *" для выбора всех столбцов из таблицы table, то после добавления нового столбца, Oracle не добавит автоматически столбец в такую виртуальную таблицу. Для добавления нового столбца в эту виртуальную таблицу повторно создайте ее с помощью предложения CREATE VIEW с использованием фразы OR REPLACE .

Нельзя добавить столбец с ограничением NOT NULL, если таблица table имеет строки.

column_constraint

Добавляет или удаляет ограничение NOT NULL в/из существующего столбца. Эту фразу нельзя использовать для изменения других ограничений целостности с помощью ALTER TABLE. См. Лаб2 для ознакомления с ограничениями целостности.

table_constraint

Добавляет или изменяет ограничения целостности таблицы.

MODIFY 

modify_column_options

Модифицирует определение существующего столбца. Если вы опускаете любую из составляющих определения столбца (тип данных, значение по умолчанию, ограничение столбца), то она остается без изменения.

  •  Вы можете изменить CHAR на VARCHAR2 (или VARCHAR) и VARCHAR2 (или VARCHAR) на CHAR только если столбец содержит NULL во всех строках или если при такой модификации не происходит изменение размера столбца.
  •  Вы можете изменить тип любого столбца или уменьшить размер столбца, если столбец содержит значения NULL для всех строк.
  •  Вы всегда можете увеличить размер строковых столбцов или точность числовых столбцов не зависимо от того, имеются ли значения такого столбца в строках таблицы.

column

Имя добавляемого или модифицируемого столбца.

Единственным типом ограничения целостности, которое вы можете добавить к существующему столбцу с помощью фразы MODIFY с использованием синтаксиса ограничения целостности столбца, является ограничение NOT NULL, и только если столбец содержит значения NULL. Для определения ограничений целостности других типов (UNIQUE, PRIMARY KEY, референциальная целостность и CHECK) к существующим столбцам, используйте фразу ADD в синтаксисе ограничения целостности таблицы.

datatype

Указывает новый тип данных существующего столбца.

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

DEFAULT

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

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

drop_constraint_clause

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

PRIMARY KEY удаляет ограничение PRIMARY KEY таблицы

UNIQUE удаляет ограничение UNIQUE для указанных столбцов

CONSTRAINT удаляет ограничение целостности с указанным именем

CASCADE удаляет все другие ограничения целостности, которые зависят

 от удаляемого ограничения

Вы не можете удалить ограничения UNIQUE или PRIMARY KEY, которые являются частью референциального ограничения целостности без удаления внешнего ключа. Для удаления ключа, на который делается ссылка, и внешнего ключа используйте фразу CASCADE. Если вы не воспользуйтесь фразой CASCADE, Oracle не удалит ограничение PRIMARY KEY или UNIQUE для того столбца, на который делается ссылка из внешнего ключа.

drop_column_clause 

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

SET UNUSED

Отмечает один или несколько столбцов как не используемые. При этом столбцы реально не удаляются и команда выполняется намного быстрее по сравнению с использованием фразы DROP.

Не используемые столбцы трактуются как удаленные, хотя их данные остаются в строках таблицы. После отметки столбцов в качестве не используемых к ним нельзя будет получить доступ. Запросы типа "SELECT *" не будут отыскивать данных из не используемых столбцов. Кроме того, имена и типы столбцов, отмеченных как не используемые, не будут воспроизводиться по команде DESCRIBE, и вы можете добавлять к таблице столбцы с именами не используемых столбцов.

DROP

Удаляет описание столбца и связанные с ним данные из всех строк таблицы. Если вы явно указали удалить конкретный столбец, то также будут удалены все те столбцы, которые были отмечены как не используемые.

Когда удаляются данные столбца:

  •  Удаляются все индексы, определенные на нем.
  •  Удаляются все ограничения целостности, ссылающиеся на этот столбец.

Примечание: Если ограничение целостности также ссылается на столбец, который не удаляется, Oracle возвращает ошибку и не удаляет указанный столбец, если не указана фраза CASCADE CONSTRAINTS. Если эта фраза указана, Oracle удаляет все ограничения, ссылающиеся на удаляемый столбец.

DROP UNUSED COLUMNS

Удаляет из таблицы все те столбцы, которые отмечены как не используемые. Используйте эту фразу, если хотите освободить память диска. Если таблица не содержит таких столбцов, то предложение завершает работу без какого-либо сообщения об ошибке.

column

Указывается один или несколько столбцов, которые должны быть  либо отмечены как не используемые, либо удалены. Используйте клюбчевое слово COLUMN только если указывается один столбец. Если указывается список столбцов, то он не должен содержать дубликатов.

CASCADE CONSTRAINTS

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

INVALIDATE

Примечание: В текущей версии Oracle выполняет эту фразу не зависимо от того, указано ли ключевое слово INVALIDATE.

Oracle делает не действительными все зависимые объекты, такие как виртуальные таблицы, триггеры, хранимые процедуры и функции. Эта процедура является рекурсивной. Поэтому становятся не действительными все зависимые непосредственно и опосредственно объекты.

Объект, который стал не действительным в результате этого предложения, автоматически становится действительным при следующем обращении к нему. В этот момент вы должны будете исправить все возникшие в нем ошибки, чтобы иметь возможность последующей работы с ним..

DROP COLUMNS CONTINUE

Продолжает операцию удаления столбца с той точки, в которой она была прервана.

При изменении определения столбца вы можете только увеличить размер существующего столбца, если таблица не содержит строк. Вы также можете уменьшить размер столбца, если таблица пустая. Для столбцов типа CHAR, увеличение размера столбца может потребовать слишком много времени, особенно если таблица содержит много строк. Это обусловлено тем, что значения типа CHAR должны быть расширены пробелами в конце, чтобы удовлетворить требования нового размера..

Если вы изменяете тип данных (например, с VARCHAR2 на CHAR), то данные в столбце не изменяются. Однако, длина значений новых столбцов CHAR может быть изменена в связи с добавлением пробелов в конце.

Изменение таблицы имеет следующие последствия:

Если новый столбец добавляется, то его значения первоначально становятся NULL. Вы можете добавить столбец с ограничением NOT NULL, если таблица еще не содержит сток.

Если виртуальная таблица или программа PL/SQL зависит от базовой таблицы, то изменения в базовой таблице могут привести к тому, что зависимый от нее объект становится не действительным.

  1.  Удаление таблиц 
    1.  Синтаксис

  1.  Назначение 

Удаление таблицы и всех содержащихся в ней данных.

  1.  Предварительные требования 

Таблица должна находиться в вашей схеме, иначе вы должны иметь системную привилегию DROP ANY TABLE.

  1.  Ключевые слова и параметры 

schema

Схема, содержащая таблицу. Если schema отсутствует, Oracle предполагает, что таблица находится в вашей схеме.

table

Имя удаляемой таблицы. Oracle автоматически выполняет следующие действия:

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

CASCADE CONSTRAINTS

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

  1.  Задание
    1.  Создание таблицы

Создайте следующие таблицы

Имя таблицы

Имя столбца

Тип данных столбца

Длина

(или точность)

Масштаб

FACULTY

FacNo

integer

Name

char

20

Building

char

5

DEPARTMENT

DepNo

integer

FacNo

integer

Name

varchar2

50

Head

varchar2

50

Building

number

2

Fund

number

7

2

TEACHER

TchNo

integer

DepNo

integer

Name

varchar2

50

Post

varchar2

20

Tel

char

7

Hiredate

date

SGROUP

GrpNo

integer

DepNo

integer

Course

char

1

Num

char

3

Quantity

number

2

Curator

integer

SUBJECT

SbjNo

integer

Name

varchar2

50

ROOM

RomNo

integer

Num

number

4

Seats

number

3

LECTURE

TchNo

integer

GrpNo

integer

SbjNo

integer

RomNo

integer

Type

varchar2

25

Day

char

10

week

number

1

  1.  Изменение таблицы

Произведите следующие изменения в созданных таблицах

Имя таблицы

Имя столбца

Тип данных столбца

Длина

(или точность)

Масштаб

Действие

FACULTY    

Name

varchar2

50

изменение типа и длины

Dean

varchar2

50

добавление нового столбца

Fund

number

7

2

добавление нового столбца

DEPARTMENT

Building

char

5

изменение типа и длины

TEACHER

Salary

number

6

2

добавление нового столбца

Commission

number

6

2

добавление нового столбца

SGROUP

Course

number

1

изменение типа

Num

number

3

изменение типа

Rating

number

3

добавление нового столбца

ROOM

Floor

number

2

добавление нового столбца

Building

char

5

добавление нового столбца

LECTURE

Lesson

number

1

добавление нового столбца

Day

char

3

изменение типа

  1.  Удаление таблицы

Удалите созданные таблицы

  1.  Контрольные вопросы

Дайте ответы на следующие вопросы:

  1.  Какая системная привилегия необходима пользователю, чтобы создать таблицу?
  2.  Какие основные типы данных Oracle вы знаете?
  3.  Как поступает Oracle с типами данных ANSI?
  4.  Как Oracle сравнивает данные типа CHAR и VARCHAR2 ?
  5.  Что такое точность и масштаб в представлении числовых данных?
  6.  Перечислите основные правила работы с типом данных DATE.
  7.  Что позволяет сделать команда ALTER TABLE.
  8.  Можно ли в таблицу добавить столбец с ограничением NOT NULL?
  9.  Какие существуют правила изменения типов CHAR на VARCHAR2 и наоборот при изменении описания таблицы?
  10.  Какие варианты удаления столбца вы знаете?
  11.  Что происходит с объектами, ссылающиеся на таблицу, которую вы удалили?
  12.  Приложение А. Правила именования объектов базы данных

Для именования объектов базы данных следует пользоваться следующими правилами:

  1.  Длина имени 1-30 символов за исключением имен баз данных, которые ограничены 8 символами.
  2.  Имя не может содержать кавычки.
  3.  Имя не чувствительно к регистру.
  4.  Имя должно начинаться буквой, если оно не заключено в двойные кавычки.
  5.  Имя может содержать только алфавитно-цифровые символы и символы _, $, #. Oracle настоятельно не рекомендует использовать символы $ и #.
  6.  Имя не может содержать зарезервированных слов Oracle.
  7.  Не используйте слово DUAL в качестве имени объекта. DUAL – имя фиктивной таблицы.
  8.  Oracle имеет в свое составе  ключевые слова, которые имеют специальное значение. Так как такие слова не являются зарезервированными, их можно использовать в качестве имен объектов базы данных. Однако использование таких слов в качестве имен приводит к тому, что предложения SQL становится тяжело воспринимать.
  9.  В пределах одного пространства имен (например, таблицы) ни какие два объекта не могут быть одинаково поименованы.
  10.  Столбцы в одной таблице не могут быть одинаково поименованы, но в различных таблицах – могут.
  11.  Имя может быть заключено в двойные кавычки. Такие имена могут содержать любую комбинацию символов, включая пробелы, с нарушением правил 3 – 7 данного списка. Эти исключения сделаны для совместимости с другими платформами, однако Oracle рекомендует не нарушать правила 3 – 7.
    Если вы дали объекту имя, заключенное в двойные кавычки, то вы должны использовать его в двойных кавычках везде, где производится ссылка на такой объект. Заключение имени в двойные кавычки дает возможность:
  •  использовать пробелы,
  •  быть зависимым от регистра,
  •  начинаться с любого символа,
  •  содержать символы, отличающиеся от алфавитно-цифровых и _, $, #,
  •  являться зарезервированым словом.

PAGE  10