11-03

Avatar do usuário
bernardino
Site Admin
Mensagens: 929
Registrado em: 28 Ago 2020, 15:11

11-03

Mensagem por bernardino »

Com base na correção do exercício da aula 25/02:

Crie os scripts SQL de criação das tabelas no banco de dados e anexe o script como resposta a esta atividade.

Código: Selecionar todos

-- Criação da tabela professor
CREATE TABLE professor (
    id_professor SERIAL PRIMARY KEY, -- Usamos SERIAL para auto-incremento, mais apropriado para IDs
    nome VARCHAR(255) NOT NULL -- Definimos o tipo e a restrição NOT NULL para garantir que o nome não seja nulo
);

-- Criação da tabela turma
CREATE TABLE turma (
    id_turma SERIAL PRIMARY KEY, -- ID da turma com auto-incremento
    numero NUMERIC NOT NULL, -- Definimos a restrição NOT NULL para o campo numero
    serie VARCHAR(50) NOT NULL, -- Definimos a restrição NOT NULL para o campo serie
    id_professor INTEGER, -- Definimos como INTEGER para corresponder ao tipo de id_professor
    FOREIGN KEY (id_professor) REFERENCES professor(id_professor) -- Relacionando a turma ao professor
);

-- Criação da tabela aluno
CREATE TABLE aluno (
    id_aluno SERIAL PRIMARY KEY, -- ID do aluno com auto-incremento
    nome VARCHAR(255) NOT NULL, -- Definimos o tipo e a restrição NOT NULL para o nome
    idade NUMERIC NOT NULL, -- Definimos a restrição NOT NULL para o campo idade
    id_turma INTEGER, -- Definimos como INTEGER para corresponder ao tipo de id_turma
    FOREIGN KEY (id_turma) REFERENCES turma(id_turma) -- Relacionando o aluno à turma
);
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 929
Registrado em: 28 Ago 2020, 15:11

Re: 11-03

Mensagem por bernardino »

Analisar com constreint


-- Criação da tabela professor
CREATE TABLE professor (
id_professor SERIAL PRIMARY KEY, -- ID do professor com auto-incremento
nome VARCHAR(255) NOT NULL -- Nome do professor
);

-- Criação da tabela turma
CREATE TABLE turma (
id_turma SERIAL PRIMARY KEY, -- ID da turma com auto-incremento
numero NUMERIC NOT NULL, -- Número da turma
serie VARCHAR(50) NOT NULL, -- Série da turma
id_professor INTEGER, -- ID do professor (relacionamento com professor)
CONSTRAINT fk_professor -- Nome da constraint
FOREIGN KEY (id_professor) REFERENCES professor(id_professor) -- Relacionamento com a tabela professor
);

-- Criação da tabela aluno
CREATE TABLE aluno (
id_aluno SERIAL PRIMARY KEY, -- ID do aluno com auto-incremento
nome VARCHAR(255) NOT NULL, -- Nome do aluno
idade NUMERIC NOT NULL, -- Idade do aluno
id_turma INTEGER, -- ID da turma (relacionamento com turma)
CONSTRAINT fk_turma -- Nome da constraint
FOREIGN KEY (id_turma) REFERENCES turma(id_turma) -- Relacionamento com a tabela turma
);
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Avatar do usuário
bernardino
Site Admin
Mensagens: 929
Registrado em: 28 Ago 2020, 15:11

Re: 11-03

Mensagem por bernardino »

Correção

Código: Selecionar todos

CREATE TABLE professor (
codigo integer primary key,
nome varchar(50)
);

Código: Selecionar todos

CREATE TABLE turma(
codigo integer primary key,
numero varchar(50),
nivel varchar(50),
cod_professor integer,

CONSTRAINT fk_cod_professor FOREIGN KEY (cod_professor)
REFERENCES professor (codigo)
);

Código: Selecionar todos

CREATE TABLE aluno (
codigo integer primary key,
nome varchar(50),
idade integer,
cod_turma integer,

CONSTRAINT fk_cod_turma FOREIGN KEY (cod_turma)
REFERENCES turma (codigo)
);
Outras Operações

Código: Selecionar todos

ALTER TABLE aluno ADD COLUMN dt_nascimento DATE;
ALTER TABLE aluno RENAME COLUMN nome TO nome_completo;
ALTER TABLE aluno DROP COLUMN dt_nascimento RESTRICT;
ALTER TABLE aluno ALTER COLUMN idade SET NOT NULL;
ALTER TABLE aluno RENAME TO cad_alunos;
DROP TABLE professor;
DROP TABLE professor CASCADE;

Código: Selecionar todos

INSERT INTO compras (valor, descricao, dt_compra, status, quantidade)
VALUES (10.50, 'Caderno', '2025-03-18', 'recebido', 5);

INSERT INTO compras (valor, descricao, dt_compra, status, quantidade)
VALUES (2.50, 'Caneta', '2025-03-18', 'enviado', 2);

SELECT * FROM compras;
Algumas pessoas acham que foco significa dizer sim para a coisa em que você vai se focar.
Mas não é nada disso.
Significa dizer não às centenas de outras boas ideias que existem.
Você precisa selecionar cuidadosamente.”

Steve Jobs
Responder