Skip to content

Instantly share code, notes, and snippets.

@erickpereira
Last active May 17, 2023 01:39
Show Gist options
  • Select an option

  • Save erickpereira/77cc6993ee5218dc889cc2ac8faacf22 to your computer and use it in GitHub Desktop.

Select an option

Save erickpereira/77cc6993ee5218dc889cc2ac8faacf22 to your computer and use it in GitHub Desktop.
Comandos SQL da aula de Banco de dados 2 (revisão de Banco de Dados 1)
# criar o banco de dados de nome 'estudos'
create database estudos;
# criar as tabelas
create table usuarios(cpf varchar(11), nome varchar(100), status bool);
create table pessoas(cpf varchar(11), nome varchar(100), status bool);
create table contato(email varchar(50), telefone varchar(15));
# inserir unitariamente um registro na tabela usuarios
insert into usuarios (cpf, nome, status) values ("12345678901", "Jose da Silva", true),
insert into usuarios (cpf, nome, status) values ("23456789012", "Joao de Oliveira", true),
insert into usuarios (cpf, nome, status) values ("34567890123", "Marqui", false);
# inserir unitariamente um registro na tabela pessoas
insert into pessoas (cpf, nome, status) values ("12345678901", "Jose da Silva", true);
insert into pessoas (cpf, nome, status) values ("23456789012", "Joao de Oliveira", true);
insert into pessoas (cpf, nome, status) values ("34567890123", "Marquito Pereira", false);
# inserir unitariamente um registro na tabela contato
insert into contato (email, telefone) values ("[email protected]", "99999-4444");
insert into contato (email, telefone) values ("[email protected]", "99999-5555");
insert into contato (email, telefone) values ("[email protected]", "99999-6666");
# Inserir vários registros na tabela de pessoas
insert into pessoas (cpf, nome, status)
values ("11111111111", "Fulano", false),
("22222222222", "Beltrano", true),
("33333333333", "Ciclano", true);
# apagar todos os registros da tabela de pessoas onde o nome começa com 'Jo'
delete from pessoas where nome like "Jo%";
# apagar todos os registros da tabela de pessoas
delete from pessoas;
# buscar todas as pessoas e mostrar todos os atributos
select * from pessoas;
# atualizar todas as pessoas existentes com o status igual a 'true'
update pessoas set status = true;
# atualizar com status igual a 'false' para todas as pessoas com o nome igual a 'Fulano'
update pessoas set status = false where nome = "Fulano";
# buscar todos os atributos das pessoas que tem o status igual a 'false'
select * from pessoas where status = false;
# atribuir o atributo 'cpf' como chave primária para a tabela 'pessoas'
alter table pessoas add primary key(cpf);
# atribuir o atributo 'cpf' como chave primária para a tabela 'pessoas' utilizando uma constraint de nome 'pk_usuarios'
alter table usuarios add constraint pk_usuarios primary key(cpf);
# remover a chave primária da tabela pessoas
alter table pessoas drop primary key;
# remover a chave primária da tabela usuarios
alter table usuarios drop primary key;
# Remover a tabela pessoas
drop table pessoas;
# Remover a tabela pessoas e todos os relacionamentos e chaves que tem lição com a tabela pessoas
drop table pessoas cascade;
# Criar a tabela pessoas já com o atributo 'cpf' definido como chave primária
create table pessoas (cpf varchar(11), nome varchar(100), status bool,
constraint pk_pessoas primary key (cpf));
# Tentativa de inserir dados com o mesmo CPF
# O primeiro registro vai ser inserido, mas ao executar o segundo, vai acontecer erro
# de duplicação para a chave primária (Duplicate entry '11111111111' for key 'pessoas.PRIMARY')
# Vai inserir
insert into pessoas (cpf, nome, status) values ("11111111111", "Faustão", true);
# Vai dar erro!
insert into pessoas (cpf, nome, status) values ("11111111111", "Silvio Santos", true);
# Para adicionar uma chave estrangeira (FK - Foreign Key), primeiro é necessário adicionar uma coluna em contato
# do mesmo tipo da coluna de chave primária na tabela correspondente. No caso, a tabela correspondente é 'pessoas'
# e a chave primária é 'cpf'
# Adicionando a coluna pessoa_cpf na tabela contato
alter table contato add column pessoa_cpf varchar(11);
# Adicionando a chave primária relacionando o atributo pessoa_cpf com o atributo cpf da tabela de pessoas
alter table contato add constraint fk_pessoas foreign key (pessoa_cpf) references pessoas(cpf);
# Adicionar o valor do CPF para preencher a chave estrangeira na tabela de contato
update contato set pessoa_cpf = '11111111111' where email = '[email protected]';
# criando um índice para tabela pessoas para a coluna 'cpf'
create index pessoa_cpf on estudos.pessoas(cpf);
# Fazer um select e retornar os nomes das pessoas mas retornando o nome em maiúsculo
select cpf, UPPER(nome), status from pessoas;
# Fazer um select e retornar os nomes das pessoas mas retornando o nome em minúsculo
select cpf, LOWER(nome), status from pessoas;
# seleciona o maior cpf
select max(cpf) from pessoas;
# seleciona o menor cpf
select min(cpf) from pessoas;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment