Mysql - Banco de Dados de Médio de Porte, Toda Estrutura de Defesa (Fechar o Banco de Dados Garantindo a sua Segurança, DBA)) AD _ Administrador De Dados... Projeto Conceitual --> Modelo Lógico --> Modelo Físico Entidade _ Tudo que tem uma representação no Mundo real, onde em banco seria uma tabela... https://www.mysql.com/ 1
Observo Direitinho o Serviço antes de entrar no Mysql 2
Services.msc Irei Criar uma tabela Cliente... Cliente idcliente _ numero (inteiro ou real) int ou double (INT ou double) nome _ texto (varchar(tamanho) ) _ 255 email _ texto (varchar) sexo _ texto (varhcar) valormensalidade _ numero (double) TELEFONE operadora tipo numero 3
#comentario #criar um banco de dados no mysql #Primeiro Banco #Dentro do Banco é a tabela... # a senha do MYSQL _ é coti #Somente os comandos #observar a hora select now(); +---------------------+ now() +---------------------+ 26-04-11 16::33 +---------------------+ 4
#Quem sou (que usuário sou) #NO MYSQL O adm É CHAMADO DE ROOT (DBA) #CUIDADO SELECT USER(); --root@localhost +----------------+ USER() +----------------+ root@localhost +----------------+ #Qualquer tipo de calculo "" _ tituo da resposta select 10 * 20 "multiplicacao 10*20"; +---------------------+ multiplicacao 10*20 +---------------------+ 200 +---------------------+ #Primeiro eu drop para testar (Perigo jamais faça isso) #SOMENTE NA COTI #nao faça em casa jamais em banco de Produção #apago o banco chamado 1 drop database if exists aula1; #cria o banco (aula1) create database if not exists aula1; #Entro no Banco de dados # se Conecta no Banco de Dados use aula1; #Mostra as tabelas que possuo no banco... show tables; 5
# Tabela Cliente (Entidade Cliente) #Com 5 campos... create table cliente( idcliente int primary key, nome varchar (35), email varchar (50), sexo varchar (1), valormensalidade double ); desc cliente; +-----------------+-------------+------+-----+---------+-------+ Field Type Null Key Default Extra +-----------------+-------------+------+-----+---------+-------+ idcliente int(11) NO PRI NULL nome varchar(35) YES NULL email varchar(50) YES NULL sexo varchar(1) YES NULL valormensalidade double YES NULL -----------------+-------------+------+-----+---------+-------+ 6
#irei inserir na tabela 3 valores # sempre aspas simples insert into cliente (email,idcliente,nome,sexo,valormensalidade) values ('porfirio@gmail.com',10,'porfirio','m',200); #ou #Inserindo em uma Ordem Pré-definida insert into cliente values (20,'lu','lu@gmail.com','f',300); insert into cliente values (30,'marcelo','marcelo@gmail.com','m',500); insert into cliente values (40,'garra','garra@gmail.com','m',580); insert into cliente values (50,'sergio','sergio@gmail.com','m',380); #Vamos ver o que acabamos de Inserir... #Mostra todos os dados de Cliente #O COMANDO MAIS UTILIZADO DO MYSQL select * from cliente; mysql> select * from cliente; +--------------+--------------------+------+------------------+ idcliente nome email sexo valormensalidade ---+----------+--------------------+------+------------------+ 10 porfirio porfirio@gmail.com m 200 20 lu lu@gmail.com f 300 30 marcelo marcelo@gmail.com m 500 40 garra garra@gmail.com m 580 50 sergio sergio@gmail.com m 380 +---+----------+--------------------+------+------------------+ 7
#Mostrar os clientes do sexo feminino select * from cliente where sexo='f'; +-----------+------+--------------+------+------------------+ idcliente nome email sexo valormensalidade +-----------+------+--------------+------+------------------+ 20 lu lu@gmail.com f 300 +-----------+------+--------------+------+------------------+ #Mostrar os clientes do sexo Masculino #Mostro os dados do cliente onde o sexo é igual='m' select * from cliente where sexo='m'; idcliente nome email sexo valormensalidade 10 porfirio porfirio@gmail.com m 200 30 marcelo marcelo@gmail.com m 500 40 garra garra@gmail.com m 580 50 sergio sergio@gmail.com m 380 #A quantidade de clientes #Contagem dos DADOS da Tabela select count(*) "quantidade" from cliente; +------------+ quantidade +------------+ 5 +------------+ #limitando a quantidade de Dados select * from cliente limit 2; idcliente nome email sexo valormensalidade 10 porfirio porfirio@gmail.com m 200 20 lu lu@gmail.com f 300 8
#Quero ver somente o nome,sexo do cliente de codigo 30 select nome,sexo from cliente where idcliente=30; +---------+------+ nome sexo +---------+------+ marcelo m +---------+------+ # Ordenando os dados... (Ordenar pelo nome) #ascendente select * from cliente order by nome asc; idcliente nome email sexo valormensalidade 40 garra garra@gmail.com m 580 20 lu lu@gmail.com f 300 30 marcelo marcelo@gmail.com m 500 10 porfirio porfirio@gmail.com m 200 50 sergio sergio@gmail.com m 380 #descendente select * from cliente order by 2 desc; idcliente nome email sexo valormensalidade 50 sergio sergio@gmail.com m 380 10 porfirio porfirio@gmail.com m 200 30 marcelo marcelo@gmail.com m 500 20 lu lu@gmail.com f 300 40 garra garra@gmail.com m 580 9
# Mostrar os clientes os valores da mensalidade da maior para menor # saber os 3 clientes que pagam mais... # OS TRES ALUNOS QUE PAGAM MAIS CARO select * from cliente order by valormensalidade desc limit 3; +-----------+---------+-------------------+------+-------------- idcliente nome email sexo valormensalidade +-----------+---------+-------------------+------+-------------- 40 garra garra@gmail.com m 580 30 marcelo marcelo@gmail.com m 500 50 sergio sergio@gmail.com m 380 +-----------+---------+-------------------+------+-------------- #Buscar os 3 Campos de Maior Mensalidade #Funções de Total _ count, sum, avg (Mais Utilizados) # min e max _ 5 Mais utilizado... # Somar a mensalidade sem Perguntas #Sum,count, avg, min, max select sum(valormensalidade) "soma" from cliente; +------+ soma +------+ 1960 +------+ #Menor mensalidade select min(valormensalidade) "menor" from cliente; +-------+ menor +-------+ 200 +-------+ 10
#Maior Mensalidade select max(valormensalidade) "maior" from cliente; +-------+ maior +-------+ 580 +-------+ # Mostrar a Maior mensalidade do sexo masculino #Total Perguntando _ Agrupar #Total com não total # Total com não total (Group by) #Total (valormensalidade), não total aquilo select max(valormensalidade) "maior", sexo from cliente group by (sexo); +-------+------+ maior sexo +-------+------+ 300 f 580 m +-------+------+ select max(valormensalidade) "maior", sexo from cliente where sexo='m' group by (sexo); +-------+------+ maior sexo +-------+------+ 580 m +-------+------+ # Soma a mensalidade do Sexo Masculino? # Agrupar é sempre por quem eu não estou calculando # Nesse caso é o sexo 11
select sum(valormensalidade), sexo from cliente where sexo='m' group by (sexo); +-----------------------+------+ sum(valormensalidade) sexo +-----------------------+------+ 1660 m +-----------------------+------+ #Contar por sexo... select count(*) "quantidade", sexo from cliente group by (sexo); +----------+------+ count(*) sexo +----------+------+ 1 f 4 m +----------+------+ # Total com não total (que se duplica) sou obrigado a Agrupar... # Mostrar a Tabela desc cliente; +------------------+-------------+------+-----+---------+------- Field Type Null Key Default Extra +------------------+-------------+------+-----+---------+------- idcliente int(11) NO PRI NULL nome varchar(35) YES NULL email varchar(50) YES NULL sexo varchar(1) YES NULL valormensalidade double YES NULL +------------------+-------------+------+-----+---------+------- --Tenho uma tabela que irei prender a cliente # A chave estrangeira OBserva A Chave Primária de Outra Tabela #Chave Estrangeira (É Uma Chave de Referência) #È para Servir de servir de relação (Relacionamento) #ID_CLIENTE RELAÇÃO (PORFIRIO) 12
create table endereco( idendereco int primary key, bairro varchar (35), cidade varchar (50), id_cliente int, foreign key(id_cliente) references Cliente(idCliente)); desc endereco; +------------+-------------+------+-----+---------+-------+ Field Type Null Key Default Extra +------------+-------------+------+-----+---------+-------+ idendereco int(11) NO PRI NULL bairro varchar(35) YES NULL cidade varchar(50) YES NULL id_cliente int(11) YES MUL NULL +------------+-------------+------+-----+---------+-------+ select * from cliente; idcliente nome email sexo valormensalidade 10 porfirio porfirio@gmail.com m 200 20 lu lu@gmail.com f 300 30 marcelo marcelo@gmail.com m 500 40 garra garra@gmail.com m 580 50 sergio sergio@gmail.com m 380 #Essa teoria È Chamada Chave Estrangeira (Último Numero) insert into cliente values (60,'belem','belem@gmail.com','m',350); #Dados do Endereco #Insere os DADOS DO ENDEREÇO insert into endereco values (1000,'tijuca','Rio de janeiro',40); insert into endereco values(1500,'barra da tijuca','rio de janeiro',10); insert into endereco values(2000,null,'rio de janeiro',30); insert into endereco values(2500,'nova iguacu','rio de janeiro',50); insert into endereco values(3000,'leblon','rio de janeiro',20); insert into endereco values(3500,'recreio','rio de janeiro',60); 13
#Atualizar... commit; 14