Введение в язык SQL

Автор работы: Пользователь скрыл имя, 16 Мая 2014 в 11:20, контрольная работа

Краткое описание

Мы с вами живем 21 веке — веке информационных технологий и данных. Нас повсюду окружает информация. Но ее бывает настолько много, что естественно ее всю мы не можем запомнить. Чтобы всю эту информацию запомнить и в случаи необходимости воспользоваться - используется компьютеры. Например все наши телекоммуникационные компании хранят информацию о своих абонентах. У многих из этих компаний количество абонентов превышает миллион. И каждый из абонентов ежедневно совершает или принимает несколько звонков. Следовательно не трудно представить о каком объеме информации идет речь. Конечно же если просто загрузить эту информацию в компьютер без определенного порядка — этим мы ничего не добьемся. И тогда нам на помощь приходит база данных.
Мы часто сталкиваемся с понятиями база данных и СУБД. Для начало уясним для себе, что база данных – это особая структура служащие для хранения информации, а СУБД (Система Управления Базами Данных) – это программный комплекс служащий для управления с базой данных. Имеется большое количество

Прикрепленные файлы: 1 файл

Введение в язык.docx

— 67.92 Кб (Скачать документ)

Имена объектов не должно быть зарезирвированными словами базы данных.

 

Изучив правила именования, которым должно придерживаться наши объекты базы даных – приступим к непосредственному созданию. Чтобы создать таблицу для этого вам необходимо, чтобы у вас были соотвествующие привелегии (*) и физическое простанство. Но, а синтаксис создания таблицы выглядит так.

 

CREATE TABLE [shema.]table_name

(column datatype [DEFAULT expr] [, …])

 

где

[shema.] – указывает, что таблица может быть созданна в любой схеме, если

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

схеме, то имя текущего вашего пользователя можно не указывать.

 

column   – имя будушего столбца

 

datatype - тип данных, который будет у столбца

 

DEFAULT expr – это выражение или константа, которая будет автоматически заполнятся если для этого столбца не будет определно значение во время вставки.

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

 

SELECT * FROM SOMEBODY.emp_table

 

Приведем пример создание таблицы

CREATE TABLE tab_new

( id integer,

cur_date date default sysdate,

ename varchar2(50)

);

 

(*) Привелегиям посвещена глава 16, там подробно все описывается. Если вы работаете под пользователем SCOTT в ORACLE-е, то все нормально - данные привилегия у него уже есть.

CREATE TABLE используя  подзапрос

 

Часто бывают случаи, что результат некоторого вывода вашего запроса – необходимо сохранить в таблицу. Конечно можно сперва создать таблицу, а затем воспользовавшись INSERT с опцией SUBQUERY вставить необходимый запрос. Но это можно сделать и одной командой создания таблицы. Синтаксис такой команды выглядит следующим образом:

 

CREATE TABLE table_name  [(column, column, ..)]

AS SUBQUERY

 

где

table_name  [(column, column, ..)] – имя создаваемой таблице, конечно этот параметр обязателен. Также вы можете указать имена столбцов для новой таблицы, но это является не обязательным параметром, так как имена столбцов могут быть взяты из подзапроса.

 

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

 

CREATE TABLE tab_emp

AS

select * from scott.emp

where deptno=20;

 

 

ALTER TABLE

 

 

И так мы с вами разобрали, как создавать таблицу. Но как показывает практика нам всегда бывает необходимо либо что-то изменить либо удалить. Разберем сейчас и эти аспекты работы с таблицами.

 

Для добавления столбца к таблице используется следующий механизм

 

ALTER TABLE table_name

ADD (column datatype [DEFAULT expr]

[,column datatype, ..])

 

 

ALTER TABLE scott.bonus

ADD sername varchar2(50);

 

 

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

 

 

ALTER TABLE table_name

MODIFY (column datatype [DEFAULT expr]

[,column datatype, ..])

 

ALTER TABLE scott.bonus

MODIFY sername number

 

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

 

ALTER TABLE table_name

DROP column  column_name

 

ALTER TABLE scott.bonus

DROP COLUMN sername

 

 

DROP TABLE

 

 

Сейчас мы с вами разберем, как можно удалить таблицу. Но прежде рассмотрим, что же при этом происходит:

 

l        При удалении тблицы – все данные и структура таблица удаляется

l        Все незафиксированные изменения  в системе фиксируется, так как  выше было отмечено, после команд DDL автоматом запускается COMMIT

l        Все индексы связанные с этой  таблицей удаляются

l        Вы не сможете выполнив команду ROLLBACK  вернуть таблицу назад

 

Синтаксис команды:

 

DROP TABLE [shema.]tablename

 

Удалим ранее созданную таблицу:

 

DROP table tab_emp

 

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

Надо отметить, что если вы будете удалять таблицу которая существует в базе (также при SELECT), но прав у вас на эту таблицу у вас нет, то бужет выходить ошибка – “Такого объекта не существует” – ORACLE это сделал в целях безопасности, чтоб хакеры перебира названия таблиц, не нашли название таблиц использующиеся вашим приложением.

 

 

 

RENAME TABLE

 

 

Допустим, что у нас есть таблица BONUS и мы хотим ее переименовать например на BONUS2 – тогда в этом случаи, так же будет использована команда DDL языка RENAME:

 

RENAME old_table_name TO new_table_name

 

Как видно все очень просто всего необходимо указать текущее имя и то имя на которое желаеете поменять.

 

RENAME bonus TO bonus2

 

 

TRUNCATE TABLE

 

Осталось еще одна DDL команда, которую мы с вами еще не разобрали – это команда TRUNCATE. При выполнении команды происходит следующее:

 

l        Удаляются все данные в таблицы

l        Освобождается физическое пространство  занимаемое этой таблицей

l        Вы не сможете выполнив команду ROLLBACK для возврата данных назад

l        Как альтернативу TRUNCATE вы можете  использовать DELETE

l        Если таблица связанна при  помощи ограничений с другими  таблицами – то над ней не  может быть совершенна операция TRUNCATE

 

Синтаксис команды очень прост, где необходимо указать только имя таблицы

 

TRUNCATE TABLE [shema.]tablename

 

TRUNCATE TABLE bonus

 

Оператор TRUNCATE применяемый при удаление данных из базу данных, позволяет меньше нагружать систему и освобождать физическое пространство занимаемое таблицей. Насчет того, что он меньше нагружает систему – это правда, но главная разница между TRUNCATE (DDL) и DELETE (DML) заключается в том, что при операции TRUNCATE процесс удаленние данных из таблицы не логируется, логируется всего лишь команда DDL TRUNCATE – понятие логирование в журнальных файлах более близко к администратором базы данных, поэтому посоветуем вам пообщаться с администратором базы данных для более глубокого понятие принципа работы TRUNCATE.

 

 


Информация о работе Введение в язык SQL