Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Comando Oracle CREATE TABLE em PL/SQL com 10 exemplos


Neste artigo, vamos falar sobre o CREATE TABLE comando. Para ser mais preciso, vamos nos concentrar em como criar uma tabela no Oracle com uma chave primária e estrangeira, bem como colunas não nulas e de data, dê uma olhada em como criar uma nova tabela com base na existente , e mais. Além disso, revisaremos as vantagens e benefícios de usar o dbForge Studio for Oracle ao trabalhar com tabelas.

Conteúdo
  • Sintaxe da instrução CREATE TABLE do Oracle
    • Exemplo de CRIAR TABELA
  • CREATE TABLE com restrição PRIMARY KEY
  • CRIAR TABELA com FOREIGN KEY
  • CREATE TABLE com a coluna NOT NULL
  • CREATE TABLE com uma coluna de data
  • Alternativa Oracle para SQL CREATE TABLE IF NOT EXISTS
  • Crie uma nova tabela a partir de outra tabela usando CREATE TABLE AS SELECT
  • CREATE TABLE a partir de SELECT em PL/SQL
  • Como criar e inserir dados em uma tabela temporária
  • CREATE TABLE em um wink usando dbForge for Oracle
  • Conclusão

Criar tabelas no Oracle é uma das maneiras de organizar os dados, por isso é fundamental aprender o máximo possível sobre o CREATE TABLE comando. Existem várias maneiras diferentes de criar uma tabela no Oracle e as abordaremos mais detalhadamente neste guia.

Observe que você deve ter o privilégio de sistema CREATE TABLE para criar uma nova tabela. Se você deseja criar uma tabela no esquema de outro usuário, você deve ter o privilégio de sistema CREATE ANY TABLE. Caso você seja o proprietário da tabela, você deve ter o privilégio de sistema UNLIMITED TABLESPACE ou a cota para o tablespace que a tabela contém.

Além disso, você deve ter o privilégio de objeto EXECUTE ou o privilégio de sistema EXECUTE ANY TYPE para criar uma tabela de objetos ou uma tabela relacional que contenha uma coluna de tipo de objeto se desejar ter acesso a todos os tipos referenciados pela tabela.

Os exemplos neste artigo estão relacionados à versão Oracle 19c, mas os métodos são os mesmos para todas as versões Oracle em uso (incluindo Oracle 10g, 11g, 12c etc.).

Sintaxe da instrução CREATE TABLE do Oracle


Vamos começar com o básico. Para criar uma nova tabela em um banco de dados Oracle, o CREATE TABLE declaração pode ser usada. O CREATE TABLE sintaxe no Oracle é a seguinte:
CREATE TABLE schema_name.table_name (
    column_1 data_type column_constraint,
    column_2 data_type column_constraint,
    ...
    table_constraint
 );

Vamos dar uma olhada mais de perto na sintaxe fornecida:
  1. schema_name.table_name :nomes da tabela e esquema ao qual a nova tabela pertence.
  2. column_1 e column_2 data_type column_constraints :espaços reservados para os nomes das colunas.
  3. data_type :NUMBER, VARCHAR, etc.
  4. column_constraint :NOT NULL, chave primária, cheque, etc.
  5. table_constraint :restrições de tabela (chave primária, chave estrangeira, verificação).

Você encontrará o Oracle CREATE TABLE exemplo de sintaxe mais adiante neste artigo.

Observação :
Além de aprender como criar uma tabela no Oracle, você também pode aprofundar seu conhecimento sobre o Instrução ALTER TABLE do Oracle .

Exemplo de CRIAR TABELA


É sempre melhor aprender com a prática. Portanto, vamos dar uma olhada no Oracle CREATE TABLE exemplo:

O exemplo a seguir mostra como criar uma tabela de três colunas chamada employees :
CREATE TABLE employees
( employee_id number(10) NOT NULL,
  employee_name varchar2(50) NOT NULL,
  city varchar2(50)
);
  • Coluna 1 chama-se employee_id e tem um tipo de dados de número (máximo de 10 dígitos de comprimento). Ele não pode conter valores nulos.
  • Coluna 2 chama-se customer_name e tem um tipo de dados varchar2 (máximo de 50 caracteres) e também não pode conter valores nulos.
  • Coluna 3 chama-se cidade e tem um tipo de dados varchar2. Ao contrário das duas anteriores, esta coluna pode conter valores nulos.

CREATE TABLE com restrição PRIMARY KEY


Agora, vamos ver como criar uma tabela no Oracle com uma chave primária. Para definir uma chave primária para a tabela, você pode usar nossa tabela criada anteriormente Funcionários , edite o Oracle SQL CREATE TABLE declaração e defina o employee_id como chave primária:
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)
);

A PRIMARY KEY cláusula permite especificar uma coluna como a de chave primária. Você pode usar a sintaxe de chave primária para identificar cada linha exclusiva na tabela. Ao contrário de outros bancos de dados, o Oracle permite que uma tabela inclua apenas uma chave primária e cada campo da chave primária deve conter valores diferentes de NULL para que a tabela seja considerada válida. No exemplo acima, definimos o employee_id coluna como a Coluna de chave primária .

CRIAR TABELA com FOREIGN KEY


Vamos dar uma olhada na sintaxe do Oracle CREATE TABLE declaração FOREIGN chave. Ele pode ser definido em nível de coluna ou nível de tabela:
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) );

Nesta sintaxe:
  • Coluna 1 está rotulado como emp_no , e é formatado como um número, o que significa que não pode incluir nenhum valor nulo.
  • Coluna 2 é intitulado emp_name , que é construído como varchar2(50) e não pode incluir nenhum valor nulo.
  • Coluna 3 chama-se dept_id e tem um tipo de dados numérico.
  • Coluna 4 é chamado de salary e também é formatado como uma coluna numérica.
  • Restrição de chave primária no nível da tabela emp_pk é definido na chave (emp_no ).
  • Restrições de chave estrangeira no nível da tabela dept_fk que referencia a tabela dept dept_id .

CRIAR TABELA com coluna NOT NULL


Se você quiser especificar que a coluna não pode estar vazia e deve conter algum valor, você pode defini-la como NOT NULL. Encontre a sintaxe para CREATE TABLE comando com a coluna NOT NULL no Oracle abaixo:
CREATE TABLE employees_bdays
(
emp_name VARCHAR(30),
bday DATE
emp_id VARCHAR(15) NOT NULL
);

Como você pode ver, emp_id implica inserir um valor para cada linha de dados, pois NÃO é NULL.

CREATE TABLE com uma coluna de data


Se você precisar criar uma tabela com a coluna de data no Oracle, a seguinte sintaxe pode ser útil:
CREATE TABLE employees_bdays (
bday DATE
);

Para inserir uma data na coluna com eficiência, você precisa do to_date função que aceita uma sequência de caracteres contendo a data, bem como outra sequência de caracteres instruindo-a sobre como interpretar a data recebida.
to_date('01 December 2021','DD Month YYYY')
to_date('01/12/2021','DD/MM/YYYY')

Alternativa Oracle para SQL CREATE TABLE IF NOT EXISTS


Esses usuários, que estão acostumados a um SQL muito útil CREATE TABLE IF NOT EXISTS comando, pode ficar desapontado, pois não existe tal declaração no Oracle. Mas se você ainda precisar determinar se uma tabela já existe antes de criá-la no Oracle, você encontrará soluções alternativas para esse problema abaixo.

Se você receber um erro (ORA-00955:nome já está em uso por um objeto existente) ao tentar criar uma tabela, isso pode servir como um indicador de que tal tabela já existe.

Crie uma nova tabela a partir de outra tabela usando CREATE TABLE AS SELECT


Às vezes, você precisa copiar dados de uma tabela e inseri-los em outra. É muito fácil criar uma tabela como outra tabela no Oracle, além de ser muito útil. Você economiza seu tempo e esforço se quiser criar uma tabela com a mesma estrutura. Também simplifica o processo de teste.

Para ver como criar uma tabela a partir de outra tabela no Oracle, veja o script abaixo:
CREATE TABLE table_name AS (
SELECT select_query
);

Também é conhecido como CREATE TABLE AS SELECT (CTAS).

Você pode inserir o table_name para sua nova tabela ou use o SELECT consulta para copiá-lo. Além disso, você pode inserir SELECT * FROM velha_tabela se você precisar copiar todos os dados para a nova tabela. Se você precisar restringir os valores a serem copiados, o WHERE cláusula será útil para você.

CREATE TABLE a partir de SELECT em PL/SQL


No Oracle, você também pode criar uma tabela a partir de outra digitando o SELECT instrução no final do CREATE TABLE demonstração. Nesse caso, todos os registros da tabela antiga serão copiados para a nova. A sintaxe do Oracle CREATE TABLE do SELECT é o seguinte:
CREATE TABLE new_table
  AS (SELECT * FROM old_table);

Como você pode ver, a criação de tabelas PL/SQL a partir do SELECT comando é muito útil. Observe que você também pode criar uma tabela temporária de SELECT .

Como criar e inserir dados em uma tabela temporária


As tabelas temporárias são usadas no Oracle para armazenar os dados que pertencem a uma sessão ou a uma transação.

A tabela temporária ORACLE é um objeto DDL com todas as restrições.

Então, como criar uma tabela temporária no Oracle? Você pode usar a instrução CREATE GLOBAL TEMPORARY TABLE para criar uma tabela temporária. Para definir se os dados na tabela são específicos da transação (o padrão) ou específicos da sessão, use a cláusula ON COMMIT.

A sintaxe para os dados específicos da transação é a seguinte:
CREATE GLOBAL TEMPORARY TABLE admin_work_area
        (startdate DATE,
         enddate DATE,
         operation CHAR(20))
      ON COMMIT DELETE ROWS;

CRIAR TABELA em um piscar de olhos usando dbForge para Oracle


O tempo sempre foi um dos recursos mais valiosos que existem. Portanto, você pode achar útil usar um IDE apropriado em termos de economia de tempo. Uma das melhores soluções é o dbForge Studio para Oracle. É uma ferramenta universal que pode ser usada para desenvolver, administrar e gerenciar bancos de dados Oracle. Esse cliente GUI eficiente é ótimo para DBAs, desenvolvedores de banco de dados, engenheiros de software e analistas. O dbForge Studio for Oracle permite a sincronização de dados entre vários servidores Oracle e facilita a automação dos processos de desenvolvimento de banco de dados.

Ao abrir o IDE pela primeira vez, você verá as Database Connection Properties janela. Para abri-lo manualmente, escolha Banco de dados e clique em Nova conexão .

Depois disso, preencha os campos correspondentes e clique em Testar conexão .

Se tudo estiver configurado corretamente, você verá a mensagem de conexão bem-sucedida que vai se parecer de alguma forma com isso:

Tendo conectado ao seu servidor Oracle, escolha o usuário para o qual deseja criar uma nova tabela. Nossa recente postagem no blog sobre como criar um novo usuário no Oracle pode ser útil nesta etapa.

O primeiro passo para criar uma nova tabela é clicar com o botão direito do mouse no esquema necessário. Aponte para Novo objeto e clique na primeira opção:Tabela .

1. No Nome caixa de texto do Editor de tabelas , insira um nome de tabela. No exemplo abaixo, estamos criando uma tabela intitulada employees .

2. Na grade abaixo, digite os nomes das colunas futuras, escolha o tipo de dados e se elas devem ser NOT NULL.

3. As propriedades da coluna será exibido no lado direito do Editor de tabela .

4. Você verá que todas as ações que você executa no Editor de tabela , são refletidos na consulta SQL na parte inferior da janela.

Depois que as propriedades da tabela estiverem configuradas, clique em Aplicar alterações e é isso!

Conclusão


A criação de tabelas é uma das tarefas mais comuns ao trabalhar com bancos de dados Oracle, pois ajuda a organizar os dados. Em nosso guia, oferecemos um passo a passo detalhado de como criar uma tabela no Oracle usando 10 maneiras diferentes. Você pode usar a instrução Oracle SQL CREATE TABLE e executar a consulta manualmente ou usar um IDE apropriado para automatizar o processo. Nesse caso, o dbForge Studio for Oracle é a melhor escolha.

Links úteis
  • Criar um banco de dados no Oracle
  • Renomeie a tabela no Oracle
  • Formatador PL/SQL