Beruflich Dokumente
Kultur Dokumente
EMPREGADO
cod_empregado: int
cod_depto: int
nome: varchar(50)
idade: int
sexo: char(1)
dt_admissao: datetime
est_civil: char(1)
salario: decimal(10,2)
dependente
cod_empregado: int
cod_dependente: int
nome: varchar(50)
idade: int
sexo: char(1)
1) Eliminar a constraint de chave estrangeira existente na tabela Empregado. Verificar se realmente foi
eliminada.
2) Tentar eliminar a tabela Depto. Foi possvel ? Por qu?
3) Habilitar novamente a constraint desabilitada no exerc. 5. Verificar se realmente foi habilitado.
4) Eliminar a coluna sexo da tabela Dependente.
5) Eliminar a constraint de chave estrangeira da tabela Dependente. Note que agora a tabela Dependente est
sem nenhuma tabela Pai. A ligao com a tabela Empregado no existe mais.
6) Adicionar uma nova constraint de chave estrangeira na tabela Dependente para que ela se ligue novamente
a tabela Empregado.
7) Listar todas as linhas e colunas da Tabela Depto.
8) Listar todas as linhas e colunas da Tabela Empregado.
9) Listar todas as linhas e colunas da Tabela Dependente.
10) Listar nome, idade e salario de todos os empregados.
11) Listar cdigo do empregado, data de admisso e sexo.
12) Listar nome e salrio dos empregados do sexo Masculino, modificando os cabealhos das colunas listadas.
13) Listar nome, sexo, salario, e uma outra coluna que ser o novo salrio do Empregado, calculando-se um
percentual de aumento de 25%, para todos os empregados que recebem um salrio inferior a 950,00.
14) Listar o Nome do Empregado, seu salrio e o maior inteiro mais prximo e o menor inteiro mais prximo
resultante da expresso: ( 400 - salrio / 2 ).
15) Acrescente ao exerccio anterior uma nova coluna que mostre o resultado da expresso: ( salario / 3 ), com
arredondamento de 1 casa decimal.
16) Listar o Nome dos Dependentes e a posio nos nomes em que aparece o primeiro caracter "A".
17) Listar o nome dos empregados casados com Letra Maiscula.
LISTA DE EXERCCIOS
Programao para Banco de Dados - SQL
1) ALTER TABLE EMPREGADO
DROP CONSTRAINT FK_EMPREGADO_DEPTO
SP_HELP EMPREGADO
2) DROP TABLE DEPTO . Foi possvel pois no havia nenhuma ligao entre departamento
e empregado.
8) SELECT *
FROM DEPTO
9) SELECT *
FROM EMPREGADO
10)
SELECT *
FROM DEPENDENTE
13) SELECT NOME 'NOME EMP SEXO M',SALARIO 'SALARIO EMP SEXO M'
FROM EMPREGADO
WHERE SEXO IN('M','m')
LISTA DE EXERCCIOS
Programao para Banco de Dados - SQL
15) SELECT NOME,SALARIO,
CEILING(400-SALARIO/2)'MAIOR INTEIRO MAIS PRXIMO',
FLOOR(400-SALARIO/2)'MENOR INTEIRO MAIS PROXIMO'
FROM EMPREGADO
LISTA DE EXERCCIOS
Programao para Banco de Dados - SQL
CDIGO COMPLETO:
CREATE DATABASE LISTA2a
USE LISTA2a
CREATE TABLE DEPTO(
COD_DEPTO INT NOT NULL,
NOME VARCHAR(50) NOT NULL,
CONSTRAINT PK_DEPTO PRIMARY KEY(COD_DEPTO)
)
CREATE TABLE EMPREGADO(
COD_EMPREGADO INT NOT NULL,
COD_DEPTO INT NOT NULL,
NOME VARCHAR(50),
IDADE INT NOT NULL,
SEXO CHAR(1) NOT NULL CONSTRAINT CK_SEXO CHECK(SEXO IN ('F','f','M','m')),
DT_ADMISSAO DATETIME NOT NULL,
EST_CIVIL CHAR(1),
SALARIO DECIMAL(10,2),
CONSTRAINT PK_EMPREGADO PRIMARY KEY(COD_EMPREGADO),
CONSTRAINT FK_EMPREGADO_DEPTO FOREIGN KEY(COD_DEPTO) REFERENCES DEPTO(COD_DEPTO)
)
CREATE TABLE DEPENDENTE(
COD_DEPENDENTE INT NOT NULL,
COD_EMPREGADO INT NOT NULL,
NOME VARCHAR(50) NOT NULL,
IDADE INT NOT NULL,
SEXO CHAR(1) NOT NULL CONSTRAINT CK_SEXODEP CHECK(SEXO IN ('F','f','M','m')),
CONSTRAINT FK_DEPENDENTE_EMPREGADO FOREIGN KEY(COD_EMPREGADO) REFERENCES
EMPREGADO(COD_EMPREGADO),
CONSTRAINT PK_DEPENDENTE PRIMARY KEY(COD_DEPENDENTE,COD_EMPREGADO)
)
ALTER TABLE EMPREGADO DROP CONSTRAINT FK_EMPREGADO_DEPTO
DROP TABLE DEPTO
ALTER TABLE EMPREGADO ADD
CONSTRAINT FK_EMPREGADO_DEPTO FOREIGN KEY(COD_DEPTO) REFERENCES DEPTO(COD_DEPTO)
LISTA DE EXERCCIOS
Programao para Banco de Dados - SQL
ALTER TABLE DEPENDENTE DROP CONSTRAINT CK_SEXODEP
ALTER TABLE DEPENDENTE DROP COLUMN SEXO
ALTER TABLE DEPENDENTE DROP CONSTRAINT FK_DEPENDENTE_EMPREGADO
ALTER TABLE DEPENDENTE ADD CONSTRAINT FK_DEPENDENTE_EMPREGADO
FOREIGN KEY(COD_EMPREGADO)REFERENCES EMPREGADO(COD_EMPREGADO)
SELECT COD_EMPREGADO, DT_ADMISSAO, SEXO
FROM EMPREGADO
SELECT NOME 'NOME EMP SEXO M',SALARIO 'SALARIO EMP SEXO M'
FROM EMPREGADO
WHERE SEXO IN('M','m')
SELECT NOME,SEXO,SALARIO,SALARIO*0.25+SALARIO 'SALARIO COM ACRESCIMO DE 25%'
FROM EMPREGADO
WHERE SALARIO<950.00
SELECT NOME,SALARIO,CEILING(400-SALARIO/2)'MAIOR INTEIRO MAIS PRXIMO',
FLOOR(400-SALARIO/2)'MENOR INTEIRO MAIS PROXIMO',
ROUND(SALARIO/3,1)'ARRENDONDAMENTO DE 1 CASA DECIMAL'
FROM EMPREGADO
SELECT NOME,PATINDEX('%A%',NOME)'PRIMEIRO CARACTER A'
FROM DEPENDENTE
SELECT UPPER(NOME)'NOME DE EMPREGADO CASADO'
FROM EMPREGADO
WHERE EST_CIVIL IN('C')
SELECT * FROM EMPREGADO