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

7 - SQL - Aula1

Ok
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)
17 visualizações33 páginas

7 - SQL - Aula1

Ok
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
Você está na página 1/ 33

Introdução ao Linguagem SQL

A linguagem SQL
• SQL - Structured Query Language.
• Foi definida nos laboratórios de pesquisa da IBM em
San Jose, California, em 1974.
• Teve seus fundamentos no modelo relacional
• Sua primeira versão recebeu o nome de SEQUEL -
Structured English Query Language
A linguagem SQL
• É uma linguagem usada em SGBDs para:
– Definir estruturas de dados (Ex: criar tabelas)
– Modificar dados no BD (Ex: inserir e alterar dados)
– Especificar restrições de segurança (Ex: privilégios de
acesso)
– Realizar consultas
A linguagem SQL

Dois conjuntos principais de comandos:

• DDL (Data Definition Language): possibilita a


definição da estrutura e organização dos dados
– Composta pelos comandos Create, Alter e Drop
– Responsável por dar forma ao banco de dados

• DML (Data Manipulation Language): Responsável


por manipular os dados acrescentando,
modificando, apagando e fazendo consultas
– Comandos Select, Insert, Delete e Update
A linguagem SQL
• Em todos os exemplos a seguir, será utilizado o exemplo
de uma locadora de DVD
– Tabela Clientes (CodC, nome, nbi, data_nasc, sexo,
salario)
– Tabela Dvd (CodD, titulo, genero, duracao, situacao)
– Tabela Locacoes (CodC, CodD, data)

• Observação: os nomes das tabelas e dos atributos não


podem conter acentos ou espaços em branco
Criando Tabelas
• O nome de uma tabela em um banco de dados deverá ser único
para cada proprietário;

• Cada coluna deverá ser criada através da especificação do seu


nome, tipo e tamanho do dado que irá armazenar

• O nome de uma coluna deverá ser único dentro de cada tabela


podendo, entretanto, existir colunas com o mesmo nome em
tabelas diferentes.

• Uma tabela representa uma entidade do banco de dados onde


cada linha equivale a uma ocorrência e cada coluna equivale a um
atributo dessa entidade.
Comandos DDL - Criando Tabelas -
Sintaxe
CREATE TABLE tabela(
atributo1 tipo1,
atributo2 tipo2,
...,
restrições de integridade
)
Criando Tabelas
Exemplo: Tabela Clientes (CodC, nome, nbi, data_nasc, sexo, salario)

CREATE TABLE clientes(


CodC int not null auto_increment,
nome varchar(80) not null,
nbi char(12) not null,
data_nasc date,
sexo char(1),
salario numeric (9,2),
PRIMARY KEY (CodC),
UNIQUE (nbi ),

)
Tipos de dados
• Tipos de dados são uma forma de classificar
as informações que serão armazenados no
banco de dados e de definir
antecipadamente:
• Os tipos de dados que pode ter um campo,
podem-se agrupar em três grandes grupos:
– Tipos numéricos
– Tipos de Data
– Tipos de Cadeia
Tipos de dados: numéricos
• TINYINT: número inteiro muito pequeno (tiny).
• SMALLINT: número inteiro pequeno.
• MEDIUMINT: número inteiro de tamanho médio.
• INT: número inteiro de tamanho comum.
• BIGINT: número inteiro de tamanho grande.
• DECIMAL: número decimal, de ponto fixo.
• FLOAT: número de ponto flutuante de precisão simples (32
bits).
• DOUBLE: número de ponto flutuante de precisão dupla (64
bits).
• BIT: um campo de um bit.
Tipos de dados: Data

• DATE: o valor referente a uma data no


formato 'CCYY-MM-DD'. Por exemplo 1985-11-
25 (ano-mês-dia). O 'CC' se refere aos dois dígitos
do século (Century, em inglês).

• TIME: um valor horário no formato 'hh:mm:ss‘


(hora: minutos: segundos).

• YEAR: armazena um ano no formato 'CCYY' ou 'YY‘.


Tipos de dados: Cadeia
• CHAR: uma cadeia de caracteres (string), de
tamanho fixo e não-binária.
• VARCHAR: uma string de tamanho variável e não-
binária.
• BINARY: uma string binária de tamanho fixo.
• ENUM: É uma string, com um valor que precisa ser
selecionado de uma lista predefinida na criação da
tabela.
• TINYTEXT: uma string não-binária e de tamanho
bem reduzido.
• TEXT — uma string não-binária e pequena.
Restrições de Integridade
• Not null: Indica que o atributo deverá ser obrigatoriamente
informado pelo usuário na hora de inserir dados na tabela.
(Todos os campos, por default, aceitam valores nulos)

• auto_inccrement: Indica que o atributo será preenchido


automaticamente com valores auto-incrementados (não é
possível definir um valor para esse atributo na hora de
inserir dados)

• Primary Key – restrição de integridade que define a chave


primária da tabela (se a chave for composta, os nomes
devem ser separados por vírgulas)

• Unique – restrição de integridade que indica que um campo


não poderá receber valores repetidos na tabela (ou seja,
dois registros não podem ter o mesmo valor para esse
campo)
Criando Tabelas
Exemplo: Tabela Dvd (CodD, titulo, genero, duracao,
situacao)

CREATE TABLE dvd (


CodD int not null auto_increment,
titulo varchar(40) not null,
genero varchar(15),
duracao time,
situacao varchar(12),
PRIMARY KEY (CodD),
)
)
Criando Tabelas

Exemplo: Tabela Locacoes (CodC, CodD, data)

CREATE TABLE locacoes (


CodC int not null,
CodD int not null,
data date,
FOREIGN KEY (CodC) REFERENCES clients ON
DELETE RESTRICT,
FOREIGN KEY (CodD) REFERENCES dvd ON DELETE
RESTRICT
)
Restrições de Integridade
• FOREIGN KEY – restrição de integridade que define uma
chave estrangeira para a tabela

• Obs:
– Para que um atributo seja chave estrangeira de uma tabela, é
necessário que ele seja chave primária da tabela referenciada
– O nome do campo na tabela que terá a chave estrangeira não
precisa ser o mesmo do campo na tabela referenciada (Exemplo: o
campo CodD em locacoes poderia ser substituído por CodDvd),
mas deve ser do mesmo tipo e do mesmo tamanho da tabela
referenciada.
Restrições de Integridade

• RESTRICT: Rejeita a actualização ou exclusão de um


Registro da tabela pai, se houver registros na tabela filha.
• CASCADE: Actualiza ou exclui os registros da tabela filha
automaticamente, ao actualizar ou excluir um registro da
tabela pai.
• SET NULL: Define como null o valor do campo na tabela
filha, ao actualizar ou excluir o registro da tabela pai.
• NO ACTION: Equivalente ao RESTRICT.
• Há ainda o SET DEFAULT: Define o valor da coluna na
tabela filha, como o valor definido como default para ela, ao
excluir ou actualizar um registro na tabela pai.
Comandos DDL– Alteração de Tabelas
• Alteração de tabelas para inclusão ou exclusão de
campos
– Inclusão
ALTER TABLE tabela
ADD atributo tipo restrição_integridade
– Exclusão
ALTER TABLE tabela
DROP COLUMN atributo
Comandos DDL– Alteração de Tabelas
• Inclusão do campo ano na tabela DVD
ALTER TABLE dvd
ADD ano int

• Exclusão do campo sexo da tabela Clientes


ALTER TABLE clientes
DROP COLUMN sexo
Eliminando tabelas
• DROP TABLE - exclui uma tabela da base de dados

DROP TABLE tabela


Comandos SQL - Inserção
• Inserção de dados nas tabelas

INSERT INTO tabela(atributo1,atributo2,...)


VALUES(valor1,valor2,...)
Ou
INSERT INTO tabela
VALUES(valor1,valor2,...)
Comandos SQL - Inserção
INSERT INTO clientes (nome,cpf,data_nasc,sexo,salario)
VALUES (‘Ana Moura’, ‘8245738’, ‘1979-10-02’, ‘F’ , 650.39)

INSERT INTO dvd (titulo,genero,duracao)


VALUES (‘Matrix’, ‘Ficção’, ’02:30:00’)

INSERT INTO locacoes


VALUES (1, 1, ‘2003-11-11’)
Comandos SQL - Inserção
• A lista de atributos é usada para indicar que campos
da tabela devem ser preenchidos, e com que
valores.
• Se não for incluída, o BD tentará preencher todos os
campos da tabela na seqüência em que foram
criados.
• Portanto, a lista é obrigatória quando alguns
campos não forem preenchidos, ou quando a ordem
dos valores estiver alterada.
Comandos SQL - Inserção
• Ex: INSERT INTO dvd VALUES (‘X-Men’, ‘Ação’)
– Seria um comando incorreto pois não há como saber a que atributos
se referem os valores.

• O correto seria
INSERT INTO dvd (titulo,genero)
VALUES (‘X-Men’,‘Ação’).

• Os campos não informados seriam preenchidos com Null (se


não tiverem sido definidos como not null), ou com valores
default definidos na criação da tabela.
Comandos SQL - Inserção
• Campos definidos como AUTO_INCREMENT não podem
assumir valores informados pelo usuário, e não precisam ser
incluídos na lista de atributos da tabela.

• Os valores desse campo vão sendo incrementados


automaticamente e não são reaproveitados (Ex: mesmo que
o DVD de código 5 seja excluído do banco, nenhum outro
DVD receberá esse código )
Comandos SQL - Inserção
• Valores do tipo char, varchar, date e time (ou datetime)
devem ser representados entre apóstrofos (aspas simples ‘’).

• No PHPMyAdmin e MySQL, o formato padrão para datas é


YYYY-MM-DD (ano-mes-dia) e para horas é HH:MM:SS
(hora-minuto-segundo)

• As casas decimais dos números devem ser separadas por


pontos, em vez de vírgulas

• Valores do tipo varchar podem conter acentos e espaços em


branco
Comandos SQL - Atualização
• Atualização de dados nas tabelas

UPDATE tabela
SET atributo = valor
WHERE condição
Comandos SQL - Atualização
• Mudar o salário do cliente com código 1 para 1400
UPDATE clientes
SET salario = 1400
WHERE CodC = 1

• Mudar a situação do DVD de código 1 para alugada


UPDATE dvd
SET situacao = ‘alugada’
WHERE CodD = 1
Comandos SQL - Atualização
• A cláusula WHERE é opcional no comando UPDATE.
Se não for informada, a atualização será realizada
em toda a tabela
• Ex: O comando abaixo muda o preço de todos os
DVDs cadastrados para 2.20
UPDATE dvd
SET preco = 2.20
Comandos SQL - Exclusão
• Exclusão de dados das tabelas

DELETE FROM tabela


WHERE condição
Comandos SQL - Exclusão
• Apagar cadastros de todos os clientes do sexo
masculino
DELETE FROM clientes
WHERE sexo = ‘M’

• Apagar cadastros de todos os DVDs de terror


DELETE FROM dvd
WHERE genero = ‘terror’
Comandos SQL - Exclusão
• A cláusula WHERE é opcional no comando DELETE.
Se não for informada, a exclusão será realizada em
toda a tabela
Ex: O comando abaixo exclui todas as locacoes
cadastradas
DELETE FROM locacoes

• O comando DELETE exclui os dados, mas não exclui


a tabela do BD.
– Para excluir a tabela inteira (dados e estrutura), o
comando é: DROP TABLE tabela
DROP TABLE locacoes
FIM

Você também pode gostar