Guia Completo de Comandos SQL e Procedures

Classificado em Tecnologia

Escrito em em português com um tamanho de 11 KB

DDL – Linguagem de Definição de Dados – define, altera e remove tabela

Exemplos:

DEFINE – CREATE TABLE nome_tabela

DEFINE NOVA COLUNA NA TABELA – CREATE INDEX nome_tabela_Cor

ALTERA – ALTER TABLE nome_tabela

ALTERA NOVA COLUNA NA TABELA – ALTER INDEX nome_tabela_Cor

REMOVE – DROP TABLE nome_tabela

REMOVE NOVA COLUNA NA TABELA – DROP INDEX nome_tabela_Cor

DML – Linguagem de Manipulação de Dados – insere, remove, atualiza e consulta dados armazenados nesta tabela.

1 - Consultar nome e salário de todos os gerentes cujo nome se inicia com 'MAR'

SELECT GeNome, GeSalario FROM Gerente

WHERE GeNome LIKE 'MAR%'

2 – Consultar nome e fone de gerentes entre 1000 e 2000

SELECT GeNome, GeFone FROM Gerente

WHERE GeSalario BETWEEN 1000 AND 2000

3 – Consultar nome do gerente com maior salário

SELECT GeNome FROM Gerente

WHERE GeSalario = (SELECT MAX(GeSalario) FROM Gerente) ou MIN se for menor

4 – Soma de salário de todos os gerentes

SELECT SUM(GeSalario) AS Somatoria

FROM Gerente

5 – Consultar a quantidade de gerentes cadastrados

SELECT COUNT(*) FROM Gerente

6 – Consultar a média salarial de todos os gerentes cadastrados

SELECT AVG(GeSalario) AS MediaSalarial FROM Gerente

7 – Alterar salário do gerente p/ 6500, que possui CPF = 6

UPDATE Gerente SET GeSalario = 6500

WHERE GeCpf = 6

8 – Consultar disciplinas de 40h do curso de SI

SELECT * FROM Disciplina, Curso

WHERE CurNumero = DisCurNumero AND CurNome = 'SI' AND DisCargaHoraria = 40

AVG - Obtém o valor médio de uma coluna

SELECT AVG(GerenteSalario) AS mediaSalarial

COUNT - Obtém a soma da quantidade de linhas analisadas

SELECT COUNT(*)

MAX - Obtém o maior valor de uma coluna

SELECT MAX(GerenteSalario)

MIN - Obtém o menor valor de uma coluna

SELECT MIN(GerenteSalario)

SUM - Obtém a soma de valores de uma coluna

SELECT SUM(GerenteSalario) AS Somatoria

GROUP BY - Agrupamento de resultados de 2 tabelas neste caso

GROUP BY CurNome

ORDER BY - Estabelece a ordenação lógica da tabela de resultados

ORDER BY DisPreço ASC CRESCENTE ou DESC DECRESCENTE

DCL – Linguagem de Controle de Dados - Incluir comandos para se trabalhar em ambiente multiusuário, permitindo estabelecer níveis de segurança e manipular transações.

INSERE FUNCIONÁRIO

SET TERM!!;

CREATE PROCEDURE InserirFuncionario(FuNumero INTEGER, FunNome VARCHAR(40), FunSalario FLOAT, FunSetCodigo INTEGER)

AS

            DECLARE VARIABLE ValidaFuncionario INTEGER;

            DECLARE VARIABLE ValidaSetor INTEGER;

            BEGIN

  SELECT FunNumero FROM Funcionario WHERE FunNumero = :FunNumero INTO ValidaFuncionario;

  SELECT SetCodigo FROM Setor WHERE SetCodigo = :FunSetCodigo INTO ValidaSetor;

   IF(ValidaFuncionario IS NULL) AND (ValidaSetor IS NOT NULL) THEN

            INSERT INTO Funcionario(FunNumero, FunNome, FunSalario, FunSetCodigo)

                        VALUES(:FunNumero, :FunNome, :FunSalario, :FunSetCodigo)

ELSE

            IF(ValidaFuncionario IS NOT NULL) AND (ValidaSetor IS NULL) THEN

                        EXCEPTION MSG01; // Funcionário existe e setor não existe

            ELSE

                        IF(ValidaFuncionario IS NOT NULL) THEN

                        EXCEPTION MSG02; // Funcionário existe

                        IF(ValidaSetor IS NULL) THEN

                        EXCEPTION MSG03; // Setor inexistente

END !!

SET TERM;!!

INSERE SETOR

SET TERM!!;

CREATE PROCEDURE InsereSetor(SetCodigo INTEGER, SetNome VARCHAR(40), SetSigla VARCHAR(5), SetRamal INTEGER)

AS

  DECLARE VARIABLE ValidaSetor INTEGER;

  BEGIN

  SELECT SetCodigo FROM Setor WHERE SetCodigo = :SetCodigo INTO ValidaSetor;

            IF(ValidaSetor IS NULL) THEN

            INSERT INTO Setor(SetCodigo, SetNome, SetSigla, SetRamal)
                        VALUES(:SetCodigo, :SetNome, :SetSigla, :SetRamal)

            ELSE

                        EXCEPTION MSG01; // Setor já existe

END!!

SET TERM;!!

ALTERA FUNCIONÁRIO

CREATE PROCEDURE AlteraFuncionario(FunNumero INTEGER, FunNome VARCHAR(40), FunSalario FLOAT, FunSetCodigo INTEGER)

AS

 DECLARE VARIABLE ValidaFuncionario INTEGER;

 DECLARE VARIABLE ValidaSetor INTEGER;

            BEGIN

    SELECT FunNumero FROM Funcionario WHERE FunNumero = :FunNumero INTO ValidaFuncionario;

    SELECT SetCodigo FROM Setor WHERE SetCodigo = :FunSetCodigo INTO ValidaSetor;

      IF(ValidaSetor IS NULL) THEN

            EXCEPTION MSG01; Setor inexistente

      IF(ValidaFuncionario IS NOT NULL) THEN

            UPDATE Funcionario SET

            FunNome = :FunNome,

            FunSalario = :FunSalario,

            FunSetCodigo = :FunSetCodigo

            WHERE FunNumero = :FunNumero;

    ELSE   EXCEPTION MSG02; // Funcionário ñ existe  

ALTERA SETOR

CREATE PROCEDURE AlteraSetor(SetCodigo INTEGER, SetNome VARCHAR(40), SetSigla VARCHAR(5), SetRamal INTEGER)

AS DECLARE VARIABLE ValidaSetor INTEGER;

BEGIN

  SELECT SetCodigo FROM Setor WHERE SetCodigo = :SetCodigo INTO ValidaSetor;

   IF(ValidaSetor IS NOT NULL) THEN

UPDATE Setor SET

        SetNome = :SetNome,

        SetSigla = :SetSigla,

        SetRamal = :SetRamal

       WHERE SetCodigo = :SetCodigo;

   ELSE  EXCEPTION MSG02; // Setor inexistente  

REMOVE FUNCIONÁRIO

CREATE PROCEDURE RemoveFunNumero(FunNumero INTEGER)

AS   DECLARE VARIABLE ValidaFuncionario INTEGER;

  BEGIN

SELECT FunNumero FROM Funcionario WHERE FunNumero = :FunNumero INTO ValidaFuncionario;

IF(ValidaFuncionario IS NOT NULL) THEN

DELETE FROM Funcionario

WHERE FunNumero = :FunNumero;

   ELSE  EXCEPTION MSG08; // Funcionário não existe

REMOVE SETOR

CREATE PROCEDURE RemoveSetNumero(SetCodigo INTEGER)

AS   DECLARE VARIABLE ValidaSetor INTEGER;

  BEGIN

SELECT SetCodigo FROM Setor WHERE SetCodigo = :SetCodigo INTO ValidaSetor;

IF(ValidaFuncionario IS NOT NULL) THEN

DELETE FROM Setor

WHERE SetCodigo = :SetCodigo;

   ELSE  EXCEPTION MSG08;// Setor não existe

CONSULTA SETOR POR CÓDIGO

CREATE PROCEDURE ConsultaSetorCodigo(SetCodigo INTEGER)

 RETURNS(SetNome VARCHAR(40), SetSigla VARCHAR(8))

AS

 DECLARE VARIABLE ValidaSetor INTEGER;

 BEGIN

  SELECT SetCodigo FROM Setor WHERE SetCodigo = :SetCodigo INTO ValidaSetor;

   IF(ValidaSetor IS NOT NULL) THEN

  FOR

     BEGIN

       SELECT SetNome, SetSigla FROM Setor WHERE SetCodigo = :SetCodigo

            INTO SetNome, SetSigla

            DO

                        SUSPEND;

            END

  ELSE EXCEPTION MSG01; // Setor não encontrado

CONSULTA SETOR POR FUNCIONÁRIO

CREATE PROCEDURE ConsultaFunNumero(FunNumero INTEGER)

  RETURNS (FunNome, FunSalario, FunSetCodigo)

AS

  DECLARE VARIABLE ValidaFuncionario INTEGER;

  BEGIN

  SELECT FunNumero FROM Funcionario WHERE FunNumero = :FunNumero INTO ValidaFuncionario;

  IF(ValidaFuncionario IS NOT NULL) THEN

  FOR

     BEGIN

SELECT FunNome, FunSalario, FunSetCodigo FROM Funcionario WHERE FunNumero = :FunNumero

  INTO FunNome, FunSalario, FunSetCodigo

  DO

            SUSPEND;

END

  ELSE EXCEPTION MSG01; // Funcionário não encontrado

Entradas relacionadas: