Como criar uma tabela no oracle?

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
samea
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 12
Registrado em: Sex, 20 Fev 2009 2:42 pm
Localização: manaus - Am
Sâmea Brazão

Oi gente eu sou nova no forum e tambem sou nova no estudo de oracle
Eu na verdade não sei nada de oracle e gostaria de saber se alguém ai pode me ajudar!
Como que eu crio uma tabela no banco de dados oracle? seria isso:

Selecionar tudo

CREATE TABLE tabela(
     tabela_id (1) chave primaria
     tabela_name vachar(30) não nulo
   )
Por favor me ajudem nunca estudei oracle!!!!!!!!!!!!!!!!!!!!!!!!!!
Avatar do usuário
Porva
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 342
Registrado em: Seg, 29 Jan 2007 7:36 am
Localização: São Paulo/SP
Rafael S. Nunes
São Paulo/SP

Samea, o idéia é essa mesma

você também pode criar tabelas utilizando ferramentas visuais, como o PL/SQL Developer por exemplo, que não exigem que você monte comandos para criá-las, mas o ideal seria dar uma olhada geral em outros aspectos também, além da criação de tabelas

nesse tópico tem uma apostila bem completa, e na seção Tutorial / Apostilas existe mais documentação a respeito:


http://glufke.net/oracle/viewtopic.php?t=1962
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Tópico movido para SQL.
samea
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 12
Registrado em: Sex, 20 Fev 2009 2:42 pm
Localização: manaus - Am
Sâmea Brazão

já havia baixado essa apostila sexta feira passada, ainda estou lenda ela!
Avatar do usuário
Toad
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 253
Registrado em: Sex, 18 Nov 2005 2:14 pm
Localização: Seattle, WA
Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c

Oi Sâmea, tudo bem?
Primeiramente seja muito bem vinda ao mundo Oracle.

Faz assim, siga o conselho do Dr_Gori, leia a apostila toda, o conteúdo é ótimo, com certeza muitas dúvidas suas serão sanadas mediante esse aprendizado.

De qualquer forma, o forum está aqui e muitas pessoas ficarão felizes em te ajudar, caso você precise.

Abraços.
Avatar do usuário
Toad
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 253
Registrado em: Sex, 18 Nov 2005 2:14 pm
Localização: Seattle, WA
Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c

Perdão, o conselho do Porva.
:D
samea
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 12
Registrado em: Sex, 20 Fev 2009 2:42 pm
Localização: manaus - Am
Sâmea Brazão

Obrigada pela dica pessoal, mas alguém ai sabe como fazer da maneira que estou tentando?
Avatar do usuário
Toad
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 253
Registrado em: Sex, 18 Nov 2005 2:14 pm
Localização: Seattle, WA
Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c

Então,
Como o Porva disse, a idéia é bem essa mesma.
Como é a estrutura da tabela que você está tentando criar?

Aqui tem um monte de exemplos de criação de tabelas, com constraints, com index, vê se te ajuda.

http://www.java2s.com/Code/Oracle/Table ... -Table.htm
Avatar do usuário
Toad
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 253
Registrado em: Sex, 18 Nov 2005 2:14 pm
Localização: Seattle, WA
Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c

No exemplo que você deu, fazendo as devidas adaptações, ficaria algo mais ou menos assim:

Selecionar tudo

CREATE TABLE tabela(  id_tabela_id number(10) not null,
                         nm_tabela  varchar2(30) not null
) ;

E aí você pode criar as constraints de chave primária, de check, de chave estrangeira, chave única, essas coisas.

Segue exemplo de criação de chave primária pra essa tabela que acabamos de criar:

Selecionar tudo

ALTER TABLE tabela ADD CONSTRAINT PK_TABELA 
       PRIMARY KEY (id_tabela);
  
Lembrando que essa não é a única maneira de se criar uma tabela.
Existem várias outras maneiras que podem se adaptar melhor ao seu contexto.
samea
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 12
Registrado em: Sex, 20 Fev 2009 2:42 pm
Localização: manaus - Am
Sâmea Brazão

Acredito que a minha sintaxe esteja correta mas não esta,
quando eu rodo da o seguinte erro:

parentese direito ausente

esse é o meu codigo alguém:

Selecionar tudo

 CREATE TABLE SAMEA_SPC( SPC_ID number(1) not null,

       SPC_NOME_CLIENTE vachar2(45) not null
       SPC_ENDERECO_CLIENTE vachar(50) not null,
		   SPC_CPF number (15),
		   SPC_CGC number (15),
		   SPC_BAIRRO vachar(25) not null,
		   SPC_CEP number (8) not null,
		   SPC_TELEFONE number(8) not null,
		   SPC_DATA_VECIMENTO date, 
		   SPC_DATA_COMPRA date,
		   SPC_VALOR_DEBITO number (13) not null,
		   SPC_CODIGO_PROGRAMA number(30) not null,
		   SPC_NUM_LIGACAO number(8) not null

 

) ;
TAGS CODE colocadas pelo moderador...


pode me ajudar?
Avatar do usuário
Toad
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 253
Registrado em: Sex, 18 Nov 2005 2:14 pm
Localização: Seattle, WA
Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c

Posso, posso sim, mas posta novamente seu código por favor usando a tag [ code ] antes do código e [ /code ] (SEM ESPAÇOS nas tags) depois do código, do jeito que está não dá pra entender.

Pode ser?
samea
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 12
Registrado em: Sex, 20 Fev 2009 2:42 pm
Localização: manaus - Am
Sâmea Brazão

Eu consegui o problema agora é com insert
mas ficou assim o meu codigo

Selecionar tudo

 CREATE TABLE SAMEA_SPC( SPC_ID number(1) not null,

       SPC_NOME_CLIENTE varchar2(10) not null,
       SPC_ENDERECO_CLIENTE varchar2(50) not null,
		   SPC_CPF number (15),
		   SPC_CGC number (15),
		   SPC_BAIRRO varchar2(25) not null,
		   SPC_CEP number (8) not null,
		   SPC_TELEFONE number(8) not null,
		   SPC_DATA_VECIMENTO date, 
		   SPC_DATA_COMPRA date,
		   SPC_VALOR_DEBITO number (13) not null,
		   SPC_CODIGO_PROGRAMA number(30) not null,
		   SPC_NUM_LIGACAO number(8) not null

 

) ;

ALTER TABLE SAMEA_SPC ADD CONSTRAINT PK_TABELA
		   PRIMARY KEY (SPC_ID);
                        
alguém sabe me dizer como que eu faço pra inserir os valores de uma tabela em outra tabela?
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Qual o problema que está tendo com o INSERT?
samea
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 12
Registrado em: Sex, 20 Fev 2009 2:42 pm
Localização: manaus - Am
Sâmea Brazão

Estou tentando preencher uma tabela com os valores de outra tabela, eu tenho uma aplicação

em java que faz a consulta no banco e imprimi os dados do banco em um JTable agora eu quero

pegar esses valores e jogar dentro da tabela que eu criei no banco, o que estou tentando fazer

é preencher as colunas da tabela como eu bem pouco de pl/sql, eu não sei como colocar dados na

tabela, estou tentando com insert pra depois sim tentar jogar os dados da aplicação pro banco

eu tentei fazer assim:

insert int samea_spc (spc_id, spc_nome_cliente, spc_endereco_cliente,spc_bairro,spc_cep,spc_telefone,spc_data_vecimento,spc_data_compra,spc_valor_debito,spc_codigo_programa,spc_num_ligacao)
values('1','"samea"', '"rua 18"', '"lirio do vale II"', '00000', '00000','00000,'00000','00000','00000')

mas diz que a string entre aspas não esta finalizada adequadamente!


também queria saber como que eu faço pra isso aqui:

SQ_SAMEA_SPC.NEXTVAL funcionar eu tenho que criar alguma coisa

pra isso poder funcionar eu houve falar de um create cycle mas não sei o

que é na verdade.

vocês podem me ajudar?

e se alguém tivesse uma apostilas so com comandos mandem pra por favor

pode ser direto pro meu e-mail

sameabrazao@gmail.com
targinosilveira
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 45
Registrado em: Ter, 16 Set 2008 5:56 pm
Localização: Fortaleza - CE

Ola Samea bom dia, repondendo rapidamente a priemeira parte da sua pergunta ;-).

Olha como fica seu novo insert:

Selecionar tudo

insert into samea_spc (
		spc_id, 
		spc_nome_cliente, 		
		spc_endereco_cliente,
		spc_bairro,
		spc_cep,
		spc_telefone,
		spc_data_vecimento,
		spc_data_compra,
		spc_valor_debito,
		spc_codigo_programa,
		spc_num_ligacao)
values		(1, --Esse campo por ser um inteiro não poder ir para o banco entre aspas.
		 'samea',  --Nos campos que são string use apanas aspas simples e não simples e dentro duplas.
		 'rua 18', 
		 'lirio do vale II',
		 '00000', 
		 '00000',
		  null, --Nos campos que são data, você não põe zeros e sim null para dizer que o campo é em branco e caso ele seja not null deverá ser preenchido com alguma data valida.
		  null,
		 '00000',
		 '00000',
		 '00000') --E aqui estava faltando uma última coluna.
Já, já posto a parte da sequence ;-)
targinosilveira
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 45
Registrado em: Ter, 16 Set 2008 5:56 pm
Localização: Fortaleza - CE

Segunda parte a criação da sequence:

Samea essa é uma sequence bem simples mas que já resolve muita coisa mesmo.

Selecionar tudo

create sequence sq_t_samea_spc start with 1 increment by 1 maxvalue 9;
start with 1 --idiaca que ela iniciará do número 1
increment by --indica que ela ira incrementar mais um a cada vez que ela for executada.
maxvalue 9 --idica que ela terá um tamanho máximo de 9 posições.

Agora vou postar o seu insert como fica com o sequence:

Selecionar tudo

insert into       samea_spc (
 	          spc_id,
	          spc_nome_cliente,       
        	  spc_endereco_cliente,
	          spc_bairro,
        	  spc_cep,
	          spc_telefone,
	          spc_data_vecimento,
	          spc_data_compra,
	          spc_valor_debito,
	          spc_codigo_programa,
	          spc_num_ligacao)
values             (sq_t_samea_spc.nextval,
        	    'samea',
            	    'rua 18',
	            'lirio do vale II',
        	    '00000',
	            '00000',
	             null,
	             null,
	            '00000',
	            '00000',
	            '00000'
)
Beleza é só fazer desse jeito e ele vai incrementar seu id a cada insert, porém tem algo que eu queria te alertat, você o campo de id do tipo number(1) , o que vai aconter é que quando ele só vai poder receber uma numeração de "0..9" e depois você não podera armazernar mais nada ele, pois como ele é primary key não poderá ser repetido e não poderá suportar inteiros de duas ou mais posições.

Aconselho que você ponha mais posições, é claro se você precisar.

Mais sobre sequence você pode consultar aqui:

http://www.psoug.org/reference/sequences.html

Qualquer coisa estamos por aqui.

Abraços ;-)
samea
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 12
Registrado em: Sex, 20 Fev 2009 2:42 pm
Localização: manaus - Am
Sâmea Brazão

Valeu !
muito obrigada mesmo!
:lol:
Responder
  • Informação