Prévia do material em texto
/* Modelagem básica - curso
ENTIDADE=TABELA
CAMPOS=ATRIBUTOS */
CLIENTE
NOME - CARACTER(30)
CPF - NUMERO(11)
EMAIL - CARACTER(30)
TELEFONE - CARACTER(30)
ENDERECO - CARACTER(100)
SEXO - CARACTER(1)
/* Processos de modelagem */
/* FASE 01 E 02 - AD ADM DE DADOS */
MODELAGEM CONCEITUAL - RASCUNHO
MODELAM LÓGICA - QUALQUER PROGRAMA DE MODELAGEM
/*FASE 03 - DBA / AD */
MODELAGEM FÍSICA - SCRIPT DE BANCO
/* INICIANDO A MODELAGEM FÍSICA*/
/* CRIANDO BANCO DE DADOS */
/* CREATE DATABASE EXEMPLO */
CREATE DATABASE PROJETO;
/* CONECTANDO-SE AO BANCO */
USE PROJETO;
/* CRIANDO A TABELA DE CLIENTES */
CREATE TABLE CLIENTE(
NOME VARCHAR(30),
SEXO CHAR(1),
EMAIL VARCHAR(30),
CPF INT(11),
TELEFONE VARCHAR(30),
ENDERECO VARCHAR(100)
);
SELECT * FROM CLIENTE;
/* VERIFICANDO AS TABELAS DO BANCO */
SHOW TABLES;
USE EXEMPLO;
/* DESCOBRINDO(EXIBINDO) COMO É A ESTRUTURA DE UMA TABELA */
DESC CLIENTE;
/* SINTAXE BÁSICA DE INSERÇÃO */
INSERT INTO CIDADE
/* SINTAXE BÁSICA DE INSERÇÃO - INSERT INTO TABELA... */
/* FORMA 01 - OMITINDOEX(CLUINDO)AS COLUNAS */
INSERT INTO CLIENTE VALUES('JOAO','M','JOAO@GMAIL.COM',988638273,'22923110','MAIA
LACERDA - ESTACIO - RIO DE JANEIRO - RJ');
INSERT INTO CLIENTE
VALUES('CELIA','F','CELIA@GMAIL.COM',541521456,'25078869','RIACHUELO - CENTRO - RIO DE
JANEIRO - RJ');
INSERT INTO CLIENTE VALUES('JORGE','M',NULL,885755896,'58748895','OSCAR CURY - BOM
RETIRO - PATOS DE MINAS - MG');
/* FORMA 02 - COLOCANDO AS COLUNAS */
INSERT INTO CLIENTE(NOME,SEXO,ENDERECO,TELEFONE,CPF) VALUES('LILIAN','F','SENADOR
SOARES - TIJUCA - RIO DE JANEIRO - RJ','947785696',887774856);
/* FORMA 03 - INSERT COMPACTO - SOMENTE MYSQL */
INSERT INTO CLIENTE VALUES('ANA','F','AMA@GLOBO.COM',85548962,'548556985','PRES
ANTONIO CARLOS - CENTRO -SAO PAULO - SP'),
('CARLA','F','CARLA@TERATI.COM.BR',7745828,'66587458','SAMUEL SILVA -
CENTRO -BELO HORIZONTE - MG');
INSERT INTO CLIENTE(NOME,SEXO,ENDERECO,TELEFONE,CPF) VALUES('CLARA','F','SENADOR
SOARES - TIJUCA - RIO DE JANEIRO - RJ','883665843',99999999999);
/* FILTRANDO DADOS COM WHERE E LIKE - aula 30/03 */
SELECT NOME, TELEFONE FROM CLIENTE;
/* FILTRANDO */
SELECT NOME, SEXO FROM CLIENTE
WHERE SEXO = 'M';
SELECT NOME, SEXO FROM CLIENTE
WHERE SEXO = 'F';
SELECT NOME, ENDERECO FROM CLIENTE
WHERE ENDERECO = 'RJ';
SELECT NOME, SEXO FROM CLIENTE
WHERE ENDERECO = 'RJ';
/*UTILIZANDO O LIKE */
SELECT NOME, SEXO FROM CLIENTE
WHERE ENDERECO = 'RJ';
/*CARACTER CORINGA % -> QUALQUER COISA*/
SELECT NOME, SEXO FROM CLIENTE
WHERE ENDERECO = '%RJ';
SELECT NOME, SEXO, ENDERECO FROM CLIENTE
WHERE ENDERECO = '%RJ';
/*RESOLVENDO O EXERCÍCIO */
CREATE DATABASE LIVRARIA;
CREATE TABLE LIVROS(
LIVRO VARCHAR(100),
AUTOR VARCHAR(100),
SEXO CHAR(1),
PAGINAS INT(5),
EDITORA VARCHAR(30),
VALOR FLOAT(10,2),
UF CHAR(2),
ANO INT(4)
);
INSERT INTO LIVROS VALUES('Cavaleiro Real', 'Ana Claudia', 'f', 465, 'Atlas', 49.9, 'RJ', 2009);
INSERT INTO LIVROS VALUES('SQL para leigos', 'João Nunes', 'm', 459, 'Addison', 98.0, 'SP',
2018);
INSERT INTO LIVROS VALUES('Receitas Caseiras', 'Celia Tavares', 'f', 210, 'Atlas', 45.0, 'RJ',
2008);
INSERT INTO LIVROS VALUES('Pessoas Efetivas', 'Eduardo Santos', 'm', 390, 'Beta', 78.99, 'RJ',
2018);
INSERT INTO LIVROS VALUES('Habitos Saudáveis', 'Eduardo Santos', 'm', 630, 'Beta', 150.98,
'RJ', 2019);
INSERT INTO LIVROS VALUES('A casa Marrom', 'Hermes Macedo', 'm', 250, 'Bubba', 60.0, 'MG',
2016);
INSERT INTO LIVROS VALUES('Estacio Querido', 'Geraldo Francisco', 'm', 310, 'Insignia', 100.0,
'ES', 2015);
INSERT INTO LIVROS VALUES('Pra sempre amigas', 'Leda Silva', 'f', 510, 'Insignia', 78.98, 'ES',
2011);
INSERT INTO LIVROS VALUES('Copas Inesqueciveis', 'Marco Alcantara', 'm', 200, 'Larson',
130.98, 'RJ', 2018);
INSERT INTO LIVROS VALUES('O poder da mente', 'Clara Mafra', 'f', 120, 'Continental', 56.58,
'SP', 2017);
/*1 - TRAZER TODOS OS DADOS*/
SELECT * FROM LIVROS;
/*2 - TRAZER O NOME DO LIVRO E O NOME DA EDITORA*/
SELECT LIVRO, EDITORA
FROM LIVROS;
/*3 - TRAZER O NOME DO LIVRO E A UF DOS LIVROS PUBLICADOS POR AUTORES DO SEXO
MASCULINO */
SELECT LIVRO, UF
FROM LIVROS
WHERE SEXO = 'M';
SELECT AUTOR, SEXO, LIVRO, UF
FROM LIVROS
WHERE SEXO = 'M';
/*4 - TRAZER O NOME DO LIVRO E O NÚMERO DE PÁGINAS DOS LIVROS PUBLICADOS POR
AUTORES DO SEXO FEMININO */
SELECT LIVRO, PAGINAS
FROM LIVROS
WHERE SEXO = 'F';
SELECT AUTOR, LIVRO, PAGINAS
FROM LIVROS
WHERE SEXO = 'F';
/*5 - TRAZER OS VALORES DOS LIVROS DAS EDITORAS DE SÃO PAULO */
SELECT LIVRO, VALOR
FROM LIVROS
WHERE UF = 'SP';
SELECT UF, LIVRO, VALOR
FROM LIVROS
WHERE UF = 'SP';
/*6 - TRAZER OS DADOS DOS AUTORES DO SEXO MASCULINO QUE TIVERAM LIVROS
PUBLICADOS POR SÃO PAULO OU RIO DE JANEIRO (QUESTÃO DESAFIO)*/
SELECT AUTOR, SEXO, UF
FROM LIVROS
WHERE SEXO = 'M'
AND UF ='SP'
OR UF = 'RJ';
SELECT AUTOR, SEXO, UF
FROM LIVROS
WHERE SEXO = 'M'
AND UF ='SP'
AND UF = 'RJ';
/* OPERADORES LÓGICOS
OR -> PARA QUE A SAIDA DA QUERY SEJA VERDADEIRA, BASTA QUE APENAS UMA CONDIÇÃO
SEJA VERDADEIRA.
AND -> PARA QUE A SAIDA SEJA VERDADEIRA TODAS AS CONDIÇÕES PRECISAM SER
VERDADEIRAS.
*/
/* OR - OU */
SELECT * FROM CLIENTE;
SELECT NOME, SEXO, ENDERECO FROM CLIENTE
WHERE
SEXO = 'M' OR ENDERECO LIKE '%RJ';
SELECT NOME, SEXO, ENDERECO FROM CLIENTE
WHERE
SEXO = 'F' OR ENDERECO LIKE '%ESTACIO';
/* AND - E */
SELECT NOME, SEXO, ENDERECO FROM CLIENTE
WHERE
SEXO = 'M' AND ENDERECO LIKE '%RJ';
SELECT NOME, SEXO, ENDERECO FROM CLIENTE
WHERE
SEXO = 'F' AND ENDERECO LIKE '%ESTACIO';
/* COUNT(*), GROUP BY, PERFORMANCE COM OPERADORES LOGICOS */
/* CONTANDO OS REGISTROS DE UMA TABELA */
SELECT COUNT(*) FROM CLIENTE;
/*MELHOR FORMA DE APRESENTAR*/
SELECT COUNT(*) AS "Quantidade de registros da tab. cliente"
FROM CLIENTE;
SELECT COUNT(*)
FROM CLIENTE;
/* OPERADOR GROUP BY */
SELECT SEXO, COUNT(*)
FROM CLIENTE
GROUP BY SEXO;
/* PERFORMANCE EM OPERADORES LOGICOS */
/* 1 MILHAO DE REGISTROS
PARA CONTAR
SELECT COUNT(*) FROM CLIENTE;
SELECT SEXO, COUNT(*) FROM CLIENTE
GROUP BY SEXO;
SELECT CIDADE, COUNT(*) FROM CLIENTE
GROUP BY CIDADE;
CONDICAO
SEXO = F
CIDADE = RIO DE JANEIRO
SITUACAO - TRATANDO COM OU / OR
70% MULHERES = SEXO = F
30% MORA NO RIO DE JANEIRO
SELECT NOME, SEXO, ENDERECO
FROM CLIENTE
WHERE SEXO = 'F'
OR CIDADE = 'RIO DE JANEIRO';
SITUACAO - TRATANDO COM E / AND
70% MULHERES = SEXO = F
30% MORA NO RIO DE JANEIRO
SELECT NOME, SEXO, ENDERECO
FROM CLIENTE
WHERE CIDADE = 'RIO DE JANEIRO'
AND SEXO = 'F';
/*Explicações*/
/*CONSULTANDO A TABELA */
SELECT * FROM LIVROS;
/* ACESSAR A DATABASE*/
/*VERIFICANDO OS BANCOS EXISTENTES*/
SHOW DATABASES;
/*ACESSANDO O BANCO*/
USE PROJETO OU USE LIVRARIA;
/*VERIFICANDO A TABELA */
SHOW TABLES;
/*VER O BANCO QUE ESTÁ CONECTADO */
STATUS
/* ALTERANDO OS CAMPOS NA TABELA UPDATE PRODUTOS SET NOME = 'ÁGUA MINERAL'
WHERE CODIGO = 8
UPDATE PRODUTOS SET NOME = 'FILE DE FRANGO', PRECO = 8.7 WHERE CODIGO = 7 -
ALTERANDO MAIS DE UM CAMPO
UPDATE PRODUTOS SET PRECO = PRECO + 1 WHERE CODIGO IN (6, 7, 8) - ALTERANDO TRÊS
VALORES AUMENTANDO EM 1 REAL
*/
/* EXERCÍCIO 14 e 15/04
CREATE DATABASE DB_SENAI
USE DB_SENAI
CREATE TABLE CLIENTES
(
CODIGO INT,
NOME VARCHAR(100)
)
ALTER TABLE CLIENTES ADDEMAIL VARCHAR(50)
ALTER TABLE CLIENTES DROP EMAIL
ALTER TABLE CLIENTES MODIFY NOME VARCHAR(200)
DROP TABLE CLIENTES
DROP DATABASE DB_SENAI
CREATE DATABASE DB_SENAI
CREATE TABLE PRODUTOS
(
CODIGO INT,
NOME VARCHAR(100),
PRECO DECIMAL(10,2)
)
INSERT INTO PRODUTOS (CODIGO, NOME, PRECO) VALUES(1, 'CAFÉ', 3.9)
SELECT * FROM PRODUTOS
INSERT INTO PRODUTOS (CODIGO, NOME) VALUES(2, 'BATATA')
SELECT * FROM PRODUTOS
INSERT INTO PRODUTOS VALUES(3, 'ARROZ', 4.1)
INSERT INTO PRODUTOS VALUES(4, 'AÇUCAR', 2.8)
SELECT * FROM PRODUTOS
INSERT INTO PRODUTOS VALUES(5, 'MACARRÃO', 1.7)
INSERT INTO PRODUTOS VALUES(6, 'CARNE', 13.75)
INSERT INTO PRODUTOS VALUES(7, 'FRANGO', 9.29)
INSERT INTO PRODUTOS VALUES(8, 'ÁGUA', 5.6)
INSERT INTO PRODUTOS VALUES(9, 'DETERGENTE', 1.29)
INSERT INTO PRODUTOS VALUES(10, 'SABÃO EM PÓ', 2.7)
INSERT INTO PRODUTOS VALUES(11, 'SAL', 0.95)
INSERT INTO PRODUTOS VALUES(12, 'BALDE', 7.8)
INSERT INTO PRODUTOS VALUES(13, 'REFRIGERANTE', 2.55)
INSERT INTO PRODUTOS VALUES(14, 'SUCO 200ML', 1.0)
INSERT INTO PRODUTOS VALUES(15, 'PÃO', 6.0)
INSERT INTO PRODUTOS VALUES(16, 'BACON', 7.3)
INSERT INTO PRODUTOS VALUES(17, 'CALABRESA', 8.75)
INSERT INTO PRODUTOS VALUES(18, 'VASSOURA', 5.0)
INSERT INTO PRODUTOS VALUES(19, 'LEITE EM PÓ', 2.99)
INSERT INTO PRODUTOS VALUES(20, 'CERVEJA', 2.0)
SELECT * FROM PRODUTOS
UPDATE PRODUTOS SET NOME = 'ÁGUA MINERAL' WHERE CODIGO = 8
SELECT * FROM PRODUTOS
UPDATE PRODUTOS SET NOME = 'FILÉ DE FRANGO', PRECO = 8.7 WHERE CODIGO = 7
SELECT * FROM PRODUTOS
UPDATE PRODUTOS SET PRECO = PRECO + 1 WHERE CODIGO IN (6, 7, 8)
SELECT * FROM PRODUTOS
USE DB_SENAI
DELETE FROM PRODUTOS WHERE CODIGO = 5
SELECT * FROM PRODUTOS
DELETE FROM PRODUTOS WHERE CODIGO IN (6, 7, 8)
DELETE FROM PRODUTOS WHERE PRECO <= 5.1
DELETE FROM PRODUTOS WHERE PRECO IS NULL
SELECT * FROM PRODUTOS
SELECT NOME, PRECO FROM PRODUTOS
SELECT NOME, PRECO FROM PRODUTOS WHERE CODIGO = 15
SELECT NOME, PRECO FROM PRODUTOS WHERE CODIGO IN (15, 17)
SELECT NOME, PRECO FROM PRODUTOS WHERE CODIGO NOT IN (15, 17, 99)
SELECT CODIGO, NOME PRECO FROM PRODUTOS WHERE PRECO BETWEEN 3.7 AND 6.7
SELECT CODIGO, NOME, PRECO FROM PRODUTOS WHERE NOME LIKE 'PÃO'
SELECT CODIGO, NOME, PRECO FROM PRODUTOS WHERE NOME LIKE 'BA%'
SELECT CODIGO, NOME, PRECO FROM PRODUTOS WHERE NOME LIKE '%E'
SELECT CODIGO, NOME, PRECO FROM PRODUTOS WHERE NOME LIKE '%A%'
SELECT CODIGO, NOME, PRECO FROM PRODUTOS WHERE NOME LIKE '%AL%'