Este documento contém um conjunto de exercícios sobre SQL Server com o objetivo de inserir e consultar dados em tabelas relacionais. As tabelas criadas se referem a entidades como departamentos, disciplinas, professores e suas relações. Os exercícios pedem para recuperar dados específicos dessas tabelas usando queries SQL.
Este documento contém um conjunto de exercícios sobre SQL Server com o objetivo de inserir e consultar dados em tabelas relacionais. As tabelas criadas se referem a entidades como departamentos, disciplinas, professores e suas relações. Os exercícios pedem para recuperar dados específicos dessas tabelas usando queries SQL.
Este documento contém um conjunto de exercícios sobre SQL Server com o objetivo de inserir e consultar dados em tabelas relacionais. As tabelas criadas se referem a entidades como departamentos, disciplinas, professores e suas relações. Os exercícios pedem para recuperar dados específicos dessas tabelas usando queries SQL.
Usar o script abaixo para inserir dados no banco de Dados
IF DB_ID('IMIH') IS NOT NULL BEGIN USE Master DROP DATABASE IMIH END -------------------------------------------------------------------------------------------- CREATE DATABASE IMIH GO -------------------------------------------------------------------------------------------- USE IMIH -------------------------------------------------------------------------------------------- CREATE TABLE Depto (codDepto CHAR(5), nomeDepto VARCHAR(20) PRIMARY KEY (codDepto));
INSERT INTO Titulacao VALUES (1, 'Doutor'); INSERT INTO Titulacao VALUES (2, 'Mestre'); INSERT INTO Titulacao VALUES (3, 'Especialista'); INSERT INTO Titulacao VALUES (4, 'Graduado'); -------------------------------------------------------------------------------------------- CREATE TABLE Professor (codProf CHAR(5), nomeProf VARCHAR(50), codTit INTEGER, codDepto CHAR(5), PRIMARY KEY (codProf), FOREIGN KEY (codTit) REFERENCES Titulacao, FOREIGN KEY (codDepto) REFERENCES Depto);
INSERT INTO Professor VALUES ('Pro01', 'Antunes', 1, 'INF01'); INSERT INTO Professor VALUES ('Pro02', 'Maria dos Santos', 2, 'INF01'); INSERT INTO Professor VALUES ('Pro03', 'Paulo', 3, 'MAT01'); INSERT INTO Professor VALUES ('Pro04', 'Gabriel', 2, 'MAT01'); -------------------------------------------------------------------------------------------- CREATE TABLE ProfTurma (anoSem INTEGER, codDepto CHAR(5), numDisc CHAR(5), siglaTur CHAR(5), codProf CHAR(5), PRIMARY KEY (anoSem, codDepto, numDisc, siglaTur, codProf), FOREIGN KEY (anoSem, codDepto, numDisc, siglaTur) REFERENCES Turma, FOREIGN KEY (codProf) REFERENCES Professor);
INSERT INTO ProfTurma VALUES (20021, 'INF01', 'DIS01', 'TUR01', 'Pro01'); INSERT INTO ProfTurma VALUES (20022, 'INF01', 'DIS01', 'TUR01', 'Pro01'); INSERT INTO ProfTurma VALUES (20021, 'INF01', 'DIS02', 'TUR02', 'Pro02'); INSERT INTO ProfTurma VALUES (20021, 'MAT01', 'DIS01', 'TUR01', 'Pro03'); INSERT INTO ProfTurma VALUES (20021, 'MAT01', 'DIS01', 'TUR01', 'Pro02');
Lista de exerccios de SQL SERVER
1) Obter todos os dados dos professores.
2) Obter o cdigo e o nome dos professores.
3) Obter a capacidade das turmas.
4) Obter os diferentes valores de capacidades de turmas.
5) Obter o nome das disciplinas do depto INF01, desde que tenham mais de 5 crditos.
6) Obter o cdigo do prdio chamado Laboratrios.
7) Obter o nmero da sala e o cdigo do prdio, desde que a sala tenha capacidade superior a 35 lugares.
8) Obter o nome dos professores que tm titulao 1 e que trabalham no depto INF01.
9) Obter o nome dos professores que tm titulao 2 ou que trabalham no depto INF01.
10) Retorne o cdigo e o nome dos professores que possuem Santos no final.
11) Sabendo que cada crdito de disciplina corresponde s 15h aula, retorne o nome da disciplina e o seu nmero de horas-aula.
12) Obtenha os nomes das disciplinas seguidas do nome de seu departamento.
13) Obtenha os nomes dos professores que possuem titulao de Doutor.
14) Obtenha os nomes dos professores que ministraram aulas em 2002/2.
15) Obtenha os nmeros das salas do prdio de nome Laboratrios cuja capacidade seja maior que 30.
16) Obtenha os nomes das disciplinas que foram oferecidas em 2002/1.
17) Obtenha os nmeros das salas do prdio "Laboratrios".
18) Obtenha os nomes dos professores seguidos do nome de seu departamento.
19) Obtenha os cdigos dos professores que no possuem turma em 1999/2.
Lista de exerccios de SQL SERVER
20) Nomes dos departamentos que possuem disciplinas que no apresentam pr-requisito.
21) Obtenha os cdigos dos professores que ministraram aulas em 1999/2 e 2002/2.
22) Obtenha os nomes dos departamentos em que h pelo menos uma disciplina com mais de cinco crditos.
23) Obter os cdigos dos diferentes departamentos que tem turmas no ano-semestre 2002/1
24) Obter os cdigos dos professores que so do departamento de cdigo 'INF01' e que ministraram ao menos uma turma em 20021.
25) Obter os horrios de aula (dia da semana, horainicial e nmero de horas ministradas) do professor "Antunes" em 2002/1.
26) Obter os nomes dos departamentos que tm turmas que, em 2002/1, tm aulas na sala 101 do prdio denominado 'Informtica-Aulas'.
27) Obter os cdigos dos professores com ttulo denominado 'Doutor' que no ministraram aulas em 2001/1.
28) Obter os identificadores das salas (cdigo do prdio e nmero da sala) que, em 2002/1: nas segundas-feiras (dia da semana = 2), tiveram ao menos uma turma do departamento 'Informtica'
29) Nas quartas-feiras (dia da semana = 4), tiveram ao menos uma turma ministrada pelo professor denominado 'Antunes' .
30) Obter o dia da semana, a hora de incio e o nmero de horas de cada horrio de cada turma ministrada por um professor de nome 'Antunes', em 2002/1, na sala nmero 101 do prdio de cdigo 43423.
31) Para cada disciplina que possui pr-requisito, obter o nome da disciplina seguido do nome da disciplina que seu pr-requisito.
32) Obter os nomes das disciplinas que no so pr-requisito.
33) Obter os nomes docentes cuja titulao tem cdigo diferente de 3.
34) Obter os nomes dos depar tamentos que tm turmas que, em 2002/1, tm aulas na sala 101 do prdio denominado ' Informtica-Aulas'.
35) Obter o nome de cada departamento seguido do nome de cada uma de suas disciplinas que possui mais que trs crditos (caso o departamento no tenha disciplinas ou caso o departamento no tenha disciplinas com mais que trs crditos, seu nome deve aparecer seguido de vazio).
36) Obter os nomes dos professores que so do departamento denominado 'Informtica', sejam doutores, e que, em 2002/2, ministraram alguma turma de disciplina do departamento 'Informtica' que tenha mais que trs crditos.
37) Obter o nmero de disciplinas do departamento denominado Informtica. Lista de exerccios de SQL SERVER
38) Obter os nomes das disciplinas do departamento denominado Informtica que tm o maior nmero de crditos dentre as disciplinas deste departamento.
39) Para cada departamento, obter seu nome e o seu nmero de disciplinas. Obter o resultado em ordem descendente de nmero de disciplinas