(ANSI: INSERT, UPDATE, DELETE, MERGE)
INSERT em contexto escolarCaso: Uma escola deseja registrar seus alunos em um banco de dados.
-- CREATE
DROP TABLE ALUNOS PURGE;
CREATE TABLE ALUNOS (
id NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY PRIMARY KEY,
nome VARCHAR2(100) NOT NULL,
email VARCHAR2(120) UNIQUE
);
INSERT ALL em contexto acadêmicoCaso: A secretaria vai cadastrar vários alunos de uma vez.
-- CREATE
DROP TABLE ALUNOS PURGE;
CREATE TABLE ALUNOS (
id NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY PRIMARY KEY,
nome VARCHAR2(100) NOT NULL,
email VARCHAR2(120) UNIQUE
);
UPDATE em contexto empresarialCaso: Uma empresa precisa reajustar o salário de um funcionário.
-- CREATE
DROP TABLE FUNCIONARIOS PURGE;
CREATE TABLE FUNCIONARIOS (
id NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY PRIMARY KEY,
nome VARCHAR2(100) NOT NULL,
salario NUMBER(12,2) NOT NULL CHECK (salario >= 0),
departamento_id NUMBER
);
-- DML: inserindo funcionário
INSERT INTO FUNCIONARIOS (nome, salario, departamento_id)
VALUES ('João', 5000, 10);
UPDATE em lote no RHCaso: O RH vai dar aumento de 8% apenas para funcionários do departamento 20.
-- CREATE
DROP TABLE FUNCIONARIOS PURGE;
CREATE TABLE FUNCIONARIOS (
id NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY PRIMARY KEY,
nome VARCHAR2(100) NOT NULL,
salario NUMBER(12,2) NOT NULL CHECK (salario >= 0),
departamento_id NUMBER
);
-- DML: inserindo funcionários
INSERT ALL
INTO FUNCIONARIOS (nome, salario, departamento_id) VALUES ('A', 4000, 20)
INTO FUNCIONARIOS (nome, salario, departamento_id) VALUES ('B', 4500, 20)
INTO FUNCIONARIOS (nome, salario, departamento_id) VALUES ('C', 6000, 10)
SELECT 1 FROM dual;