Вы находитесь на странице: 1из 20

Modelagem de Dados 2 SQL

Prof. Gilda Nbrega

BANCO DE DADOS
Conceito

a unio dos dados e dos programas que atuam sobre eles. Os Sistema Gerenciadores de Banco de Dados administram os dados e possuem a capacidade de ter procedimentos internos (Trigger e Procedures).

Linguagem SQL
Criada pela IBM, no incio dos anos 70.
SQL Structure Query Language Linguagem
Estruturada de Consulta.

Em 1986 o American National Standard Institute


(ANSI) publicou o padro SQL, tornando-a padro para os banco de dados relacionais.

Linguagem SQL
Possui diversos comandos divididos em trs categorias: DDL Data Definition Languagem (comandos create, alter, drop, e responsvel por dar forma ao banco de dados, etc); DML Data Manipulation Languagem (comandos: insert, select, update, delete, e responsvel por manipular os dados dentro do banco de dados); DCL Data Control Language ( um subgrupo da DML. Comandos: grant e revoke. Objetivo de controlar o acesso dos usurios aos dados, permitindo estabelecer regras para consultas, ...)
4

Linguagem SQL

Caractersticas principais

Poder de manipular ndices


Capacidade de criar vises (views) dos dados.

Tipos de Dados I
Char (n) armazena tamanho fixo de bytes.
Varchar (n) armazena desde 1 byte a 32.765 bytes, sendo varivel.

Date armazena datas (01-jan-100 at 11-dec-5941)


Time armazena valores de tempo. Timestamp armazena data e hora juntas.

Decimal e Numeric definem o campo numrico onde o ponto decimal fixado. Preciso e Escala. Ex.: Numeric(6,2)
6

Interactive SQL
Criando a tabela Disciplina do BD Curso

Create database Curso;

Cria banco de dados Curso

create table disciplinas( coddisciplina char(04) not null, nomedisc varchar(40) not null, cardahorariadisc varchar(40), IDcurso char(04) not null, primary key(coddisciplina),
7

Interactive SQL Criando a tabela Turmas do BD Curso


create table Turmas( codturma char(07) not null, turnoturma char(05), IDcurso char(04) not null, datainicioturma date not null, datafimturma date not null, primary key(codturma), );

Interactive SQL Criando a tabela Alunos do BD Curso create table Alunos( matr_aluno Integer not null, nome_aluno varchar(50) not null, filiacao varchar(70), data_nasc_alu date, data_matr_alu date, tel_alu char(9), primary key (matr_aluno) );
9

Interactive SQL Alterando a tabela Cursos do BD Curso Acrescentando campo

alter table cursos add datacriacaocurso date;

10

Interactive SQL Alterando a tabela Cursos do BD Curso Excluindo campo e acrescentando novo campo

alter table disciplinas /*-- apagando campo --*/ drop cardahorariadisc,


/*-- acrescentando novo campo a tabela disciplinas --*/

add cargahorariadisc varchar(40);

11

Interactive SQL
DML Data Manipulation Language Exerccios Cursos
1. Insira na Tabela Disciplinas todas as matrias do curso de Informtica, bem como algumas do curso de Gesto e de Enfermagem.

2. Altere a tabela Disciplinas acrescentando o campo perodo como inteiro, sendo que este campo s poder receber o valor de 1 ou 2 ou 3, de acordo com o seu perodo.
3. Atualize a tabela Disciplinas inserindo a informao sobre o perodo a qual a disciplina j cadastrada pertence. 4. Insira as turmas abaixo: 6 turmas de Informtica; 6 turmas de Gesto; 6 turmas de Enfermagem.
12

DML Exerccios Cursos.gdb


Resposta n 1.

insert into Disciplinas VALUES('INF','Gest','120 horas', ' Informtica'); insert into Disciplinas VALUES('MG','Gest','40 horas', 'Modelos de Gesto); insert into Disciplinas VALUES('RED','Gest','40 horas', 'Redao Oficial'); insert into Disciplinas VALUES('EMP','Gest','40 horas', 'Noes de Empreendedorismo'); insert into Disciplinas VALUES('GIC','Gest','40 horas', 'Gesto Integrada de Custos'); insert into Disciplinas VALUES('FC','Gest','40 horas', 'Fluxo de Caixa'); insert into Disciplinas VALUES('CCC','Gest','40 horas', 'Cadastro, Crdito e Cobrana'); insert into Disciplinas VALUES('EAC','Gest','80 horas', 'Excelncia no Atendimento ao Cliente'); insert into Disciplinas VALUES('CRP','Gest','80 horas', 'Controle e Registro Pessoal'); insert into Disciplinas VALUES('NLT','Gest','40 horas', 'Noes de Legislao Trabalhista'); Commit;
13

-DML Exerccios Cursos Cont. Resposta n 1.

insert into Disciplinas VALUES('INF','Enfe','80 horas', 'Introduo Informtica' ); insert into Disciplinas VALUES('AFH','Enfe','120 horas', 'Anatomia e Fisiologia Humana'); insert into Disciplinas VALUES('DIP','Enfe','80 horas', 'Doenas Infecciosas e Parasitrias); insert into Disciplinas VALUES('EC','Enfe','120 horas', 'Enfermagem Clnica'); insert into Disciplinas VALUES('ESM','Enfe','80 horas', 'Enfermagem em Sade da Mulher'); insert into Disciplinas VALUES('ESC','Enfe','80 horas', 'Enfermagem em Sade da Criana'); Commit;

14

Interactive SQL
DML Exerccios do BD Cursos - Correo Resposta da n 1 insert into Disciplinas values('LP1','Info','180 horas','Linguagem e Tcnica de Programao 1'); insert into Disciplinas values('EST','Info','80 horas','Estatstica'); insert into Disciplinas values('MD1','Info','80 horas','Modelagem de Dados 1'); insert into Disciplinas values('LP2','Info','240 horas','Linguagem e Tcnica de Programao 2'); Resposta da n 2 alter table disciplinas add periodo integer check(periodo in(1,2,3));
Resposta da n 3
update Disciplinas set periodo=1 where iddisciplina='AEG'; update Disciplinas set periodo=1 where iddisciplina='EST'; update Disciplinas set periodo=1 where iddisciplina='LP1'; update Disciplinas set periodo=1 where iddisciplina='OE'; update Disciplinas set periodo=1 where iddisciplina='SI'; update Disciplinas set periodo=1 where iddisciplina='SO'; update Disciplinas set periodo=2 where iddisciplina='LP2'; update Disciplinas set periodo=2 where iddisciplina='MD1';

15

DML Exerccios Cursos

Resposta n 4 insert into insert into insert into insert into insert into insert into insert into insert into Commit; Turmas Turmas Turmas Turmas Turmas Turmas Turmas Turmas VALUES('111-08', 'Manh', 'Info', '2/11/2008', '7/16/2008'); VALUES('131-08', 'Manh', 'Info', '2/11/2008', '7/16/2008'); VALUES('211-08', 'Tarde', 'Info', '2/11/2008', '7/16/2008'); VALUES('231-08', 'Tarde', 'Info', '2/11/2008', '7/16/2008'); VALUES('311-08', 'Noite', 'Info', '2/11/2008', '7/16/2008'); VALUES('331-08', 'Noite', 'Info', '2/11/2008', '7/16/2008'); VALUES('111-08', 'Manh', 'Gest', '2/11/2008', '7/16/2008'); VALUES('131-08', 'Manh', 'Gest', '2/11/2008', '7/16/2008');

16

-DML Exerccios Cursos

Cont. n 4 insert into insert into insert into insert into insert into insert into insert into insert into insert into insert into Commit; Turmas Turmas Turmas Turmas Turmas Turmas Turmas Turmas Turmas Turmas VALUES('211-08', 'Tarde', 'Gest', '2/11/2008', '7/16/2008'); VALUES('231-08', 'Tarde', 'Gest', '2/11/2008', '7/16/2008'); VALUES('311-08', 'Noite', 'Gest', '2/11/2008', '7/16/2008'); VALUES('331-08', 'Noite', 'Gest', '2/11/2008', '7/16/2008'); VALUES('111-08', 'Manh', 'Enfe', '2/11/2008', '7/16/2008'); VALUES('131-08', 'Manh', 'Enfe', '2/11/2008', '7/16/2008'); VALUES('211-08', 'Tarde', 'Enfe', '2/11/2008', '7/16/2008'); VALUES('231-08', 'Tarde', 'Enfe', '2/11/2008', '7/16/2008'); VALUES('311-08', 'Noite', 'Enfe', '2/11/2008', '7/16/2008'); VALUES('331-08', 'Noite', 'Enfe', '2/11/2008', '7/16/2008');

17

Exemplos - No banco de Dados Cursos.GDB: Na tabela Disciplina: - pesquise todas as disciplinas do curso Gesto. select * from disciplinas where (idcurso=Gest');

MySQL SELECT

- pesquise todas as disciplinas do curso Informtica


select * from disciplinas where (idcurso='Info'); - liste todas as disciplinas do curso de Informtica por ordem ascendente. select * from disciplinas where (idcurso='Info') order by iddisciplina ASC; - pesquise todas as disciplina que comecem com a letra S select * from disciplinas where iddisciplina like 'S%'; - pesquise todas as disciplinas que comecem com a letra L, ordenado pelo nome da disciplinas (ordem alfabtica) select * from disciplinas where (iddisciplina like 'L%') order by nomedisc ASC;

Exemplos - No banco de Dados Cursos.GDB - continuao: Na tabela Disciplina: - pesquise todas as disciplinas que comecem com a letra L em ordem descendente select * from disciplinas where (iddisciplina like 'L%') order by nomedisc DESC; - Liste todas as disciplinas que pertenam ao primeiro perodo select * from disciplinas where periodo=1; - Liste todas as disciplinas que pertenam ao 1 perodo do curso de Informtica select * from disciplinas where ((periodo=1) and (idcurso='Info')); - Liste todas as disciplinas que pertenam ao 1 perodo do curso de Gesto ordenada pelo cdigo da disciplina (ascendente) select * from disciplinas where ((periodo=1) and (idcurso='Gest')) order by iddisciplina ASC;

SELECT

SELECT Exerccios:
Na tabela Cursos: - liste todos os cursos cadastrados select * from cursos; - liste da tabela cursos as informaes correspondentes ao cdigo do curso e ao nome do curso, sendo ordenado por este ltimo. select C.idcurso, C.nomecurso from cursos C order by nomecurso ASC; - liste da tabela disciplinas todas as disciplinas de todos os cursos, exibindo o nome da disciplina, o nome do curso e a carga horria da disciplina, sendo ordenada pelo nome do curso. select D.nomedisc, C.nomecurso, D.cargahorariadisc from cursos C, disciplinas D where D.idcurso = C.idcurso order by nomecurso ASC; - liste da tabela cursos o cdigo do curso e o nome do curso e da tabela turmas o cdigo da turma e o turno da turma, devendo ser apresentado apenas as turmas do turno da manh. select C.idcurso, C.nomecurso, T.idturma, T.Turnoturma from cursos C, turmas T where (Upper(turnoturma) ='MANH') order by C.nomecurso ASC;

Вам также может понравиться