В тази статия ще говорим за CREATE TABLE
команда. За да бъдем по-точни, ще се съсредоточим върху това как да създадем таблица в Oracle с първичен и външен ключ, както и без колони с нула и дата, разгледайте отблизо как да създадете нова таблица на базата на съществуващата , и още. Също така ще прегледаме предимствата и предимствата на използването на dbForge Studio за Oracle при работа с таблици.
Съдържание
- Синтаксис на израза CREATE TABLE на Oracle
- Пример за СЪЗДАВАНЕ НА ТАБЛИЦА
- СЪЗДАВАНЕ НА ТАБЛИЦА с ограничение ПЪРВЕН КЛЮЧ
- СЪЗДАВАНЕ НА ТАБЛИЦА с ВЪНШЕН КЛЮЧ
- СЪЗДАВАЙТЕ ТАБЛИЦА с колона НЕ NULL
- СЪЗДАВАЙТЕ ТАБЛИЦА с колона за дата
- Алтернатива на Oracle на SQL СЪЗДАВАНЕ НА ТАБЛИЦА АКО НЕ СЪЩЕСТВУВА
- Създайте нова таблица от друга таблица, като използвате CREATE TABLE AS SELECT
- СЪЗДАВАНЕ НА ТАБЛИЦА от SELECT в PL/SQL
- Как да създадете и вмъкнете данни във временна таблица
- СЪЗДАЙТЕ ТАБЛИЦА на мигване с помощта на dbForge за Oracle
- Заключение
Създаването на таблици в Oracle е един от начините за подреждане на данни, така че е изключително важно да научите колкото е възможно повече за CREATE TABLE
команда. Има няколко различни начина за създаване на таблица в Oracle и ние ще ги разгледаме допълнително в това ръководство.
Моля, имайте предвид, че трябва да имате системното право CREATE TABLE, за да създадете нова таблица. Ако искате да създадете таблица в схема на друг потребител, трябва да имате системното право CREATE ANY TABLE. В случай, че сте собственик на таблицата, трябва да имате системните привилегии UNLIMITED TABLESPACE или квотата за пространството за таблици, което таблицата съдържа.
Освен това трябва да имате привилегията EXECUTE за обект или системната привилегия EXECUTE ANY TYPE, за да създадете таблица с обекти или релационна таблица, която съдържа колона с тип обект, ако искате да имате достъп до всички типове, които са посочени от таблицата.
Примерите в тази статия се отнасят до версията на Oracle 19c, но методите са еднакви за всички използвани версии на Oracle (включително Oracle 10g, 11g, 12c и т.н.).
Синтаксис на израза CREATE TABLE на Oracle
Нека започнем с основите. За да създадете нова таблица в база данни на Oracle, CREATE TABLE
изявление може да се използва. CREATE TABLE
синтаксисът в Oracle е както следва:
CREATE TABLE schema_name.table_name (
column_1 data_type column_constraint,
column_2 data_type column_constraint,
...
table_constraint
);
Нека разгледаме по-отблизо предоставения синтаксис:
schema_name.table_name
:имената на таблицата и схемата, към която принадлежи новата таблица.column_1
иcolumn_2 data_type column_constraints
:заместители за имената на колоните.data_type
:NUMBER, VARCHAR и др.column_constraint
:NOT NULL, първичен ключ, проверка и т.н.table_constraint
:ограничения на таблицата (първичен ключ, външен ключ, проверка).
Ще намерите CREATE TABLE
на Oracle пример за синтаксис по-нататък в тази статия.
Забележка :
Освен да научите как да създавате таблица в Oracle, може също да пожелаете да задълбочите знанията си за Изявление на Oracle ALTER TABLE .
Пример за СЪЗДАВАНЕ НА ТАБЛИЦА
Винаги е по-добре да се учиш от практиката. Затова нека разгледаме CREATE TABLE
на Oracle пример:
Следният пример показва как да създадете таблица с три колони с име служители :
CREATE TABLE employees
( employee_id number(10) NOT NULL,
employee_name varchar2(50) NOT NULL,
city varchar2(50)
);
- Колона 1 се казва employee_id и има числов тип данни (максимум 10 цифри дължина). Не може да съдържа нулеви стойности.
- Колона 2 се казва име_клиент и има тип данни varchar2 (максимална дължина 50 знака) и не може да съдържа нулеви стойности.
- Колона 3 се казва град и има тип данни varchar2. За разлика от предишните две, тази колона може да съдържа нулеви стойности.
СЪЗДАВАНЕ НА ТАБЛИЦА с ограничение ПЪРВЕН КЛЮЧ
Сега нека видим как да създадем таблица в Oracle с първичен ключ. За да дефинирате първичен ключ за таблицата, можете да използвате нашата предварително създадена таблица Служители , редактирайте Oracle SQL CREATE TABLE
изявление и дефинирайте employee_id като първичен ключ:
CREATE TABLE employees
( employee_id number(10) NOT NULL,
employee_name varchar2(50) NOT NULL,
city varchar2(50),
CONSTRAINT employees_pk PRIMARY KEY (employee_id)
);
PRIMARY KEY
клаузата позволява да се посочи колона като първичен ключ. Можете да използвате синтаксиса на първичния ключ, за да идентифицирате всеки уникален ред в таблицата. За разлика от други бази данни, Oracle позволява на таблицата да включва само един първичен ключ и всяко поле на първичния ключ трябва да съдържа стойности, различни от NULL, за да може таблицата да се счита за валидна. В примера по-горе ние дефинираме employee_id колона като Колона с първичен ключ .
СЪЗДАВАНЕ НА ТАБЛИЦА с ВЪНШЕН КЛЮЧ
Нека да разгледаме синтаксиса за CREATE TABLE
на Oracle изявление FOREIGN
ключ. Може да се дефинира както на ниво колона, така и на ниво таблица:
CREATE TABLE table_name
(
col1 datatype [ NULL | NOT NULL ],
col2 datatype [ NULL | NOT NULL ],
...
col_n datatype [ NULL | NOT NULL ]
constraint <name> FOREIGN KEY (col1,col2) REFERENCES table(col1,col2)
) tablespace <tablepace name>
CREATE TABLE table_name
(
col1 datatype [ NULL | NOT NULL ] constraint <name> primary key
,
col2 datatype [ NULL | NOT NULL ],
...
col_n datatype [ NULL | NOT NULL ]
) tablespace <tablepace name>;
CREATE TABLE dept
( dept_id number(10) NOT NULL,
dept_name varchar2(50) NOT NULL,
CONSTRAINT dept_pk PRIMARY KEY (dept_id)
);
CREATE TABLE emp
( emp_no number(10) NOT NULL,
emp_name varchar2(50) NOT NULL,
dept_id number(10),
salary number(6),
CONSTRAINT emp_pk PRIMARY KEY (emp_no),
CONSTRAINT dept_fk
FOREIGN KEY (dept_id)
REFERENCES dept(dept_id) );
В този синтаксис:
- Колона 1 е обозначен като
emp_no
, и е форматиран като число, което означава, че не може да включва никакви нулеви стойности. - Колона 2 е озаглавен
emp_name
, който е изграден като varchar2(50) и не може да включва никакви нулеви стойности. - Колона 3 се нарича
dept_id
и има числов тип данни. - Колона 4 се нарича
salary
и също е форматирана като числова колона. - Ограничение на първичен ключ на ниво таблица
emp_pk
е дефиниран на ключа (emp_no
). - Ограничения за външен ключ на ниво таблица
dept_fk
която препраща таблицата deptdept_id
.
СЪЗДАВАНЕ НА ТАБЛИЦА с колона NOT NULL
Ако искате да посочите, че колоната не може да бъде празна и трябва да съдържа някаква стойност, можете да я дефинирате като NOT NULL. Намерете синтаксиса за CREATE TABLE
команда с колоната NOT NULL в Oracle по-долу:
CREATE TABLE employees_bdays
(
emp_name VARCHAR(30),
bday DATE
emp_id VARCHAR(15) NOT NULL
);
Както можете да видите, emp_id предполага въвеждане на стойност за всеки ред от данни, тъй като НЕ е NULL.
СЪЗДАВАНЕ НА ТАБЛИЦА с колона за дата
Ако трябва да създадете таблица с колоната за дата в Oracle, следният синтаксис може да ви бъде полезен:
CREATE TABLE employees_bdays (
bday DATE
);
За да вмъкнете ефективно дата в колоната, имате нужда от to_date функция, която приема низ от знаци, съдържащ датата, както и друг символен низ, който го инструктира как да интерпретира получената дата.
to_date('01 December 2021','DD Month YYYY')
to_date('01/12/2021','DD/MM/YYYY')
Алтернатива на Oracle на SQL СЪЗДАВАНЕ НА ТАБЛИЦА АКО НЕ СЪЩЕСТВУВА
Тези потребители, които са свикнали с много полезен SQL CREATE TABLE IF NOT EXISTS
команда, може да бъдете разочаровани, тъй като няма такова изявление в Oracle. Но ако все пак трябва да определите дали таблица вече съществува, преди да я създадете в Oracle, по-долу ще намерите алтернативни решения на този проблем.
Ако получите грешка (ORA-00955:името вече се използва от съществуващ обект), докато се опитвате да създадете таблица, това може да послужи като индикатор, че такава таблица вече е там.
Създайте нова таблица от друга таблица, като използвате CREATE TABLE AS SELECT
Понякога трябва да копирате данни от една таблица и да ги вмъкнете в друга. Доста лесно е да създадете таблица като друга таблица в Oracle, плюс това е много полезно. Спестявате време и усилия, ако искате да създадете таблица със същата структура. Освен това опростява процеса на тестване.
За да видите как да създадете таблица от друга таблица в Oracle, вижте скрипта по-долу:
CREATE TABLE table_name AS (
SELECT select_query
);
Нарича се още CREATE TABLE AS SELECT (CTAS).
Можете да въведете име_на_таблица за вашата нова таблица или използвайте SELECT
запитване, за да го копирате. Също така можете да въведете SELECT * FROM
стара_таблица ако трябва да копирате всички данни в новата таблица. Ако трябва да ограничите стойностите, които да бъдат копирани, WHERE
клаузата ще бъде полезна за вас.
СЪЗДАВАНЕ НА ТАБЛИЦА от SELECT в PL/SQL
В Oracle можете също да създадете една таблица от друга, като въведете SELECT
оператор в края на CREATE TABLE
изявление. В този случай всички записи от старата таблица ще бъдат копирани в новата. Синтаксисът на CREATE TABLE
на Oracle от SELECT
е както следва:
CREATE TABLE new_table
AS (SELECT * FROM old_table);
Както можете да видите, създаване на PL/SQL таблица от SELECT
командата е много полезна. Имайте предвид, че можете също да създадете временна таблица от SELECT
.
Как да създадете и вмъкнете данни във временна таблица
Временните таблици се използват в Oracle за съхраняване на данните, които принадлежат на една сесия или една транзакция.
Временната таблица на ORACLE е DDL обект с всички ограничения.
И така, как да създадете временна таблица в Oracle? Можете да използвате оператора CREATE GLOBAL TEMPORARY TABLE, за да създадете временна таблица. За да дефинирате дали данните в таблицата са специфични за транзакцията (по подразбиране) или специфични за сесията, използвайте клаузата ON COMMIT.
Синтаксисът за специфичните за транзакцията данни е както следва:
CREATE GLOBAL TEMPORARY TABLE admin_work_area
(startdate DATE,
enddate DATE,
operation CHAR(20))
ON COMMIT DELETE ROWS;
СЪЗДАВАЙТЕ ТАБЛИЦА с намигване с помощта на dbForge за Oracle
Времето винаги е било един от най-ценните ресурси. Поради това може да намерите използването на подходяща IDE за полезно по отношение на спестяването на вашето време. Едно от най-добрите решения е dbForge Studio за Oracle. Това е универсален инструмент, който може да бъде полезен за разработване, администриране и управление на бази данни на Oracle. Този ефективен GUI клиент е чудесен за администратори на база данни, разработчици на бази данни, софтуерни инженери и анализатори. dbForge Studio за Oracle позволява синхронизиране на данни между няколко сървъра на Oracle и улеснява автоматизацията на процесите на разработване на бази данни.
Когато отворите IDE за първи път, ще видите Свойства на връзката с база данни прозорец. За да го отворите ръчно, изберете База данни и щракнете върху Нова връзка .
След това попълнете съответните полета и натиснете Тестиране на връзката .
Ако всичко е конфигурирано правилно, ще видите Съобщението за успешно свързано това ще изглежда някак така:
След като се свържете с вашия Oracle сървър, изберете потребителя, за когото искате да създадете нова таблица. Нашата скорошна публикация в блога за това как да създадете нов потребител в Oracle може да ви бъде полезна на тази стъпка.
Първата стъпка към създаването на нова таблица е да щракнете с десния бутон върху необходимата схема. Посочете Нов обект и щракнете върху първата опция:Таблица .
1. В Име текстово поле на Редактор на таблици , въведете име на таблица. В примера по-долу създаваме таблица, озаглавена служители .
2. В решетката по-долу въведете имената за бъдещите колони, изберете типа данни и дали те трябва да НЕ СА NULL.
3. Свойства на колона ще се покаже от дясната страна на Редактор на таблици .
4. Ще видите, че всички действия, които извършвате в Редактор на таблици , се отразяват в SQL заявката в долната част на прозореца.
След като свойствата на таблицата са конфигурирани, щракнете върху Прилагане на промените и това е!
Заключение
Създаването на таблици е една от най-често срещаните задачи при работа с бази данни на Oracle, тъй като помага за организирането на данни. В нашето ръководство сме предложили подробно описание как да създадете таблица в Oracle, използвайки 10 различни начина. Можете да използвате оператора на Oracle SQL CREATE TABLE и да изпълните заявката ръчно или да използвате подходяща IDE за автоматизиране на процеса. В този случай, dbForge Studio за Oracle е най-добрият избор.
Полезни връзки
- Създайте база данни в Oracle
- Преименувайте таблицата в Oracle
- PL/SQL формат