0% acharam este documento útil (0 voto)
48 visualizações9 páginas

Introdução ao SQL para Iniciantes

Enviado por

yamamotoyato31
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
48 visualizações9 páginas

Introdução ao SQL para Iniciantes

Enviado por

yamamotoyato31
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Linguagem de Consulta Estruturada

(SQL – Structured Query Language)

- Linguagem padrão adotada pelos SGBDs para que os usuários possam definir e
manipular dados.

- Permite acesso aos elementos de uma tabela.

- Serve para criar, manipular e recuperar dados em um BD, bem como manter a
segurança desses dados.

- Criada em 1972 pela IBM - SEQUEL, acrônimo para Structured English Query
Language (Linguagem de Consulta Estruturada em Inglês).

- SQL divide-se em:

- DDL – Linguagem de Definição de Dados. Serve para criar, manipular e deletar


tabelas. (Create, Alter, Drop)

- DML – Linguagem de Manipulação de Dados. Serve para inserir, atualizar e


apagar dados (Insert, Update, Delete)

- DQL – Linguagem de Consulta de Dados. Serve para consultar dados. (Select)

Comandos Básicos:

1) CREATE DATABASE <nome do banco de dados>

Ex.: CREATE DATABASE escola;

USE <nome do banco de dados>

Ex.: USE escola;

Para criar as tabelas é necessário especificar os tipos de dados que poderão ser
armazenados.

Tipos de dados:

• CHAR – sequência de caracteres (string) de comprimento fixo. O


tamanho é especificado entre parênteses. O tamanho máximo permitido
é de 255 caracteres.
• VARCHAR - sequência de caracteres (string) com tamanho variável. O
tamanho máximo, ou seja, a quantidade máxima de caracteres que
poderá ser armazenada no campo é especificada entre parênteses.

• INT – tipo numérico que aceita valores inteiros. Podemos representar com
esse tipo qualquer valor inteiro na faixa entre -[Link] e
[Link], o que é mais que suficiente para armazenar a idade de
alguém!

• DECIMAL(n,d) – tipo numérico que aceita valores reais (n indica a


quantidade total de números e d indica a quantidade do total que
corresponde a casas decimais). Exemplo: DECIMAL(5,2) corresponde a
números com 5 dígitos com até duas casas decimais, como 256,12.

• TIME – tipo tempo no formato hora:minuto:segundo.

• DATE – tipo data no formato ano-mês-dia.

• SERIAL – autoincremento.

Comando CREATE – cria tabelas em um SGBD

CREATE TABLE nome_da_tabela(

atributo1 tipo1,

atributo2 tipo2,

...

atributoN tipoN

);

Ex.:

create TABLE aluno(

idaluno SERIAL primary KEY,

nome varchar(50),

endereco varchar(300),

cpf varchar(11),

Nascimento date);
create TABLE produto(

idProduto SERIAL primary KEY,

nome varchar(50),

descricao varchar(300),

tipo INT,

preco DECIMAL(10,2)

);

2) Comando DROP: deleta uma tabela

DROP TABLE <nome da tabela>

Ex.: DROP TABLE escola;

3) Alter Table - Adicionar colunas:

3.1 Adicionar Atributo

ALTER TABLE <nome_da_tabela> ADD <nome_coluna> <tipo_dado>;

Ex.: ALTER TABLE Produto ADD unidade VARCHAR(100);

É possível palavras chaves para posicionar a nova coluna na posição que desejar
na tabela:

- FIRST (primeiro), SECOND (segundo), THIRD (terceiro) e assim por diante.

- AFTER (após)

- BEFORE (antes)

- LAST (por último).

Ex.: ALTER TABLE Produto ADD descontoMax DECIMAL(3,1) AFTER preco;

3.2 Deletar coluna:

Síntese:
ALTER TABLE <nome_da_tabela> DROP COLUMN <nome_atributo>;

Exemplo:

ALTER TABLE Produto DROP COLUMN descontoMax;

3.3 Incluir chave estrangeira:

alter TABLE <nome_Tabela> add foreign key(atributo_ch_estrangeira)


references <nome_Tabela_origem>(<nome_atributo_origem>);

Ex.: CREATE TABLE curso(

idCurso serial PRIMARY KEY,

nome VARCHAR(200),

conteudo VARCHAR(500),

cargaHoraria INT

);

CREATE TABLE aluno(

idAluno serial PRIMARY KEY,

nome VARCHAR(200),

endereco VARCHAR(200),

idcurso BIGINT UNSIGNED NOT null

);

alter TABLE aluno add foreign key(idcurso) references curso(idcurso);

4) Insert

Síntese:
INSERT INTO <nome_da_tabela> (<atributo1>, <atributo2>, ...) VALUES (<valor1>,
<valor2>, ...);

Exemplos:

INSERT INTO produto (idProduto, nome, descricao,tipo,preco)values(DEFAULT,


'Arroz','pacote de 5hk', 1, 30.0);

Atenção:

• Registros do tipo varchar (tem que dizer a quantidade de caracteres),


date(formato aaaa-mm-dd) são inseridos entre aspas

• Atributo que é Chaves primárias – não pode ter valor repetido na


coluna

• Atributos not null (não nulo) tem que ter valar atribuído a ele

• Há 03 formas de escrever o comando insert.

o Mencionando todos os atributos

o Sem mencionar os atributos

o Mencionando parcialmente os atributos

5) Update

UPDATE <nome_da_tabela> SET <atributo> = <valor> WHERE <condição>;

Exemplos:

UPDATE Produto SET preco = 35.0 WHERE nome = 'arroz';

É possível usar operadores no commando Update

Na clausula SET:

UPDATE Produto SET preco = preco + (preco * 0.1) WHERE tipo =1;
UPDATE Produto SET preco = preco - (preco * 0.2);

Na clausula WHERE:

UPDATE Produto SET preco = preco + (preco * 0.1) WHERE tipo =1 OR tipo=2 ;

UPDATE Produto SET preco = preco + (preco * 0.1) WHERE tipo =1 AND
preco<10.0;

6) SELECT

SELECT <atributo1>, <atributo2>, ...

FROM <nome_da_tabela>

WHERE <condição>;

Ex.:

SELECT * FROM produto;

SELECT nome,tipo, preco FROM produto;

SELECT nome,tipo, preco FROM produto WHERE preco > 20;

SELECT nome,tipo, preco FROM produto WHERE preco < 20;

7) DELETE

DELETE FROM <nome_da_tabela>

WHERE <condição>;

Ex.:

DELETE FROM produto WHERE nome = 'milho';

DELETE FROM produto;/* cuidado*/

8) DESC

O mostra a estrutura física da tabela;

Ex.: DESC <nome_da_tabela>


CREATE TABLE pedidos (

cod_pedido serial PRIMARY KEY,

cod_prod int REFERENCES produtos (cod_prod),

quantidade int);

9) SELECT – quando os dados estão em mais de uma tabela

SELECT <atributo1>, <atributo2>, ...

FROM <nome_da_tabela1>, <nome_da_tabela2>, ...

WHERE <condição>

A cláusula Where é responsável pela consistência dos dados. Seu


usarmos como sem a cláusula Where:

SELECT <atributo1>, <atributo2>, ...

FROM <nome_da_tabela1>, <nome_da_tabela2>, ...

Resultará em dados inconsistentes!

Considerando as tabelas:

CREATE TABLE curso(

idCurso serial PRIMARY KEY,

nome VARCHAR(200),

conteudo VARCHAR(500),

cargaHoraria INT

);

CREATE TABLE aluno(

idAluno serial PRIMARY KEY,

nome VARCHAR(200),
endereco VARCHAR(200),

idcurso BIGINT UNSIGNED NOT null

);

alter TABLE aluno add foreign key(idcurso) references curso(idcurso);

Como consultar qual aluno faz qual curso?

1) ERRADO!!!

Select [Link], [Link]

From aluno, curso

O comando cima (sem Where) resulta no cruzamento dos dados das duas
tabelas. Pega todos os registos de alunos e combina com todos os registros de
curso

2) CORRETO!!!

Select [Link], [Link]

From aluno, curso

Where [Link] = [Link]

O comando cima (sem Where) resulta no cruzamento dos dados das duas
tabelas. Pega todos os registos de alunos e combina com todos os registros de
curso e, mediante a cláusula Where, seleciona os registros onde campo idcurso
possui valores iguais nas duas tabelas (aluno e curso).

Você também pode gostar