Clipper On Line • Ver Tópico - Tutorial - MySQL ( apoio à migração e conhecimento )

Tutorial - MySQL ( apoio à migração e conhecimento )

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Tutorial - MySQL ( apoio à migração e conhecimento )

Mensagempor rochinha » 01 Mar 2006 21:49

Tutorial de MySQL - Parte I

Este tutorial fornece uma introdução ao MySQL por mostrar ao usuário como criar e gerenciar um banco de dados. MySQL é um programa interativo que permite

você conectar com um servidor de MySQL, perguntar e ver os resultados. Também veremos MySQL utilizado em modo de lote: você coloca suas perguntas em um

arquivo de antemão, e MySQL executa os conteúdos do arquivo. Ambos os caminhos de usar o MySQL são descritos aqui.

Esta apostila assume que o MySQL está instalado em sua máquina, e que um servidor de MySQL está disponível para que possa conectar.

Assume também que voce possui instalado o MySQL-Front, o qual os comandos aqui foram testados atraves do painel Query. Os camandos neste painel seguem o padrão do MySQL e devem ser digitados sem o terminador de linhas ';' a não ser que sejam colocadas várias linhas ao mesmo tempo.

A apostila descreve o processo inteiro de como criar e usar um banco de dados.

1 - Conectando e desconectando do servidor

Para conectar ao servidor, você usualmente necessitará fornecer um usuário ao MySQL e, mais provavelmente, uma senha. Se o servidor continua numa máquina

que não tem onde se registrar, também necessitará especificar um hostname. Sabendo os parâmetros próprios, você poderá se conectar:

shell> mysql -h host -u user -p
Enter password: ********

O ******** representa sua senha; entre com a senha quando MySQL exibir Enter
password: prompt.
Se daquela estação, você deveria ver alguma informação de introdução seguida
por uma mysql> prompt:

shell> mysql -h host -u user -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 459 to server version: 3.22.20a-log

Tipo "help" para ajuda.

mysql>

O prompt diz que você está pronto para entrar com os comandos. Algumas instalações do MySQL permite aos usuários conectar com o servidor e continuar como

anfitrião local. Se isto é o caso em sua máquina, você deveria ser capaz de conectar com o servidor ao invocar o MySQL sem quaisquer opções:

shell> mysql

Depois que está conectado, você pode desconectar a qualquer momento, é só digitar QUIT
no mysql> prompt:

mysql> QUIT
Bye

Você também pode desconectar por control-D.

Na maioria dos exemplos nas seguintes seções, assumem que você está conectado ao servidor.
Eles indicam isto por: mysql> prompt.

Introdução - Entrando e perguntando

Neste ponto, é mais importante descobrir como emitir perguntas do que criar tabelas, carregar e recuperar dados. Esta seção descreve os princípios básicos

de como entrar com os comandos, usando várias perguntas. Você pode experimentar familiarizando com os trabalhos do MySQL.
Aqui é um comando simples que pergunta ao servidor o número de sua versão e a data corrente.

mysql> SELECT VERSION(), CURRENT_DATE;
+--------------+--------------+
| version() | CURRENT_DATE |
+--------------+--------------+
| 3.22.20a-log | 1999-03-19 |
+--------------+--------------+
1 row in set (0.01 sec)
mysql>

Esta pergunta ilustra várias coisas sobre MySQL:
* Um comando normalmente consiste de uma declaração do SQL seguida por um ponto-e-vírgula.
(Há algumas exceções onde um ponto-e-vírgula não são necessário.
QUIT, mencionado anteriormente, é um deles.)
* Quando você emite um comando, MySQL envia ao servidor para execução e exibe os resultados,
então exibe mysql>, para indicar que está pronto para outro comando.
* MySQL exibe a saída da pergunta como uma tabela (filas e colunas).
A primeira fila contem rótulos às colunas. As demais filas são os resultados da pergunta. Normalmente, os rótulos da coluna são os nomes das colunas que

traz das tabelas do banco de dados. Se você está recuperando o valor de uma expressão, em vez de uma coluna de tabela, MySQL rotula a coluna usando a

expressão que foi usada.
* MySQL mostra quantas filas foram exibidas, e quanto tempo a pergunta levou para ser executada, dando uma idéia rude de performance do servidor. Esses

valores são imprecisos porque eles representam tempo de relógio de parede (não CPU ou tempo de máquina), e porque eles são afetados por certos tipos de

fatores. Palavras chaves podem ser inseridas em qualquer caixa de entrada . As seguintes perguntas são equivalente:

mysql> SELECT VERSION(), CURRENT_DATE;
mysql> select version(), current_date;
mysql> SeLeCt vErSiOn(), current_DATE;

Aqui é outra pergunta. Isto demonstra que você pode usar MySQL como uma simples calculadora:

mysql> SELECT SIN(PI()/4), (4+1)*5;
+-------------+---------+
| SIN(PI()/4) | (4+1)*5 |
+-------------+---------+
| 0.707107 | 25 |
+-------------+---------+

Os comandos mostrados têm estado relativamente em declarações de linhas únicas e curtas.
Você pode até mesmo entrar com declarações múltiplas em uma única linha.
Somente termine cada uma com um ponto-e-vírgula.

mysql> SELECT VERSION()
mysql> SELECT NOW();
+--------------+
| version() |
+--------------+
| 3.22.20a-log |
+--------------+

+---------------------+
| NOW() |
+---------------------+
| 1999-03-19 00:15:33 |
+---------------------+

Um comando dado todo em uma única linha, assim como comandos compridos que requerem várias linhas, não tem nenhum problema. MySQL determina que sua

declaração termina por um ponto-e-vírgula, e não, o fim de uma linha de entrada.
Aqui é uma simples declaração de linha múltipla:

mysql> SELECT USER(), CURRENT_DATE;
+--------------------+--------------+
| USER() | CURRENT_DATE |
+--------------------+--------------+
| joesmith@localhost | 1999-03-18 |
+--------------------+--------------+

Exemplos de perguntas comuns

Aqui segue exemplos de como resolver alguns dos problemas mais comuns do MySQL. Algum dos exemplos usam a tabela de compras, coloque os preços de cada

artigo (número de item) de cada negociante. Supondo que cada negociante tem um preço fixo por artigo, então (item, negociante) é uma chave primária aos

registros. Você pode criar a tabela de exemplo como:

CREATE TABLE shop (
article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,
dealer CHAR(20) DEFAULT '' NOT NULL,
price DOUBLE(16,2) DEFAULT '0.00' NOT NULL,
PRIMARY KEY(article, dealer));

INSERT INTO shop VALUES
(1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),(3,'C',1.69),
(3,'D',1.25),(4,'D',19.95);

Assim os dados de exemplo estarão:

SELECT * FROM shop

+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
| 0001 | A | 3.45 |
| 0001 | B | 3.99 |
| 0002 | A | 10.99 |
| 0003 | B | 1.45 |
| 0003 | C | 1.69 |
| 0003 | D | 1.25 |
| 0004 | D | 19.95 |
+---------+--------+-------+

O valor máximo de uma coluna

"Qual é o artigo que tem o preço mais alto?"

SELECT MAX(article) AS article FROM shop

+---------+
| article |
+---------+
| 4 |
+---------+

A fila da coluna com o número máximo

"Encontre o número do negociantes, e avalie quem tem o artigo mais caro."

No ANSI SQL isto é facilmente feito com um sub-query:

SELECT article, dealer, price
FROM shop
WHERE price=(SELECT MAX(price) FROM shop)

No MySQL (ainda não faz uma sub-seleção) somente faz isto em dois passos:
1. Obtem o valor máximo e avalia a tabela com uma declaração SELECT.
2. Usando este valor compila a pergunta real:

SELECT article, dealer, price
FROM shop
WHERE price=19.95

Outra solução está em classificar todas filas decrescentes por preço e unicamente obter
uma fila usando o MySQL cláusula de LIMIT:

SELECT article, dealer, price
FROM shop
ORDER BY price DESC
LIMIT 1

Note: Se há vários artigos caros, a solução de LIMIT mostra unicamente um deles.


Máximo da coluna: por grupo e por valores

"Qual é o preço mais alto por artigo?"

SELECT article, MAX(price) AS price
FROM shop
GROUP BY article

+---------+-------+
| article | price |
+---------+-------+
| 0001 | 3.99 |
| 0002 | 10.99 |
| 0003 | 1.69 |
| 0004 | 19.95 |
+---------+-------+

As filas com grupos de campos de valor máximo.

Aguarde pela segunda parte deste tutorial.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4548
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 808 vezes
Mens.Curtidas: 246 vezes



Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Google [Bot] e 7 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro