Comandos para criar uma entidade empresa no MySQL
create database empresa;
CREATE TABLE empresa.departamento ( NOME VARCHAR(15) NOT NULL, NUMERO INTEGER NOT NULL, PRIMARY KEY (NUMERO) );
CREATE TABLE empresa.locais_depto ( numero INTEGER NOT NULL, LOCAL CHAR(50) NOT NULL, PRIMARY KEY (numero, local), FOREIGN KEY (numero) REFERENCES departamento(numero) ON DELETE CASCADE );
CREATE TABLE empresa.funcionario ( NOME VARCHAR(15) NOT NULL, CPF char(15) NOT NULL, DATANASC DATE, ENDERECO VARCHAR(30), SEXO CHAR, NDEP INTEGER NOT NULL, PRIMARY KEY (CPF), FOREIGN KEY (NDEP) REFERENCES departamento(numero) );
CREATE TABLE empresa.projeto ( NOME VARCHAR(40) NOT NULL, NUMERO INTEGER NOT NULL, PRIMARY KEY (NUMERO) );
CREATE TABLE empresa.dependente ( NOME VARCHAR(15) NOT NULL, CPF_Func CHAR(15) NOT NULL, DATANASC DATE, SEXO CHAR, PRIMARY KEY (CPF_Func, NOME), FOREIGN KEY (CPF_Func) REFERENCES funcionario(CPF) ON DELETE CASCADE );
CREATE TABLE empresa.trabalha_em ( CPF_FUNC char(15), NPROJ INTEGER, PRIMARY KEY (CPF_FUNC, NPROJ), FOREIGN KEY (CPF_FUNC) REFERENCES funcionario(CPF), FOREIGN KEY (NPROJ) REFERENCES projeto(numero) );
use empresa;
insert into departamento(nome, numero) values('Vendas', 1); insert into departamento(nome, numero) values('Marketing', 2); insert into departamento(nome, numero) values('Producao', 3); insert into departamento(nome, numero) values('RH', 4);
insert into locais_depto(numero, local) values(1, 'Predio 1 - 5 andar - Sala2'); insert into locais_depto(numero, local) values(1, 'Predio 3 - 3 andar - Sala3'); insert into locais_depto(numero, local) values(2, 'Predio 2 - 1 andar - Sala5'); insert into locais_depto(numero, local) values(3, 'Bloco C - 3 andar - Sala25'); insert into locais_depto(numero, local) values(3, 'Bloco C - 2 andar - Sala1');