Escolar Documentos
Profissional Documentos
Cultura Documentos
Base Formal
lgebra relacional e clculo relacional
Funcionalidades principais
definio (DDL) e manipulao (DML) de dados definio de vises e autorizaes de acesso definio de restries de integridade definio de transaes comandos para embutimento em LPs
SQL - DDL
Criao de um BD
SQL padro no oferece tal comando
BDs so criados via ferramentas do SGBD
SQL - DDL
Comandos para definio de esquemas
create table
define a estrutura da tabela, suas restries de integridade e cria uma tabela vazia
alter table
modifica a definio de uma tabela (I / E / A atributos; I / E RIs) RIs bsicas:
atributos chave no podem ser removidos de uma tabela atributos NOT NULL no podem ser inseridos em uma tabela
drop table
remove uma tabela com todas as suas tuplas
SQL ndices
Definidos sobre atributos para acelerar consultas a dados ndices so definidos automaticamente para chaves primrias Operaes
CREATE [UNIQUE] INDEX nome_ndice ON nome_tabela (nome_atributo_1[{, nome_atributo_n }]) DROP INDEX nome_ndice ON nome_tabela
Exemplos
CREATE UNIQUE INDEX indPac_CPF ON Pacientes (CPF) DROP INDEX indPac_CPF ON Pacientes
SQL DML
Define operaes de manipulao de dados
I (INSERT) A (UPDATE) E (DELETE) C (SELECT)
Instrues declarativas
manipulao de conjuntos especifica-se o que fazer e no como fazer
SQL DML
Insero de dados
INSERT INTO nome_tabela [(lista_atributos)] VALUES (lista_valores_atributos) [, (lista_valores_atributos)]
Exemplos
MySQL
INSERT INTO Ambulatorios VALUES (1, 1, 30) INSERT INTO Medicos (codm, nome, idade, especialidade, CPF, cidade) VALUES (4, Carlos, 28,ortopedia, 11000110000, Joinville);
SQL DML
Alterao de dados
UPDATE nome_tabela SET nome_atributo_1 = Valor [{, nome_atributo_n = Valor}] [WHERE condio]
Exemplos
UPDATE Medicos SET cidade = Florianopolis UPDATE Ambulatorios SET capacidade = capacidade + 5, andar = 3 WHERE nroa = 2
SQL DML
Excluso de dados
DELETE FROM nome_tabela [WHERE condio]
Exemplos
DELETE FROM Ambulatorios DELETE FROM Medicos WHERE especialidade = cardiologia or cidade < > Florianopolis
Exerccios (MySQL)
1. 2. Crie um BD com nome Clinica Crie as seguintes tabelas neste BD, considerando que os atributos sublinhados so chaves primrias e os em itlico so chaves estrangeiras: Ambulatorios: nroa (int), andar (numeric(3)) (no nulo), capacidade (smallint) Medicos: codm (int), nome (varchar(40)) (no nulo), idade (smallint) (no nulo), especialidade (char(20)), CPF (numeric(11)) (nico), cidade (varchar(30)), nroa (int) Pacientes: codp (int), nome (varchar(40)) (no nulo), idade (smallint) (no nulo), cidade (char(30)), CPF (numeric(11)) (nico), doenca (varchar(40)) (no nulo) Funcionarios: codf (int), nome (varchar(40)) (no nulo), idade (smallint), CPF (numeric(11)) (nico), cidade (varchar(30)), salario (numeric(10)), cargo (varchar(20)) Consultas: codm (int), codp (int), data (date), hora (time) Crie a coluna nroa (int) na tabela Funcionarios Crie os seguintes ndices: Medicos: CPF (nico) Pacientes: doenca Remover o ndice doenca em Pacientes Remover as colunas cargo e nroa da tabela de Funcionarios
3. 4.
5. 6.
Popular as tabelas:
Medicos Ambulatorios nroa 1 2 3 4 5 Pacientes codp 1 2 3 4 nome Ana Paulo Lucia Carlos idade 20 24 30 28 cidade Florianopolis Palhoca Biguacu Joinville CPF 20000200000 20000220000 22000200000 11000110000 andar 1 1 2 2 2 capacidade 30 50 40 25 55 4 5 Carlos Marcia 2 3 Maria Pedro 1 codm nome Joao
Exerccios (MySQL)
idade 40 42 51 28 33 especialidade ortopedia traumatologia pediatria ortopedia neurologia Consultas codm 1 1 2 2 codp 1 4 1 2 3 4 1 3 4 4 4 data 2006/06/12 2006/06/13 2006/06/13 2006/06/13 2006/06/14 2006/06/14 2006/06/19 2006/06/12 2006/06/19 2006/06/20 2006/06/22 hora 14:00 10:00 9:00 11:00 14:00 17:00 18:00 10:00 13:00 13:00 19:30 CPF 10000100000 10000110000 11000100000 11000110000 11000111000 cidade Florianopolis Blumenau So Jos Joinville Biguacu 3 nroa 1 2 2
Funcionarios codf 1 2 3 4 5 nome Rita Maria Caio Carlos Paula idade 32 55 45 44 33 cidade Sao Jose Palhoca Florianopolis Florianopolis Florianopolis salario 1200 1220 1100 1200 2500 CPF 20000100000 30000110000 41000100000 51000110000 61000111000
2 2 3 3 3 4 4
Exerccios (MySQL)
Realizar as seguintes atualizaes no BD: 1) O paciente Paulo mudou-se para Ilhota 2) A consulta do mdico 1 com o paciente 4 passou para s 12:00 horas do dia 4 de Julho de 2006 3) A paciente Ana fez aniversrio e sua doena agora cancer 4) A consulta do mdico Pedro (codf = 3) com o paciente Carlos (codf = 4) passou para uma hora e meia depois 5) O funcionrio Carlos (codf = 4) deixou a clnica 6) As consultas marcadas aps as 19 horas foram canceladas 7) Os pacientes com cncer ou idade inferior a 10 anos deixaram a clnica 8) Os mdicos que residem em Biguacu e Palhoca deixaram a clnica