• Nenhum resultado encontrado

Básico de SQL na Prática: DDM e DDL

N/A
N/A
Protected

Academic year: 2022

Share "Básico de SQL na Prática: DDM e DDL"

Copied!
20
0
0

Texto

(1)

Básico de SQL na Prática:

DDM e DDL

Prof. André Luiz F. Alves

(2)

A Linguagem de Definição de Dados (DDL) da SQL

• CREATE [TABLE | VIEW | INDEX] – Criação de uma tabela (CREATE TABLE) de uma visão (CREATE VIEW) ou de um índice (CREATE INDEX).

ALTER TABLE – Alteração da definição (meta- esquema) de uma tabela, com a adição de uma coluna à esquerda.

DROP [TABLE | VIEW | INDEX] – Destruição (dados e definição) de uma tabela básica (DROP

TABLE), de uma visão (DROP VIEW) ou de um índice

(3)

Linguagem DDL da SQL

FUNCIONÁRIO(matricula, nome_func, endereco, salario, cod_departamento )

DROP TABLE IF EXISTS `empresa`.`Funcionario`;

CREATE TABLE Funcionario(

matricula SMALLINT NOT NULL, nome_func CHAR(30),

endereco VARCHAR(50), salario DECIMAL,

cod_depto SMALLINT,

PRIMARY KEY (matricula) )

(4)

Linguagem DDL da SQL

DEPARTAMENTO (cod_dep, sigla, nome_depto, mat_diretor )

CREATE TABLE `departamento` (

`cod_dep` smallint(6) NOT NULL,

`sigla` char(30), `nome` varchar(100),

`mat_diretor` smallint(6), PRIMARY KEY (`cod_dep`),

CONSTRAINT `FK_departamento_1` FOREIGN KEY (`mat_diretor`) REFERENCES

`funcionario` (`matricula`)

(5)

Exercícios

Linguagem DDL da SQL: Alteração em tabelas

ALTER TABLE `departamento` ADD UNIQUE INDEX

`Index_sigla`(`sigla`);

ALTER TABLE `funcionario`

ADD CONSTRAINT `FK_funcionário_depart`

FOREIGN KEY (`cod_depto`)

REFERENCES `departamento` (`cod_dep`) ON DELETE RESTRICT ON UPDATE RESTRICT;

Porque a Chave Estrangeira acima não foi criada no

Comando CREATE TABLE?

(6)

Linguagem SQL

Comentários:

– Com delimitadores: /* e */

• Estas marcam delimitam o escopo de um comentário em uma consulta. Esta pode ser inclusive maior que uma linha.

– Sem delimitadores: --

• A marca acima indica que, a partir daquele

ponto, tudo que se seguir até o final da linha

representa um comentário.

(7)

Linguagem de Manipulação de Dados (DML) da SQL

Quatro comandos integram esta classe:

SELECT – Seleção de atributos de uma tabela

INSERT – Inclusão de uma ou várias tuplas em uma tabela

DELETE – Remoção de uma ou várias tuplas de uma tabela

UPDATE – Atualização de valores de atributos

(8)

DML da SQL

O comando INSERT: Temos dois formatos possíveis:

INSERT INTO tabela [ ( nome-do atributo [ , nome-do atributo ] ) ]

VALUES ( valor-constante [ , valor-constante ] ) ou

INSERT INTO tabela [ ( nome-do atributo [ , nome-do atributo ] ) ]

sub-consulta

(9)

DML da SQL

Os comandos abaixo funcionam?

INSERT INTO Funcionario ( matricula, nome_func, cod_depto) VALUES ( 11344, 'Jorge de Abreu', 7321) INSERT INTO departamento(cod_dep,sigla, nome, mat_diretor)

VALUES ( 7100, 'CPD','Centro de Processamento de Dados', 1115)

FOREIGN KEY CONSTRAINT FAILS...

(10)

DML da SQL

Por enquanto esqueçamos as Chaves Estrangeiras...

INSERT INTO departamento(cod_dep,sigla, nome, mat_diretor) VALUES ( 7100, 'CPD','Centro de Processamento de Dados', null) Ou

INSERT INTO departamento(cod_dep,sigla, nome)

VALUES ( 7100, 'CPD','Centro de Processamento de Dados')

(11)

DML da SQL

Cod_dpto

INSERT INTO Funcionario ( matricula, nome_func, cod_depto) VALUES ( 11344, 'Jorge de Abreu', 7321)

válido

(12)

DML da SQL

E Os Departamentos vão ficar sem diretor?

O comando UPDATE:

Formato Geral:

UPDATE tabela

SET atributo = expressão [ , atributo = expressão ] [WHERE condição]

Exemplos:

update departamento set mat_diretor = 11344

(13)

DML da SQL

O presidente mandou atualizar para R$ 500,00 todos os salários inferiores a R$ 300.

update Funcionário SET salario =500 where salario <=300;

O endereço de um funcionário foi cadastrado errado.

UPDATE Funcionário SET endereco = ‘Rua Mena Barreto, 20’ WHERE nome_func = ‘Jorge de Abreu Soares’

Novo Salário dos Funcionários do CPD: R$ 1200,00

update Funcionario SET salario =1200

where cod_dpto = 7100;

(14)

DML da SQL

O comando DELETE

Formato Geral: DELETE FROM tabela [WHERE condição]

Este comando remove todas as tuplas de uma tabela, segundo a especificação da cláusula WHERE, caso exista. Se esta não existir, todas as instâncias da tabela são removidas; contudo, a descrição da tabela no catálogo do sistema permanece intacta.

DELETE FROM Funcionário

WHERE nome_func = ‘João da Silva’

E se o funcionário for demetido?

(15)

DML da SQL

SELECT: Este comando, um dos mais utilizados pelos usuários de Sistemas Gerenciadores de Banco de Dados, tem a função principal de recuperar dados de uma ou mais tabelas do banco de dados,

possivelmente segundo algum critério.

Formato Geral:

SELECT [ALL | DISTINCT] lista-de-seleção FROM tabela [nome-correlato]

[ , tabela [nome-correlato] ] [ WHERE condição ]

[ GROUP BY atributo [ , atributo ] ] [ HAVING condição ]

[ ORDER BY atributo [ , atributo ] [ASC | DESC] ]

(16)

Consulta simples com recuperação de alguns campos:

SELECT matricula, nome_func FROM Funcionário

DML da SQL

(17)

Pesquisando com LIKE

SELECT * FROM funcionario

WHERE nome_func like '%ABREU%';

Uso do qualificador DISTINCT:

SELECT DISTINCT cod_dpto FROM Funcionário

DML da SQL

(18)

Consulta simples com qualificação::

SELECT matricula, nome_func, endereco, salario FROM Funcionário WHERE matricula < 11000

DML da SQL

(19)

Consulta simples com ordenação SELECT matricula, nome_func

FROM Funcionário WHERE matricula >= 11000 ORDER BY nome_func

DML da SQL

SELECT matricula, nome_func FROM Funcionário

WHERE matricula >= 11000

ORDER BY nome_func DESC

(20)

Consulta de junção

SELECT *

FROM Departamento as d,Funcionario as f

WHERE (f.cod_depto = d.cod_dep) AND (d.sigla='CPD')

Pesquisa mais sobre Junção (JOIN) no manual do MySql.

A Linguagem SQL oferece muito mais recursos. Um bom profissional de informática deve conhecer mais....

DML da SQL

Referências

Documentos relacionados

porque os alunos do ensino médio noturno de uma Escola Municipal, não participam das aulas de Educação Física e os principais fatores que propiciam essa evasão.. O

1º Aprovar, para o exercício de 2006, os critérios e as normas de transferência de recursos financeiros aos Estados, ao Distrito Federal e aos Municípios, visando executar ações

• Dividimos o número de eventos em cada intervalo pelo número total de eventos e pela largura do intervalo... Histogramas

O processo de amostragem por conglomerados em dois est´ agios aqui proposto est´ a baseado na utiliza¸ c˜ ao do estimador de Hansen-Hurwitz que consiste no sorteio inicial de um

CREATE DATABASE – cria um novo banco de dados ALTER DATABASE – modifica um banco de dados CREATE TABLE – cria uma nova tabela.. ALTER TABLE – altera uma tabela DROP TABLE

Resumo: O presente trabalho corresponde a um estudo empírico descritivo e exploratório que aborda comportamentos e falas de atores políticos que participaram do processo legislativo

A Casa Alegre apresenta uma diversidade inigualável de propostas para mesa que, muito para além do seu caráter utilitário e multifuncional, imprimem um forte sentido estético a cada

Foram estudados 35 ratos (Rattus norvegicus albinus) machos, distribuídos em sete grupos (n = 5): Grupo 1: sem esplenectomia; Grupo 2: esplenectomia total; Grupo 3: