PublicouMateus Albuquerque Alterado mais de 6 anos atrás
2 A linguagem declarativa de consulta SQL é um conjunto completo de comandos para definir, acessar e manipular BD, sendo padrão mundial de fato(mesmo SGBDs com linguagem própria, tem interface SQL) e de direito (ISO/IEC) para BD Relacionais.
3 o código necessário para acessar os dados
A SQL foi criada para ser amigável. Por ser declarativa seu foco é o resultado. Você diz o que fazer sem precisar navegar por estruturas complexas, o que reduz o código necessário para acessar os dados
4 Algumas características do SQL:
Trabalha com várias tabelas. • Permite usar o resultado de uma instrução SQL em outra instrução SQL(sub-consultas). • É de fácil aprendizado, não necessitando especificar o método de acesso ao dado. • Linguagem para vários usuários como: . • Linguagem embutida de manipulação de dados: não é uma linguagem de programação completa. • Permite uso interativo direto ao BD por meio de um ambiente que faz a interface.
5 Pode ser dividida em 3 conjuntos:
Linguagem de Definição de Dados (DDL): inclui comandos para definir, alterar e remover tabelas e índices; •	Linguagem de Manipulação de Dados (DML): inclui comandos para inserir, remover, atualizar e consultar os dados armazenados nas tabelas; •	Linguagem de Controle de Dados (DCL): inclui comandos para se trabalhar em ambiente multi-usuário, permitindo estabelecer níveis de segurança e manipular transações.
6 Comandos DDL: CREATE SCHEMA <NomeEsquema> AUTHORIZATION <UsuárioDono> Ou CREATE DATABASE<NomeBancoDados:AUTHORIZATION<Usuario>
7 CREATE DATABASE bdcontatos
Exemplo: CREATE DATABASE bdcontatos Use bdcontatos
8 CREATE TABLE <NomTab>(
<NomCol1> <TipDadCol1> [[NOT] NULL][DEFAULT <valor>][UNIQUE] [{,<NomColN> <TipDadColN> [[NOT] NULL][DEFAULT <valor>][UNIQUE]}] ,[CONSTRAINT <NomRestricao>] PRIMARY KEY (<ListNomesColunasChave>) [{,[CONSTRAINT <NomRestricao>] FOREIGN KEY (<NomeColunasChaveEstrangeira>) REFERENCES <NomeTabelaPai> (NomeColunasReferencia) [ON UPDATE [RESTRICT|CASCADE|SET NULL]]}] [,[CONSTRAINT <NomeRestricao>] UNIQUE KEY (<NomeColuna>)]);
9 Exemplo: CREATE TABLE contatos( codigo INTEGER NOT NULL AUTO_INCRIMENT, nome VARCHAR(65), telefone VARCHAR(14), VARCHAR(100) UNIQUE, sexo CHAR(1), nascimento DATE, PRIMARY KEY(codigo) );
10 Alguns Tipos de Dados Smallint -32768 a +32767 Integer ou INT
Decimal (n,m) numéricos com no máximo 15 dígitos cuja precisão é fornecida pela implementação do SGBD. REAL ponto flutuante de precisão simples DOUBLE ponto flutuante com precisão dupla FLOAT(n) especifica a precisão desejada Varchar(n) campos alfanuméricos de até 255 caracteres CHAR(n) alfanumérico de até 255 caracteres DATE no (4 dígitos), mês e dia (2 dígitos cada) TIME hora (2 dígitos), minuto (2 dígitos) e segundo (2 dígitos, podendo ter frações de 0 a ) TIMESTAMP DATE mais o TIME num único tipo. Booleano TRUE, FALSE e UNKNOWN
11 A integridade relacional é garantida pelo BD e não pelo aplicativo.
Chave estrangeira: FOREIGN KEY (<NomColunasChaveEstrangeira>) REFERENCES(<NomTabelaPai>)
13 ON DELETE: apaga-se um registro na tabela pai e tiver ao menos um registro correspondente nas tabelas filhas
14 Podendo ser: RESTRICT (restrita): opção default (padrão): não exclui a linha se houver chaves estrangeiras que a referenciem. CASCADE (em cascata): se excluir uma linha da tabela pai, então serão apagadas todas as linhas das tabelas filhas que referenciam seu valor como chave estrangeira. SET NULL: o valor da chave a ser excluído na tabela pai. Só é válido para chaves estrangeiras alternativas. SET DEFAULT: remover a linha na tabela pai implica em colocar valores predefinidos (defaults) nos atributos da chave estrangeira de cada linha da tabela filha com o mesmo valor de chave estrangeira da chave primária da tabela pai.
15 ON UPDate: atualiza um registro na tabela pai e tiver ao menos um registro correspondente nas tabelas filhas. - Cascade: propagar a alteração da chave primária para as chaves estrangeiras que a referenciam. - Set NULL: a chave estrangeira que referencia a linha alterada terá valor nulo. Válido só para chaves estrangeiras alternativas. - RESTRICT: a chave primária não pode ser alterada, se houver chaves estrangeiras que a referenciem.
16 Comando Drop table Elimina completamente a definição da tabela Não há como recuperar uma tabela após ela ser eliminada. Sintaxe: DROP TABLE <NomeTabela> [CASCADE|RESTRICT];
17 Comando ALTER TABLE Acrescenta, altera, retira atributos e muda nomes, formatos das colunas e integridade referencial definidas na tabela.
18 ALTER TABLE <NomeTabela>
{DROP {<NomeColuna> [{,<NomeColuna>}|CONSTRAINT <especificacao>]}| {ADD <NomeColuna> <TipoDado> [[NOT] NULL][SET DEFAULT <valor>]| [CONSTRAINT especificação]}} [{RENAME <NomeColuna> <NovoNomeColuna>}] [RENAME TABLE <NovoNomeTabela>] [MODIFY <NomeColuna> <TipoDado> [[NOT] NULL][WITH DEFAULT]] [ADD [CONSTRAINT especificação] PRIMARY KEY <NomeColuna>] [DROP PRIMARY KEY <NomeColuna>] [{ADD [CONSTRAINT especificação] FOREIGN KEY (NomeColunaChaveEstrangeira) REFERENCES (NomeTabelaPai) [ON DELETE [RESTRICT|CASCADE|SET NULL]]}] [{DROP FOREIGN KEY (NomeColChaveEstrang) REFERENCES(NomTabelPai)}];