Documente Academic
Documente Profesional
Documente Cultură
Comandos Bsicos Caetano Traina Jnior Grupo de Bases de Dados e Imagens Instituto de Cincias Matemticas e de Computao Universidade de So Paulo - So Carlos caetano@icmc.sc.usp.br
GBDI - ICMC - USP
Exerccios
Comandos da DDL
Considerando a definio para a Base de Dados ALUNOS, dada previamente, a) (*) Re-escrever o Script original, para definir todas as restries de integridade; b) (*) Escrever um novo Script, para remover todas as restries de integridade; c) (*) Escrever um novo Script, para reativar todas as restries de integridade; d) Escrever um novo Script, para ativar a verificao de pelo menos 4 condies para os atributos individuais. Entregar apenas os Exerccios marcados com (*)
Comando SELECT
Realiza as consultas em uma base de dados
Sintaxe: SELECT [ ALL | DISTINCT ] <lista de atributos> FROM <lista de Tabelas> [ WHERE <condio> ] [ GROUP BY <Atributo>, ... [ HAVING <condio> ] ] ORDER BY <Lista de atributos> [ ASC | DESC ], ... ]
Comando SELECT
Realiza as consultas em uma base de dados
SELECT A1 FROM R WHERE C1
R ...
C1
F F
A1
B
GBDI - ICMC - USP
Comando SELECT
Realiza as consultas em uma base de dados
SELECT A1 FROM R WHERE C1 GROUP BY A2 HAVING C2
C2
F
C1
A1
R ...
F F
A1+A2
Comando SELECT
Realiza as consultas em uma base de dados
Exemplo: Listar os alunos, disciplinas e notas tiradas em turmas com mais de 10 alunos SELECT A.Nome, T.Sigla Disciplinas, M.Nota FROM Alunos A, Turma T, Matricula M WHERE A.NUSP=M.NUSP AND M.CodigoTurma=T.Codito AND T.NNAlunos>10 ORDER BY A.Nome, T.Sigla;
R
Alunos L A Turma L T Matricula LM
C1
A.NUSP=M.NUSP M.CodigoTurma= T.Codigo T.NNAlunos>10 A.Nome T.Sigla L Disciplinas M.Nota
A1
Comando SELECT
Realiza as consultas em uma base de dados
Exemplo: Listar A mdia das notas das disciplinas em turmas com mais de 10 alunos SELECT T.Sigla Disciplinas, AVG(M.Nota) A1 C2 T.Sigla FROM Turma T, Matricula M L Disciplinas WHERE M.CodigoTurma=T.Codito AND T.NNAlunos >10 GROUP BY T.Sigla AVG(M.Nota) HAVING T.NNAlunos>10;
R
Turma L T Matricula LM
C1
M.CodigoTurma= T.Codigo
A2
T.Sigla ( L Disciplinas ) T.NNAlunos
+A1
AVG(M.Nota)
GBDI - ICMC - USP
Comando SELECT
Realiza as consultas em uma base de dados
O Modelo Relacional um Meta Modelo: capaz de modelar a si mesmo. Assim existem: Tabelas de Tabelas, Tabelas de Atributos, etc. No gerenciador Interbase (e vrios outros), as tabelas do sistemas so filtradas para no serem mostradas no ISQL, mas podem ser acessadas normalmente. Seus nomes comeam com RDB$.
Exemplo: SELECT RDB$Field_Name, RDB$Relation_Name, RDB$Field_Position FROM RDB$Relation_Fields WHERE RDB$Relation_Name NOT LIKE 'RDB$%' ORDER BY RDB$Relation_Name, RDB$Field_Position
Comando SELECT
Lista de tabelas
<Lista de Tabelas> = <joined_table> | <Tabela> <joined_table> = <Tabela> <join-type> JOIN <Tabela> ON <CondioJuno> | ( <joined_table>) <join-type> = { } JOIN
Comando SELECT
Lista de tabelas
<CondioJuno> = { <val> <operator> <val> | <val> [NOT] BETWEEN <val> AND <val> | <val> [NOT] LIKE <val> [ESCAPE <val>] | <val> [NOT] IN ( <val> [ , <val> ] | <select_list>) | <val> IS [NOT] NULL | <val> {[NOT] {= | < | >} | >= | <=} {ALL | SOME | ANY} (<select_list>) | EXISTS ( <select_expr>) | SINGULAR ( <select_expr>) | <val> [NOT] CONTAINING <val> | <val> [NOT] STARTING [WITH] <val> | ( <CondioJuno>) | NOT <CondioJuno> | <CondioJuno> OR <CondioJuno> | <CondioJuno> AND <CondioJuno> }
GBDI - ICMC - USP
Comando SELECT
Lista de tabelas
Exemplo: SELECT D.Sigla, D.Nome, Pre.Sigla FROM Discip D LEFT OUTER JOIN Discip Pre ON D.SiglaPreReq=Pre.Sigla
Formato 2: -- Insere mltiplas tuplas a partir de uma tabela. INSERT INTO <Tabela> [( <Atributo>, ... )] <Comando SELECT>;
Linguagem SQL
Comandos Bsicos Caetano Traina Jnior Grupo de Bases de Dados e Imagens Instituto de Cincias Matemticas e de Computao Universidade de So Paulo - So Carlos caetano@icmc.sc.usp.br
GBDI - ICMC - USP
Esquema Exemplo
create table Professor ( nome varchar(40) NOT NULL, NNfuncional char(7) NOT NULL, grau char(7), idade decimal(2)); create table Aluno ( nome varchar(40) NOT NULL, NUSP decimal(8) NOT NULL, idade decimal(2), cidade varchar(30)) ; create table Discip ( sigla char(7) NOT NULL, nome varchar(25) NOT NULL, siglaprereq char(7), NNcred decimal(2) NOT NULL); create table Turma ( sigla char(7) NOT NULL, numero decimal(2) NOT NULL, codigo decimal(4) NOT NULL, NNalunos decimal(3)); create table Matricula ( codigoturma decimal(4) NOT NULL, NUSP decimal(8) NOT NULL, nota decimal(3)); create table Ministra ( NNfuncprof char(7) NOT NULL, codigo decimal(4) NOT NULL, livro varchar(50));
Esquema Exemplo
Matriculas de alunos
Professor = { Nome, N#Funcional , Grau, Idade} Aluno = { Nome, N#USP , Idade, Cidade} Turma = { Sigla, Nmero , Cdigo , N#Alunos} Discip. = { Sigla , Nome, SiglaPrReq, N#Crd.} Matrcula = { CdigoTurma, N#USP , nota} Ministra = { N#FuncProf, Cdigo , livro}
GBDI - ICMC - USP