Ir para o conteúdo

Comunidade

Banco de dados (prática)

Download
Feed RSS

Blog

Ninguém está seguindo este artigo ainda.

Comandos SQL

0 sem comentários ainda Ninguém está seguindo este artigo ainda. 15 visualizações

Comandos SQL

 

- VISUALIZANDO TABELA

 

Select * FROM nome_da_tabela  [* =  Todos campos. ]

 

- CRIANDO TABELA

 

CREATE TABLE nome_da_tabela

(primeiro_atributo_column real,

Segundo_atributo_column char(13),

Terceiro_atributo_column char(14));

 

-DELETANDO UMA TABELA

 

DROP TABLE nome_da_tabela

 

-TRANCANDO UMA TABELA

 

~ Limpa as linhas da tabela, elimina os registros da linha.

 

TRUNCATE nome_da_tabela

 

 

- ADICIONANDO DADOS NA(S) LINHA(S) NA TABELA

 

INSERT INTO nome_da_tabela (nome_coluna1,nome_coluna2,...)

VALUES (valor1,valor2,...)

 

~ OBS: O comando INSERT INTO, insere uma linha por vez.

A inserção de valores do INSERT também poderá ser feito colocando os VALORES NA ORDEM DAS SUAS RESPECTIVAS COLUNAS ou SEJA, ficando assim :

INSERT INTO nome_da_tabela

VALUES (valor1,valor2,...)

 

-ATUALIZANDO DADOS DE UMA TABELA

 

UPDATE nome_da_tabela

SET valor_antigo = valor_novo

WHERE (condicao para ser efetuada a atualizacao. Ex: valor_antigo is null)

 

- ALTERANDO UMA TABELA

  • Alterando o atributo de uma coluna

ALTER TABLE nome_da_tabela

ALTER COLUMN nome_da_coluna TYPE character(20)

  • DELETAR UMA COLUNA

ALTER TABLE nome_da_tabela

DROP COLUMN nome_da_coluna

  • RENOMEANDO UM CAMPO DE UMA COLUNA

ALTER TABLE nome_da_tabela

RENAME COLUMN nome_do_coluna TO novo_nome_da_coluna

  • ADICIONANDO UMA COLUNA COM DETERMINADO TIPO

ALTER TABLE nome_da_tabela

ADD COLUMN nome_do_coluna CHAR(20)

 

- CRIANDO BANCO DE DADOS

 

CREATE DATABASE nome_do_banco

 

- EXCLUINDO BANCO DE DADOS

 

DROP DATABASE nome_do_banco

 

-ORDENAR TABELA (COLUNAS)

 

...

ORDER BY campoAserOrdenado DESC [Se for em ordem decrescente]

 

 

- ALTERAR CABEÇALHO

 

SELECT nomeDoCampo “novo_nome” ...

 

- EXTRAIR IDADE

 

extract(year from age (func_dtnasc))

 

- DIAS,MESES E ANOS

AGE(func_dtnasc)

 

- DATA FORMATADA

 

to_char(func_dtnasc, ‘DD/MM/YYYY’)

 

- BETWEEN

 

Ex:

...

WHERE … func_salario >= 3000 and func_salario <= 5000

OU

WHERE … func_salario BETWEEN 3000 and 5000

 

- SOMAR VALORES

 

SUM(atributo_a_ser_somado)

 

- CONTAR

 

COUNT(atributor_a_ser_contado)

 

- MÉDIA

 

AVG(campo_a_se_tirar_a_media)

 

- EXIBINDO APENAS O 1º NOME

 

SELECT split_part(func_nome,’ ‘,1)

 

- NOMES QUE COMEÇAM COM A LETRA L

 

WHERE func_nome ilike ‘L%’

~ OBS: O ilike é para sensitive ou seja, maiúsculo ou minúsculo

 

- NOMES QUE TEM A LETRA L

 

...

WHERE func_nome ilike ‘%L%’

~ OBS: O ilike é para sensitive ou seja, maiúsculo ou minúsculo. O % significa qualquer coisa.

 

- NOMES QUE A 6ª LETRA É L

...

WHERE func_nome ilike ‘_____L%’ [_ _ _ _ _L%]

 

 

~ OBS: O underline (_) seria um caractere qualquer

- ARREDONDAR VALOR

 

ROUND(valor_a_ser_arredondado,quantidade_de_casas)

 

- ESTRUTURA DO CASE

 

CASE WHEN sum(profunc_horas)> 1000

THEN func_salario/2

/*Opcional: ELSE 0*/

END AS GRATIFICAÇÃO

 

- OBSERVAÇÃO PARA O USO DO HAVING

 

~ OBS: O HAVING é um filtro para GROUP BY

 

- CONVERSÃO DE DADOS

 

ROUND(cast(func_salario AS NUMERIC),2)

- CRIANDO UMA VIEW (UTILIZADO PARA PESQUISAS COMPLEXAS)

 

CREATE VIEW nome_da_view

AS SELECT

...

 

- ESPECIFICANDO OS ATRIBUTOS DA ESPECIFICA TABELA

 

Ex problema diff table

RESOLVEMOS DESTE MODO:

 

SELECT funcionarios.nome, clientes.nome FROM funcionarios, clientes

 

  • E se o problema exigir que pegue dados da mesma tabela?

---> Resolvemos este problema apelidando a tabela:

func.nome, chefe.nome FROM funcionarios as func, funcionarios as chefe

 

- CRIANDO UM INDEX (ÍNDICE), UTILIZADO PARA OTIMIZAR A CONSULTA

 

CREATE INDEX idx_nome_do_indice ON nome_da_tabela (nome_do_campo_que_vai_ser_criado_o_indice)

 

Comandos de atualização :

INSERT, UPDATE e DELETE

Comando de consulta :

SELECT

 

- RETIRANDO REPETIÇÕES

 

SELECT DISTINCT campos FROM nome_da_tabela

 

~ OBS: Ele só sumpri a linha toda.

 

- SATISFAZENDO UMA LISTA DE VALORES OU NÃO SATISFAZENDO

 

Satisfazendo a lista

IN(lista)

Não satisfazendo a lista

NOT IN(lista)

 

Ex:

/*Questão 5 - O departamento de projetos solicitou uma relação dos funcionários que trabalharam nos projetos com o total de

horas apropriadas maior que o total de horas orçadas*/

 

SELECT func_nome FROM funcionarios,profunc

WHERE profunc_func = func_id  AND  profunc_proj IN

(SELECT proj_id

FROM  projetos, profunc

WHERE  profunc_proj = proj_id

GROUP BY proj_id,proj_horas

HAVING SUM(profunc_horas)> proj_horas)

 

 

 

 

 

 

 

CREATE SEQUENCE aluno_id_seq

   INCREMENT 1

   START 1

   MINVALUE 1

   MAXVALUE 9223372036854775807

   CACHE 1;

ALTER TABLE aluno_id_seq OWNER TO "admin";

 

//nextval('aluno_id_seq'::regclass)

 

ALTER TABLE alunos ALTER COLUMN aluno_id SET DEFAULT nextval('aluno_id_seq'::regclass);

 

DEFININDO CHAVE PRIMÁRIA COM NOME ESPECIFICO

 

ALTER TABLE clientes ADD CONSTRAINT cliente_id_pk PRIMARY KEY (cliente_id)

 

DELETANDO

DELETE FROM Usuario WHERE usuario_id = @usuario_id