Oracle SQL

Фильтр по тегу: create table


индекс на вторичном ключе, зачем он нужен? секретные материалы архитектора СУБД

Авторский курс. SQL от новичка до профессионала. Бесплатное вводное занятие. Сертификат. Записывайся!
Прокачаю до уровня БОГ!


create table tsp(n number primary key); 
-- заполним таблицу данными
insert into tsp
select level from dual connect by level < 100001;

-- создадим вторую таблицу

create table ts(n number primary key, m number, CONSTRAINT fk_ts
    FOREIGN KEY (m)
    REFERENCES tsp(n));

для этой таблицы существует вторичный ключ от m на поле n таблицы tsp
заполним таблицу ts данными
insert into ts(n,m)
select level,mod(level,90000)+1 from dual connect by level < 1000000;

-- попытаемся удалить строки из этой таблицы
delete tsp where n > 99000

-- операция выполнялась 112 секунд
читать дальше...
добавлено: 13 мар 17 просмотры: 3187, комментарии: 5



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

Авторский курс. SQL от новичка до профессионала. Бесплатное вводное занятие. Сертификат. Записывайся!
Прокачаю до уровня БОГ!


для демонстрации создадим некоторую таблицу на основе all_objects
 create table s_obj as select * from all_objects where rownum < 5

в данном случае таблица содержит 4 записи
с помощью инструкции PL SQL заполним данную таблицу следующим образом
begin
  for i in (select * from all_objects where rownum < 21) loop 
    i.object_name := 'prefix'||i.owner; --меняем данные перед вставкой
    insert into s_obj values i;
  end loop; 
end;

commit;
проверим
select * from s_obj
SYS	ICOL$ ...
SYS	I_USER1 ...
...
SYS	prefixSYS ...
SYS	prefixSYS ...
...


подобную методику вы сможете применять в своих функциях и процедурах pl sql
добавлено: 13 мар 17 просмотры: 2762, комментарии: 0



Фрагментация, секционирование – partition. О фрагментации таблиц. Часть первая.

Фрагментация (секционирование) это
Авторский курс. SQL от новичка до профессионала. Бесплатное вводное занятие. Сертификат. Записывайся!
Прокачаю до уровня БОГ!


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

Кому и зачем это нужно? Вопрос с секционированием таблиц, тесно связан с другим важным вопросом , вопросом масштабируемости проекта.

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

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

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


Создание таблиц - краткий обзор

Авторский курс. SQL от новичка до профессионала. Бесплатное вводное занятие. Сертификат. Записывайся!
Прокачаю до уровня БОГ!


изучаем SQL группа в контакте - присоединяйтесь
Подари,продай, обменяй - множество недорогих и отличных вещей объявления вместо AVITO - ВКонтакте

Нашел вот такую статью, показалась интересной - перевел, и внес некоторые корректировки
Это некий краткий - на одну страницу, обзор с примерами на тему - создание таблиц в oracle
Чтобы пользователь мог создать таблицу он должен обладать соответствующей системной привилегией create table.
Кроме того в дисковом пространстве должно быть достаточно места для создания таблиц.
Стандартная heap таблица
Рассмотрим пример создания простой таблицы
create table t (
  a number,
  b varchar2(10)
)

Так же можно создать таблицы ограничение первичный ключ
create table orders (
  order_id number,
  order_dt date,
  cust_id  references customer
  constraint pk_orders (order_id) using index tablespace ts_idx
)


читать дальше...
добавлено: 13 июн 13 просмотры: 33138, комментарии: 1



Задача с валютами

Чалышев М.М www.orasource.ru ; резюме автора

Исходные данные
-- есть таблица в с номером валюты, датой заполнения курса, курсом валюты
-- оператор вводит курс валюты, когда он поменялся , то есть если несколько дней подряд одинаковый курс - то, в таблице будет единственное значение курса на дату изменения
-- необходимо вывести курс валюты на заданную дату , по каждой валюте
-- если на данную дату нет курса тогда выводится курс на последнюю дату, если в заданную дату курс менялся несколько раз , то надо вывести все изменения
-- Подготовим данные для примера
-- создадим таблицу с валютами
create table cratio as
(
  select 
    trunc(sysdate-dbms_random.value*10) ddate -- случайная дата отдаленная от текущего числа на случайное количество дней
  , trunc(dbms_random.value*3+1)  currency -- случайный номер валюты - идентификатор от 1 до 3
  , trunc(dbms_random.value*10) ratio  -- курс валюты от 1 до 10
     from dual
  connect by level <= 30)

читать дальше...
добавлено: 19 ноя 12 просмотры: 2875, комментарии: 7



Временные таблицы в Oracle

GLOBAL TEMPORARY

Авторский курс. SQL от новичка до профессионала. Бесплатное вводное занятие. Сертификат. Записывайся!
Прокачаю до уровня БОГ!


Что же такое временные таблицы, и зачем они нужны?
Давайте разберемся...
Временные таблицы используются в Oracle для хранения данных, которые относятся к одной сессии или одной транзакции.
Причем применение Oracle временных таблиц существенно отличается от применения временных таблиц в том же MS SQL. ORACLE временная таблица это тот же DDL обьект со всеми ограничениями , в MS SQL подобных ограничений нет.
итак подробнее
читать дальше...
добавлено: 14 окт 12 просмотры: 33084, комментарии: 0