SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL



Documentos relacionados
Escrito por Sex, 14 de Outubro de :12 - Última atualização Seg, 26 de Março de :33

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

A linguagem SQL

SQL Structured Query Language

Linguagem SQL Sub-linguagem DDL

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

EXEMPLOS DE COMANDOS NO SQL SERVER

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) )

Comandos de Manipulação

PHP INTEGRAÇÃO COM MYSQL PARTE 1

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Linguagem de Consulta Estruturada SQL- DML

SQL. Autor: Renata Viegas

Banco de Dados. Prof. Antonio

(1,n) venda. (1,1) realizacao. cliente. (0,n) (1,1) contem. produto. Laboratório de Banco de Dados Exercicios

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Linguagem SQL. Comandos Básicos

Structured Query Language (SQL)

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL (Structured Query Language)

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Structured Query Language (SQL) Aula Prática

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Programação SQL. Introdução

Linguagem de Consulta - SQL

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

4.6. SQL - Structured Query Language

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

1. Domínio dos Atributos

Banco de dados 1. Linguagem SQL DDL e DML. Professor: Victor Hugo L. Lopes

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Standards ISO e ANSI SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003

O que são Bancos de Dados?

EXERCÍCIOS PRÁTICOS. Banco de Dados

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

Prof. Carlos Majer Aplicações Corporativas UNICID

UNIVERSIDADE VEIGA DE ALMEIDA CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS BANCO DE DADOS

3) Palavra-chave distinct (select-from). Obter apenas os pibs distintos entre si.

SQL. Prof. Márcio Bueno.

Introdução ao SQL. Aécio Costa

SQL BÁSICO. Introdução. Prof. Suelane Garcia. Linguagem SQL (Structured Query Language)

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

Linguagem de Consulta Estruturada (SQL)

SQL - Criação de Tabelas

ADMINISTRAÇÃO DE BANCO DE DADOS

Projeto de Banco de Dados: Empresa X

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Banco de Dados. Maurício Edgar Stivanello

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

Introdução à linguagem SQL

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Treinamento em PHP. Aula 7. Ari Stopassola Junior

SQL: Definição de tabelas, Modificações à Base de Dados

Operação de União JOIN

Linguagem SQL (Parte I)

Fundamentos do Sistema Gerenciador de Banco de Dados

Comandos DDL. id_modulo = id_m odulo

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva -


BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127

Curso PHP Aula 08. Bruno Falcão

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL)

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS

Treinamento sobre SQL

Principais Comandos SQL Usados no MySql

Pedro F. Carvalho OCP Oracle g LINGUAGEM SQL. São José do Rio Preto

Disciplina de Banco de Dados Parte V

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc.

Profº Aldo Rocha. Banco de Dados

Introdução ao SQL Avançado

Linguagem SQL (Parte II)

SQL DDL. Frederico D. Bortoloti

Utilizando o Postgres - comandos SQL para a manipulação de dados

Linguagem SQL Parte I

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza

Exercícios de Lógica Exercícios de Fixação 08

SQL. Definição do Esquema da Base de Dados. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

Banco de Dados I. Linguagem de Consulta (parte I) DDL DML

Disciplina: Unidade V: Prof.: Período:

SQL (Linguagem de Consulta Estruturada)

Transcrição:

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL Criar uma base de dados (criar um banco de dados) No mysql: create database locadora; No postgresql: createdb locadora Criar uma tabela chamada clientes e filmes create table clientes ( cli_codigo integer, cli_nome varchar(30), cli_cidade varchar(20), cli_sexo char(1) ); create table filmes ( fil_codigo integer, fil_nome varchar(30), fil_genero varchar(15), fil_preco numeric(4,2) ); Inserir dados na tabela cliente; Insert into clientes (cli_codigo, cli_nome, cli_cidade, cli_sexo) values (1,'Neri Neitzke', 'Carazinho', 'M'); Insert into clientes (cli_codigo, cli_nome, cli_cidade, cli_sexo, cli_email) values (1,'Neri Neitzke', 'Carazinho', 'M','neri@informaticon.com.br'); Insert into clientes (cli_codigo, cli_nome, cli_cidade, cli_sexo, cli_email)

values (2,'Lisiane Neitzke', 'Gurupi', 'F','lisiane@informaticon.com.br'); Insert into clientes (cli_codigo, cli_nome, cli_cidade, cli_sexo, cli_email) values (3,'Giulia Neitzke', 'Machadinho', 'F','giulia@informaticon.com.br'); Insert into clientes (cli_codigo, cli_nome, cli_cidade, cli_sexo, cli_email) values (4,'Gustavo Neitzke', 'Cascavel', 'M','gustavo@informaticon.com.br'); Ou Insert into clientes values (1, Neri Neitzke, Carazinho, M ); Visualizar, consultar, pesquisar, selecionar [SELECT]: Select cli_codigo, cli_nome, cli_cidade, cli_sexo from clientes; Ou Select * from clientes; Cláusula Order By A cláusula Order By muda a ordem de apresentação do resultado da pesquisa e possibilita colocar também em ordem ascendente ou descendente. Ex.: Select * from clientes order by cli_nome; Restrição where Com where é possivel restringir os dados (tuplas) que serão listados, ou seja, efetuar uma condição para que o mesmo apareça na listagem Operadores lógicos = igual a > maior que >= maior que ou igual a < menor que

<= menor que ou igual a Ex.: Select * from clientes where cli_codigo >= 2; Select * from clientes where cli_codigo >= 2 and cli_codigo <= 5; Select * from clientes where cli_codigo >= 2 and cli_codigo <= 5 and cli_cidade = Carazinho ; Select * from clientes where cli_codigo >= 2 and cli_codigo <= 5 and cli_cidade = Carazinho and cli_sexo = F ; Select * from clientes where cli_codigo >= 2 and cli_codigo <= 5 and cli_cidade = Carazinho and cli_sexo = F order by cli_nome; Like = com padrão de caracteres A linha abaixo indica que é para mostrar todas tuplas (registros) em que os nomes de clientes comecem com a letra G Select * from clientes where cli_nome like G% ; A linha abaixo indica que é para mostrar todas tuplas (registros) em que os nomes de clientes terminem com a palavra Neitzke Select * from clientes where cli_nome like %Neitzke ; A linha abaixo indica que é para mostrar todas tuplas (registros) em que os nomes de clientes tenhao a pavra Joao no meio (em qualquer lugar Select * from clientes where cli_nome like %Joao% ; Between...and... = lista entre 2 valores Select * from clientes where cli_codigo between 2 and 5; É a mesma coisa que Select * from clientes where cli_codigo >= 2 and cli_codigo <= 5; Nas duas linhas acima, irá mostrar todas as tuplas em que o codigo seja maior ou igaul a 2 e menor ou igual a 5, ou seja, entre 2 e 5 Select * from clientes where cli_codigo not between 2 and 5;

É a mesma coisa que Select * from clientes where cli_codigo < 2 or cli_codigo > 5; Nas duas linhas acima, irá mostrar todas as tuplas em que o codigo seja menor que 2 e maior que 5 In (..) lista de valores pré definidos Select * from clientes where cli_codigo in(2,4,6); É a mesma coisa que Select * from clientes where cli_codigo =2 or cli_codigo = 4 or cli_codigo = 6; Nas duas linhas acima irá listar todas as tuplas em que o codigo seja 2 ou 4 ou 6 Select * from clientes where cli_codigo not in(2,4,6); É a mesma coisa que Select * from clientes where cli_codigo <> 2 and cli_codigo <> 4 and cli_codigo <> 6; Nas duas linhas acima irá listar todas as tuplas em que o codigo seja diferente de 2 ou 4 ou 6 Manipulando Colunas das tabelas Select cli_codigo 'Codigo do Cliente', cli_nome 'Nome do Cliente', cli_cidade 'Cidade do Cliente', cli_sexo 'Sexo' from clientes; Distinct A cláusula Distinct elimina duplicidades, não mostrando portanto dados duplicados como resultado de uma pesquisa. Select distinct cli_cidade from clientes; Primary key

Criando a chave principal, fazendo com que um determinado campo não possa ser repetido. create table clientes ( cli_codigo integer not null, cli_nome varchar(30) not null, cli_cidade varchar(20), cli_sexo char(1), primary key (cli_codigo) ); Drop Elimina uma tabela, seus dados, atributos e referências. Ex.: drop table clientes Alter Este comando permite inserir/eliminar atributos nas tabelas já existentes. Ex: alter table clientes add cli_email varchar (30); alter table clientes drop cli_email; //apaga este atributo alter table clientes drop column cli_email; //apaga no Oracle modificar estrura das colunas: no mysql: alter table clientes modify cli_email varchar (40); no firebird: alter table clientes alter column cli_email type varchar (40); alter table clientes alter column cli_email to cli_correio; no postgresql e Oracle: alter table clientes alter column cli_email type varchar (40); alter table clientes rename column cli_email to cli_correio;

Describe Este comando permite visualizar a estrutura das tabelas Ex: describe clientes; update Este comando permite alterar os dados da tabela Ex: update clientes set cli_sexo = 'M'; update clientes set cli_sexo = 'F' where cli_codigo =2; update clientes set cli_cidade = 'Lajeado', cli_nome = 'Giulia Neitzke' where cli_codigo =3; delete Este comando permite exluir registros das tabelas Ex: delete from clientes; //exclui todos os registros da tabela delete from clientes where cli_sexo = 'F'; delete from clientes where cli_cidade like 'C%'; truncate Este comando elimina de forma irreversível todos os dados da tabela Ex: truncate table clientes; Funções de Agregação avg Este comando calcula o valor medio de uma determinada coluna

Ex: select avg(cli_salario) as media_salarial from clientes; count Este comando conta as linhas de uma tabela Ex: select count(cli_codigo) from clientes; select count(*) as quantidade_registros from clientes; sum Este comando calcula a somatória de todos os valores de uma coluna Ex: select sum(cli_salario) as valor_total from clientes; select sum(cli_salario) as valor_total from clientes where cli_sexo = 'F'; min Esta função sql retorna o valor mínimo encontrado em uma coluna Ex: select min(cli_salario) as valor_minimo from clientes; select min(cli_salario) as salario_minimo from clientes where cli_codigo in(1,3) max Esta função sql retorna o valor máximo encontrado em uma coluna Ex: select max(cli_salario) as valor_minimo from clientes; select max(cli_salario) as salario_minimo from clientes where cli_codigo in(1,3) Funções escalares de Texto upper Esta função sql converte para maiúsculas todos os caracteres Ex: select cli_codigo,upper(cli_nome) as Nome,cli_cidade, cli_sexo,cli_email,cli_salario from clientes;

lower Esta função sql converte para minúsculas todos os caracteres Ex: select cli_codigo,upper(cli_nome) as Nome,cli_cidade, cli_sexo,lower(cli_email),cli_salario from clientes; Concatenar concat (no MySQL) Esta função sql no MySQL reúne em uma única sequência de caracteres, uma ou mais coulnas (atributos de tabela) Ex: select concat(cli_nome, cli_sexo) from clientes; select concat(cli_nome, ' - ',cli_sexo) as 'Nome do Cliente e Sexo', cli_cidade as Cidade from clientes; (no Firebird, PostgreSQL e Oracle) Esta função Firebird reúne em uma única sequência de caracteres, uma ou mais colunas (atributos de tabela) Ex: select cli_nome cli_sexo from clientes; select cli_nome ' - ' cli_sexo as "Nome e sexo" from clientes; no Sql Server usa-se + Esta função no sqlserver reúne em uma única sequência de caracteres, uma ou mais coulnas (atributos de tabela) Ex: select cli_nome + cli_sexo from clientes; select cli_nome+' - '+cli_sexo as 'Nome e Sexo' from clientes; Índices Índice é usado para agilizar pesquisas de seleção de dados nas tabelas. O Key é sinônimo de índice. Ex: show index from clientes; //mostra os indices da tabela

create index ind_nome_cliente on clientes(cli_nome); ou alter TABLE clientes add Index ind_cliente_nome (cli_nome); exclui o indice no mysql, sql server = drop index ind_nome_cliente on clientes; no firebird = drop index ind_nome_cliente; group by (agrupar por..) Agrupar dados Para qualquer banco de dados Ex.: select cli_sexo as Sexo, count(cli_sexo) as quantos from clientes group by cli_sexo; ou no Mysq select concat('do sexo ',cli_sexo,' tem ', count(cli_sexo)) as 'Estatísticas sexuais' from clientes group by cli_sexo; no Firebird e PostgreSQL e Oracle select 'Do sexo ' cli_sexo ' tem ', count(cli_sexo) as "Estatísticas sexuais" from clientes group by cli_sexo; no sql server select 'Do sexo ' + cli_sexo +' tem ', count(cli_sexo) as 'Estatísticas sexuais' from clientes group by cli_sexo;

Resultado: Retorna quantos clientes são do sexo masculino e quantos são do sexo feminino. select AVG(cli_salario) from clientes group by cli_sexo; Neste exemplo acima irá retornar a media salarial agrupando por sexo O exemplo abaixo funcionará perfeitamente no MySQL, no Firebird e postgresql, você deverá trocar 'quantidade de pessoas' por quantidade de pessoas, ou seja, trocar apenas ' por select cli_sexo as Sexo, sum(cli_salario) as soma, AVG(cli_salario) as media, count(cli_sexo) as 'quantidade de pessoas' from clientes group by cli_sexo; select cli_cidade as Cidade, cli_sexo Sexo, sum(cli_salario) as soma, AVG(cli_salario) as media, count(cli_sexo) as 'quantidade de pessoas' from clientes group by cli_cidade, cli_sexo; Tabela de Cidades //para evitar redundância de dados No MySql CREATE table cidades ( cid_codigo integer not null auto_increment, cid_nome varchar(30), primary key (cid_codigo)

); No Firebird CREATE table cidades ( cid_codigo integer not null, cid_nome varchar(30), primary key (cid_codigo) ); Chave Estrangeira //foreign key Efetua ligações entre as tabelas. Implementa integridade dos dados. Alter table clientes Add foreign key (cli_codcid) references cidades (cid_codigo); Com constraint Alter table clientes Add constraint chave_estrang_cidade foreign key (cli_codcid) references cidades (cid_codigo) on delete RESTRICT on update CASCADE; Para apagar uma chave estrangeira MySql alter table clientes drop FOREIGN key chave_estrang_cidade; Firebird alter table clientes drop constraint chave_estrang_cidade; Union - Union All

Usado para unir o conteúdo de uma ou mais tabelas select cid_codigo, cid_nome from cidades UNION select cli_codigo, cli_nome from clientes Exemplo para unir dados de uma mesma tabela select cli_codigo, cli_nome, cli_polegar as Digital_cliente from clientes where cli_polegar is NOt null union all select cli_codigo, cli_nome, cli_indicador as Digital_cliente from clientes where cli_indicador is NOt null union all select cli_codigo, cli_nome, cli_medio as Digital_cliente from clientes where cli_medio is NOt null union all select cli_codigo, cli_nome, cli_anelar as Digital_cliente from clientes where cli_anelar is NOt null union all select cli_codigo, cli_nome, cli_minimo as Digital_cliente from clientes where cli_minimo is NOt null; commit Efetua a gravação permanente de uma transação no banco de dados Ex.: commit; Auto Incremento Preenche automaticamente o conteúdo de um campo inteiro, toda vez que um novo registro for inserido na tabela.

No MySQL = auto_increment create table clientes ( cli_codigo integer not null auto_increment, cli_nome varchar(30) not null, cli_cidade varchar(20), cli_sexo char(1), primary key (cli_codigo) ); Ou, no caso da tabela já estar criada ALTER table clientes MODIFY cli_codigo integer not null auto_increment; Veja que para inserir você não precisa mais colocar o código. Ex.: Insert into clientes (cli_nome, cli_cidade, cli_sexo, cli_email, cli_salario, cli_codcid, cli_indicador) values ('Selvino Neitzke', 'Lajeado', 'M','selvino@informaticon.com.br',50,1, xzxzxzxzx ); No Firebird = Generator e Trigger GENERATOR O Firebird não possui um tipo de campo auto incremento. Mas você pode usar uma ferramenta chamada GENERATOR. Ele retorna um valor incrementado toda vez que você o chama. Veja abaixo como criar um generator Ex.: CREATE GENERATOR gen_cidades_id; Trigger Triggers são chamadas automaticamente quando os dados da tabela a qual ela esta conectada são alterados

SET TERM ^ CREATE TRIGGER TR_CIDADES FOR CIDADES ACTIVE BEFORE INSERT POSITION 0 AS BEGIN new.cid_codigo =gen_id(ge_cidades_id, 1); END ^

Auto incremento no postgresql = serial create table clientes ( cli_codigo serial not null, cli_nome varchar(30) not null, cli_cidade varchar(20), cli_sexo char(1), constraint chave_primaria_bairro primary key (cli_codigo) ); Criação tabela no PostgreSQL create table funcionario ( fun_codigo serial not null, fun_nome varchar(40), fun_sexo char(1), fun_salario decimal(10,2), fun_codbairro integer not null, constraint chave_primaria_funcionario primary key (fun_codigo), constraint chave_estrangeira_codbairro foreign key (fun_codbairro) references bairro(bai_codigo) );

Domain e Check (Firebird, PostgreSQL) Domain: Domains (domínios) são tipos de dados criados para que possam ser reaproveitados pelo usuário, assim, é fácil padronizar e facilitar a criação de tabelas. CREATE DOMAIN "DM_CHAVE" AS INTEGER NOT NULL; Check: Valida a entrada de dados em campos de nossas tabelas(valores mínimos, máximos, formatação etc) CREATE DOMAIN "DM_CHAVE" AS INTEGER CHECK(VALUE > 0) NOT NULL; Having para qualquer banco de dados having: Esta clausula serve para restringir condicionalmente o retorno de uma instrução SQL através de uma função agregada. Ex.: select fun_sexo, sum(fun_salario) from funcionario group by sexo having sum(fun_salario) >= 1000; select fun_sexo, sum(fun_salario) from funcionario group by fun_sexo having count(fun_sexo) >= 2; Join join: usado quando temos que selecionar dados de duas ou mais tabelas. Ex.: select fun_codigo, fun_nome, fun_salario, fun_sexo, nome as Cargo from funcionario join cargo on fun_codcargo = codigo;

É o mesmo que select fun_codigo, fun_nome, fun_salario, fun_sexo, nome as Cargo from funcionario, cargo where fun_codcargo = codigo; Ex2.: select cli_codigo, cli_nome, cli_salario, cli_sexo, cid_nome as Cidade from clientes join cidades on cli_codcid = cid_codigo; É o mesmo que select cli_codigo, cli_nome, cli_salario, cli_sexo, cid_nome as Cidade from clientes,cidades where cli_codcid = cid_codigo;

Projeto de Banco de dados Modelagem de Banco de dados Análise de Sistemas MODELAGEM DE DADOS CONCEITUAL (Modelo ER) Modelagem de Dados Conceitual é o início para o desenvolver e projetar banco de dados. É a descrição da estrutura de um banco de dados, independente de qual banco será usado (oracle, sql server, firebird, postgresql, MySQL...) Importantíssimo: Faça uma análise super detalhada das informações e dados durante o estágio de modelagem de dados conceitual. Pois, se você tiver que mudar algo no seu projeto depois de ele estar pronto, a dor de cabeça poderá ser muito grande para fazer as alterações. Componentes do Modelo Entidade-Relacionamento (modelo ER) Entidades - São os objetos onde as informações serão mantidas (tabelas) Atributos São os dados das tabelas, relacionados a própria entidade ou a um relacionamento Relacionamentos associações entre os atributos das entidades (Efetua ligações entre as tabelas. Implementa integridade dos dados) Cursos Cur_codigo inteiro Cur_nome texto(20) Alunos Alu_codigo inteiro Alu_nome texto(40) Alu_cpf text(16) Alu_midia text(30) Matriculas Mat_codigo inteiro Mat_datacad date

LIA - Listagem informal de atributos (rascunho) # = chave principal = primary key @ = chave estrangeira = foreign key PESSOA (entidade para armazenamento das pessoas que podem ser tanto um aluno ou responsável, ou ambos) pes_codigo # inteiro pes_nome texto(40) pes_codendereco @(endereço) pes_numero texto(10) pes_complemento texto(10) pes_codbairro@(bairro) pes_codcidade@(cidade) pes_cep texto(9) pes_cpf texto(11) pes_rg texto(18) pes_foneres texto(16) pes_fonecom texto(16) pes_fonecel texto(16) pes_datacad data pes_datanasc data pes_email texto(50) pes_sexo texto(1) (M,F) pes_estadocivil texto(1) (C,V,S,D) pes_foto texto(50) pes_digitalpolegar texto(40) pes_digitalindicador texto(40) pes_digitalmedio texto(40) pes_digitalanelar texto(40) pes_digitalminimo texto(40) pes_observacao texto(80)

CIDADE (entidade para armazenamento das cidades) cid_codigo # inteiro cid_nome texto(30) cid_uf texto(2) BAIRRO (entidade para armazenamento dos bairros) bai_codigo # inteiro bai_nome texto(20) ENDEREÇO (entidade para armazenamento dos endereços) end_codigo # inteiro end_nome texto(40) MIDIA (entidade para armazenamento das midias, exemplo: jornal, tv, rádio) mid_codigo # inteiro mid_nome texto(20)

MODELO ER