SlideShare uma empresa Scribd logo
1 de 31
2008.1
SQL
Renata Viegas
2008.1
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
2008.1
A linguagem SQL
• Órgãos como ANSI e ISO adotaram a SQL como o
padrão oficial de linguagem em ambiente relacional.
• O ANSI publicou as padronizações SQL ANSI-89 e
ANSI-92.
• Revisões da SQL: SQL99 (SQL 3)
2008.1
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
• Não é uma linguagem case-sensitive
2008.1
A linguagem SQL
• Definição de Dados: através da DDL possibilita a definição da estrutura e
organização dos dados
• Manipulação de Dados: através da DML possibilita a manipulação dos
dados armazenados, compreendendo inclusão, consulta, alteração e
eliminação..
• Controle de Acesso: protege os dados de manipulações não autorizadas,
através de comandos de autorização de acesso.
• Integridade dos Dados: define as regras de integridade dos dados contra
corrupções, inconsistências e falhas do sistema.
• Controle de Transações: inclui comandos que controlam a especificação
do início e do fim das transações.
2008.1
A linguagem SQL
• Independência de fabricante: está incorporada em quase todos os
SGBDs em seu padrão ANSI, com as extensões proprietárias de
cada fabricante.
• Portabilidade entre computadores: pode ser usada desde um PC
até um mainframe.
• Redução de custos com treinamento: as aplicações podem migrar
de ambiente com custo reduzido em treinamento.
• Facilidade no entendimento: oferece um rápido entendimento,
com comandos escritos em um inglês estruturado de alto nível.
• Múltiplas visões de dados: possibilita levar diferentes visões dos
dados a diferentes usuários.
2008.1
A linguagem SQL
• Em todos os exemplos a seguir, será utilizado o exemplo
de uma locadora de DVD
– Tabela Clientes (CodC, nome, cpf, 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
2008.1
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.
2008.1
Criando Tabelas - Sintaxe
CREATE TABLE tabela(
atributo1 tipo1,
atributo2 tipo2,
...,
restrições de integridade
)
2008.1
Criando Tabelas
CREATE TABLE clientes(
CodC int not null identity,
nome varchar(80) not null,
cpf char(12) not null,
data_nasc date,
sexo char(1),
salario numeric (9,2),
PRIMARY KEY (CodC),
UNIQUE (cpf),
CHECK (sexo in (‘M’,‘F’)),
CHECK (salario > 0)
)
2008.1
Criando Tabelas
• 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)
• Identity – 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)
• Varchar (tamanho) – tipo de String com tamanho de
armazenamento variável, de acordo com os valores inseridos
pelo usuário (o tamanho indicado na criação da tabela é a
quantidade máxima de caracteres que poderão ser
armazenados no campo)
2008.1
Criando Tabelas
• Char (tamanho) – tipo de String com tamanho de
armazenamento fixo, de acordo com a quantidade de
caracteres definidos na criação da tabela
• Date – tipo data no formato ano-mes-dia (Obs: no SQL-
Server, o tipo é datetime)
• Numeric(n,d) – tipo numérico que aceita valores reais (n
indica o total de números e d indica a quantidade de
decimais)
• 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)
2008.1
Criando Tabelas
• 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)
• Check – restrição de integridade que indica condições
para o preenchimento de um campo
• In (conjunto de valores) – indica que o valor de um
determinado atributo deve estar presente no conjunto de
valores definido, para que os dados possam ser inseridos
na tabela
2008.1
Criando Tabelas
CREATE TABLE dvd (
CodD int not null identity,
titulo varchar(40) not null,
genero varchar(15),
duracao time,
situacao varchar(12) default (‘Disponível’),
PRIMARY KEY (CodD),
CHECK (situacao in (‘Alugada’,‘Disponível’))
)
2008.1
Criando Tabelas
• Time – tipo tempo no formato
hora:minuto:segundo (Obs: no SQL-Server,
o tipo é datetime)
• Default – indica um valor que será
armazenado no atributo caso não seja
informado outro valor pelo usuário
2008.1
Criando Tabelas
CREATE TABLE locacoes (
CodC int not null,
CodD int not null,
data date,
FOREIGN KEY (CodC) REFERENCES clientes,
FOREIGN KEY (CodD) REFERENCES dvd,
)
2008.1
Criando Tabelas
• 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
2008.1
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,...)
2008.1
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’)
2008.1
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.
2008.1
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.
2008.1
Comandos SQL - Inserção
• Campos definidos como IDENTITY 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 )
• No SQL Server, o valor inicial de campos IDENTITY é 1 e o
incremento tem valor 1.
2008.1
Comandos SQL - Inserção
• Valores do tipo char, varchar, date e time (ou datetime no
SQL-Server) devem ser representados entre apóstrofos
(aspas simples ‘’).
• No SQL-Server, 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
2008.1
Comandos SQL - Atualização
• Atualização de dados nas tabelas
UPDATE tabela
SET atributo = valor
WHERE condicao
2008.1
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
2008.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
2008.1
Comandos SQL - Exclusão
• Exclusão de dados das tabelas
DELETE FROM tabela
WHERE condição
2008.1
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’
2008.1
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
2008.1
Comandos SQL – 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
2008.1
Comandos SQL – 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

Mais conteúdo relacionado

Semelhante a SQL.ppt

364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdfQuitriaSilva550
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLDaniel Brandão
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQlCezar Souza
 
Bdm aula 9 - operações sql - ticianne darin
Bdm   aula 9 - operações sql - ticianne darinBdm   aula 9 - operações sql - ticianne darin
Bdm aula 9 - operações sql - ticianne darinTicianne Darin
 
Modulo-02-Aula-02-conteudo-de-certi.pptx
Modulo-02-Aula-02-conteudo-de-certi.pptxModulo-02-Aula-02-conteudo-de-certi.pptx
Modulo-02-Aula-02-conteudo-de-certi.pptxAugustoNicolau2
 
Banco de dados comandos sql
Banco de dados   comandos sqlBanco de dados   comandos sql
Banco de dados comandos sqlNilson Augustini
 
Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosFábio dos Reis
 
Exemplo e caso prático do uso de base de dados
Exemplo e caso prático do uso de base de dadosExemplo e caso prático do uso de base de dados
Exemplo e caso prático do uso de base de dadosLuis Borges Gouveia
 
Introdução a banco de dados
Introdução a banco de dadosIntrodução a banco de dados
Introdução a banco de dadosOdwald Schreder
 
Programaçao C - Aula 2
Programaçao C - Aula 2Programaçao C - Aula 2
Programaçao C - Aula 2Filipo Mór
 
Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8Emiliano Barbosa
 

Semelhante a SQL.ppt (20)

364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
364722271-Modulo-III-Linguagem-SQL-Versao-Final.pdf
 
Banco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQLBanco de dados - Aula 1 SQL
Banco de dados - Aula 1 SQL
 
Basesdedados
BasesdedadosBasesdedados
Basesdedados
 
Minicurso PostgreSQl
Minicurso PostgreSQlMinicurso PostgreSQl
Minicurso PostgreSQl
 
Bdm aula 9 - operações sql - ticianne darin
Bdm   aula 9 - operações sql - ticianne darinBdm   aula 9 - operações sql - ticianne darin
Bdm aula 9 - operações sql - ticianne darin
 
Modulo-02-Aula-02-conteudo-de-certi.pptx
Modulo-02-Aula-02-conteudo-de-certi.pptxModulo-02-Aula-02-conteudo-de-certi.pptx
Modulo-02-Aula-02-conteudo-de-certi.pptx
 
Banco de dados comandos sql
Banco de dados   comandos sqlBanco de dados   comandos sql
Banco de dados comandos sql
 
Sql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentosSql com sql server básico - Bóson treinamentos
Sql com sql server básico - Bóson treinamentos
 
Bd sql (1)
Bd sql (1)Bd sql (1)
Bd sql (1)
 
Novidades do SQL Server 2008
Novidades do SQL Server 2008Novidades do SQL Server 2008
Novidades do SQL Server 2008
 
Exemplo e caso prático do uso de base de dados
Exemplo e caso prático do uso de base de dadosExemplo e caso prático do uso de base de dados
Exemplo e caso prático do uso de base de dados
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Introdução a banco de dados
Introdução a banco de dadosIntrodução a banco de dados
Introdução a banco de dados
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Programaçao C - Aula 2
Programaçao C - Aula 2Programaçao C - Aula 2
Programaçao C - Aula 2
 
Aula 11 banco de dados
Aula 11   banco de dadosAula 11   banco de dados
Aula 11 banco de dados
 
Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8Fundamentos de SQL - Parte 6 de 8
Fundamentos de SQL - Parte 6 de 8
 
Apostila de sql
Apostila de sqlApostila de sql
Apostila de sql
 
PHP MySQL Aula 04
PHP MySQL Aula 04PHP MySQL Aula 04
PHP MySQL Aula 04
 
Python 04
Python 04Python 04
Python 04
 

Mais de JoberthSilva

AULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.pptAULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.pptJoberthSilva
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CJoberthSilva
 
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdfJoberthSilva
 
A função scanf na programção para dispositivos embarcados
A função scanf na programção para dispositivos embarcadosA função scanf na programção para dispositivos embarcados
A função scanf na programção para dispositivos embarcadosJoberthSilva
 
A CRIAÇÃO DO UNIVERSO.ppt
A CRIAÇÃO DO UNIVERSO.pptA CRIAÇÃO DO UNIVERSO.ppt
A CRIAÇÃO DO UNIVERSO.pptJoberthSilva
 
Apocalipse - Cartas as Igrejas.pptx
Apocalipse - Cartas as Igrejas.pptxApocalipse - Cartas as Igrejas.pptx
Apocalipse - Cartas as Igrejas.pptxJoberthSilva
 
5 - Resistores.ppt
5 - Resistores.ppt5 - Resistores.ppt
5 - Resistores.pptJoberthSilva
 
Problemas de Carater.pptx
Problemas de Carater.pptxProblemas de Carater.pptx
Problemas de Carater.pptxJoberthSilva
 
Mapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptMapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptJoberthSilva
 
Herança e Polimorfismo.ppt
Herança e Polimorfismo.pptHerança e Polimorfismo.ppt
Herança e Polimorfismo.pptJoberthSilva
 
Materiais Semicondutores
Materiais SemicondutoresMateriais Semicondutores
Materiais SemicondutoresJoberthSilva
 
Algoritmos - Modificado.ppt
Algoritmos - Modificado.pptAlgoritmos - Modificado.ppt
Algoritmos - Modificado.pptJoberthSilva
 
actividade1-140709100755-phpapp02.pdf
actividade1-140709100755-phpapp02.pdfactividade1-140709100755-phpapp02.pdf
actividade1-140709100755-phpapp02.pdfJoberthSilva
 
Rede sem fio 2.ppt
Rede sem fio 2.pptRede sem fio 2.ppt
Rede sem fio 2.pptJoberthSilva
 

Mais de JoberthSilva (20)

AULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.pptAULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.ppt
 
Curso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação CCurso Completo de Linguagem de Programação C
Curso Completo de Linguagem de Programação C
 
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
8 - ATIVIDADE DE OPERADORES TERNÁRIOS E IF.pdf
 
A função scanf na programção para dispositivos embarcados
A função scanf na programção para dispositivos embarcadosA função scanf na programção para dispositivos embarcados
A função scanf na programção para dispositivos embarcados
 
A CRIAÇÃO DO UNIVERSO.ppt
A CRIAÇÃO DO UNIVERSO.pptA CRIAÇÃO DO UNIVERSO.ppt
A CRIAÇÃO DO UNIVERSO.ppt
 
Apocalipse - Cartas as Igrejas.pptx
Apocalipse - Cartas as Igrejas.pptxApocalipse - Cartas as Igrejas.pptx
Apocalipse - Cartas as Igrejas.pptx
 
PHP.ppt
PHP.pptPHP.ppt
PHP.ppt
 
Aula_1.pptx
Aula_1.pptxAula_1.pptx
Aula_1.pptx
 
5 - Resistores.ppt
5 - Resistores.ppt5 - Resistores.ppt
5 - Resistores.ppt
 
Problemas de Carater.pptx
Problemas de Carater.pptxProblemas de Carater.pptx
Problemas de Carater.pptx
 
Mapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.pptMapeamento de Objetos para o Modelo Relacional.ppt
Mapeamento de Objetos para o Modelo Relacional.ppt
 
capacitores1.ppt
capacitores1.pptcapacitores1.ppt
capacitores1.ppt
 
Herança e Polimorfismo.ppt
Herança e Polimorfismo.pptHerança e Polimorfismo.ppt
Herança e Polimorfismo.ppt
 
Materiais Semicondutores
Materiais SemicondutoresMateriais Semicondutores
Materiais Semicondutores
 
Algoritmos - Modificado.ppt
Algoritmos - Modificado.pptAlgoritmos - Modificado.ppt
Algoritmos - Modificado.ppt
 
Fibra Óptica
Fibra ÓpticaFibra Óptica
Fibra Óptica
 
actividade1-140709100755-phpapp02.pdf
actividade1-140709100755-phpapp02.pdfactividade1-140709100755-phpapp02.pdf
actividade1-140709100755-phpapp02.pdf
 
50524(1).ppt
50524(1).ppt50524(1).ppt
50524(1).ppt
 
Rede sem fio 2.ppt
Rede sem fio 2.pptRede sem fio 2.ppt
Rede sem fio 2.ppt
 
bom-1.pdf
bom-1.pdfbom-1.pdf
bom-1.pdf
 

SQL.ppt

  • 2. 2008.1 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
  • 3. 2008.1 A linguagem SQL • Órgãos como ANSI e ISO adotaram a SQL como o padrão oficial de linguagem em ambiente relacional. • O ANSI publicou as padronizações SQL ANSI-89 e ANSI-92. • Revisões da SQL: SQL99 (SQL 3)
  • 4. 2008.1 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 • Não é uma linguagem case-sensitive
  • 5. 2008.1 A linguagem SQL • Definição de Dados: através da DDL possibilita a definição da estrutura e organização dos dados • Manipulação de Dados: através da DML possibilita a manipulação dos dados armazenados, compreendendo inclusão, consulta, alteração e eliminação.. • Controle de Acesso: protege os dados de manipulações não autorizadas, através de comandos de autorização de acesso. • Integridade dos Dados: define as regras de integridade dos dados contra corrupções, inconsistências e falhas do sistema. • Controle de Transações: inclui comandos que controlam a especificação do início e do fim das transações.
  • 6. 2008.1 A linguagem SQL • Independência de fabricante: está incorporada em quase todos os SGBDs em seu padrão ANSI, com as extensões proprietárias de cada fabricante. • Portabilidade entre computadores: pode ser usada desde um PC até um mainframe. • Redução de custos com treinamento: as aplicações podem migrar de ambiente com custo reduzido em treinamento. • Facilidade no entendimento: oferece um rápido entendimento, com comandos escritos em um inglês estruturado de alto nível. • Múltiplas visões de dados: possibilita levar diferentes visões dos dados a diferentes usuários.
  • 7. 2008.1 A linguagem SQL • Em todos os exemplos a seguir, será utilizado o exemplo de uma locadora de DVD – Tabela Clientes (CodC, nome, cpf, 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
  • 8. 2008.1 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.
  • 9. 2008.1 Criando Tabelas - Sintaxe CREATE TABLE tabela( atributo1 tipo1, atributo2 tipo2, ..., restrições de integridade )
  • 10. 2008.1 Criando Tabelas CREATE TABLE clientes( CodC int not null identity, nome varchar(80) not null, cpf char(12) not null, data_nasc date, sexo char(1), salario numeric (9,2), PRIMARY KEY (CodC), UNIQUE (cpf), CHECK (sexo in (‘M’,‘F’)), CHECK (salario > 0) )
  • 11. 2008.1 Criando Tabelas • 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) • Identity – 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) • Varchar (tamanho) – tipo de String com tamanho de armazenamento variável, de acordo com os valores inseridos pelo usuário (o tamanho indicado na criação da tabela é a quantidade máxima de caracteres que poderão ser armazenados no campo)
  • 12. 2008.1 Criando Tabelas • Char (tamanho) – tipo de String com tamanho de armazenamento fixo, de acordo com a quantidade de caracteres definidos na criação da tabela • Date – tipo data no formato ano-mes-dia (Obs: no SQL- Server, o tipo é datetime) • Numeric(n,d) – tipo numérico que aceita valores reais (n indica o total de números e d indica a quantidade de decimais) • 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)
  • 13. 2008.1 Criando Tabelas • 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) • Check – restrição de integridade que indica condições para o preenchimento de um campo • In (conjunto de valores) – indica que o valor de um determinado atributo deve estar presente no conjunto de valores definido, para que os dados possam ser inseridos na tabela
  • 14. 2008.1 Criando Tabelas CREATE TABLE dvd ( CodD int not null identity, titulo varchar(40) not null, genero varchar(15), duracao time, situacao varchar(12) default (‘Disponível’), PRIMARY KEY (CodD), CHECK (situacao in (‘Alugada’,‘Disponível’)) )
  • 15. 2008.1 Criando Tabelas • Time – tipo tempo no formato hora:minuto:segundo (Obs: no SQL-Server, o tipo é datetime) • Default – indica um valor que será armazenado no atributo caso não seja informado outro valor pelo usuário
  • 16. 2008.1 Criando Tabelas CREATE TABLE locacoes ( CodC int not null, CodD int not null, data date, FOREIGN KEY (CodC) REFERENCES clientes, FOREIGN KEY (CodD) REFERENCES dvd, )
  • 17. 2008.1 Criando Tabelas • 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
  • 18. 2008.1 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,...)
  • 19. 2008.1 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’)
  • 20. 2008.1 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.
  • 21. 2008.1 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.
  • 22. 2008.1 Comandos SQL - Inserção • Campos definidos como IDENTITY 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 ) • No SQL Server, o valor inicial de campos IDENTITY é 1 e o incremento tem valor 1.
  • 23. 2008.1 Comandos SQL - Inserção • Valores do tipo char, varchar, date e time (ou datetime no SQL-Server) devem ser representados entre apóstrofos (aspas simples ‘’). • No SQL-Server, 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
  • 24. 2008.1 Comandos SQL - Atualização • Atualização de dados nas tabelas UPDATE tabela SET atributo = valor WHERE condicao
  • 25. 2008.1 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
  • 26. 2008.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
  • 27. 2008.1 Comandos SQL - Exclusão • Exclusão de dados das tabelas DELETE FROM tabela WHERE condição
  • 28. 2008.1 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’
  • 29. 2008.1 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
  • 30. 2008.1 Comandos SQL – 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
  • 31. 2008.1 Comandos SQL – 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