Escolar Documentos
Profissional Documentos
Cultura Documentos
Dados MySQL
MySQL, o mais popular sistema de gerenciamento de banco de dados SQL Open Source, e
desenvolvido, distribuído e tem suporte da MySQL AB. A MySQL AB e uma empresa comercial,
fundada pelos desenvolvedores do MySQL, cujos negócios e fornecer serviços relacionados ao
sistema de gerenciamento de banco de dados MySQL. O web site do MySQL
(http://www.mysql.com/) fornece informações mais recentes sobre e programa MySQL e a MySQL
AB.
O MySQL é um sistema de gerenciamento de bancos de dados.Um banco de dados e uma coleção
de dados estruturados. Ele pode ser qualquer coisa desde uma simples lista de compras a uma
galeria de imagens ou a grande quantidade de informação da sua rede coorporativa. Para
adicionar, acessar, e processar dados armazenados em um banco de dados de um
computador,você necessita de um sistema de gerenciamento de bancos de dados como o Servidor
MySQL. Como os computadores são muito bons em lidar com grandes quantidades de dados, o
gerenciamento de bancos de dados funciona como a engrenagem central na computação, seja
como utilitários independentes ou como partes de outras aplicações.
O MySQL é um sistema de gerenciamento de bancos de dados relacional. Um banco de dados
relacional armazena dados em tabelas separadas em vez de colocar todos os dados um só local.
Isso proporciona velocidade e flexibilidade. À parte SQL do “MySQL” atenda pela “Structured
Query Language -Linguagem Estrutural de Consultas”. SQL ´e linguagem padrão mais comum
usada para acessar banco de dados e é definida pelo Padrão ANSI/ISO SQL. (O padrão SQL esta
vem evoluindo desde 1986 e existem diversas versões. Neste manual, ”SQL-92” se refere ao
padrão liberado em 1992, ”SQL-99” se refere ao padrão liberado em 1999, e ”SQL:2003” se refere
a versão do que esperamos que seja liberado no meio de 2003. Nos usamos o termo ”o padrão
SQL” indicando a versão atual do Padrão SQL em qualquer momento).
O é MySQL um software Open Source. Open Source significa que é possível para qualquer um
usar e modificar o programa. Qualquer pessoa pode fazer download do MySQL pela Internet e usá-
lo sem pagar nada. Se você quiser, você pode estudar o código fonte e altera-lo para adequá-lo
`as suas necessidades. O MySQL usa a GPL (GNU General Public License - Licença Publica Geral
GNU) http://www.fsf.org/licenses,
para definir o que você pode e não pode fazer com o software em diferentes situações. Se você
sentir desconforto com a GPL ou precisar embutir o MySQL em uma aplica¸c˜ao comercial você
pode adquirir a versão comercial licenciada conosco.
O servidor de banco de dados MySQL é extremamente rápido, confiável, e fácil de usar. Se isto e o
que você esta procurando, você deveria experimenta-lo. O Servidor MySQL também tem um
conjunto de recursos muito práticos desenvolvidos com a cooperação de nossos usuários.
O Servidor MySQL foi desenvolvido originalmente para lidar com bancos de dados muito grandes
de maneira muito mais rápida que as soluções existentes e tem sido usado em ambientes de
produção de alta demanda por diversos anos de maneira bem sucedida. Apesar de estar em
constante desenvolvimento, o Servidor MySQL oferece hoje um rico e proveitoso conjunto de
funções. A conectividade, velocidade, e segurança fazem com que o MySQL seja altamente
adaptável para acessar bancos de dados na Internet.
História do MySQL
Quando começamos, tínhamos a intenção de usar o mSQL para conectar as nossas tabelas
utilizando nossas rápidas rotinas de baixo nível (ISAM). Entretanto, depois de alguns testes,
chegamos a conclusão que o mSQL não era rápido e nem flexível o suficiente para nossas
necessidades. Isto resultou em uma nova interface SQL para nosso banco de dados, mas com
praticamente a mesma Interface API do mSQL. Esta API foi escolhida para facilitar a portabilidade
para códigos de terceiros que era escrito para uso com mSQL para ser portado facilmente para uso
com o MySQL.
A derivação do nome MySQL não é bem definida. Nosso diretório base e um grande numero de
nossas bibliotecas e ferramentas sempre tiveram o prefixo “my” por pelo menos 10 anos.
A filha de Monty também ganhou o nome My. Qual das duas originou o nome do MySQL continua
sendo um mistério, mesmo para nos. O nome do golfinho do MySQL (nosso logo) e Sakila. Sakila
foi escolhido pelos fundadores da MySQL AB de uma enorme lista de nomes sugeridos pelos
usuários em nosso concurso "Name the Dolphin". O nome vencedor foi enviado por Ambrose
Twebaze, um desenvolvedor de programas open source de Swaziland, Africa. De acordo com
Ambrose, o nome Sakila tem as suas raízes em SiSwati, a língua local de Swaziland. Sakila é
também o nome de uma cidade em Arusha, Tanzania, próxima ao país de origem de Ambrose,
Uganda.
A seguinte lista descreve algumas das características mais importantes do Programa de Banco de
Dados MySQL.
• Portabilidade e Escrito em C e C++.
• Testado com um amplo faixa de compiladores diferentes.
• Funciona em diversas plataformas. Utiliza o GNU Automake, Autoconf, e Libtool para
portabilidade.
• APIs para C, C++, Eiffel, Java, Perl, PHP, Python, Ruby e Tcl estão disponíveis.
• Suporte total a multi-threads usando threads diretamente no kernel. Isto significa que se
pode facilmente usar múltiplas CPUs, se disponível.
• Fornece mecanismos de armazenamento transacional e não transacional.
• Tabelas em disco (MyISAM) baseadas em ´arvores-B extremamente rápidas com
compressão de índices.
• E relativamente fácil se adicionar outro mecanismo de armazenamento. Isto e útil se você
quiser adicionar uma interface SQL a um banco de dados caseiro.
• Um sistema de alocação de memória muito rápido e baseado em processo(thread).
• Joins muito rápidas usando uma multi-join de leitura única otimizada.
• Tabelas hash em memória que são usadas como tabelas temporárias.
• Funções SQL são implementadas por meio de uma biblioteca de classes altamente
otimizada e com o máximo de performance. Geralmente não há nenhuma alocação de
memória depois da inicialização da pesquisa.
• O código do MySQL foi testado com Purify (um detector comercial de falhas de memória) e
também com o Valgrind, uma ferramenta GPL (http://developer.kde.org/~sewardj/).
• Disponível como versão cliente/servidor ou embutida(ligada).
Tipos de Coluna
• Aceita diversos tipos de campos: tipos inteiros de 1, 2, 3, 4 e 8 bytes com e sem sinal,
FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME,
TIMESTAMP, YEAR, SET e ENUM.
• Registros de tamanhos fixos ou variáveis.
Comandos e Funções
• Completo suporte a operadores e funções nas partes SELECT e WHERE das consultas.
Por exemplo: mysql> SELECT CONCAT(first_name, " ", last_name)
FROM nome_tbl
WHERE income/dependents > 10000 AND age > 30;
A EMPRESA
A MySQL AB é a empresa que desenvolve, suporta e comercializa o banco de dados MySQL em
todo o mundo. Nossa missão é criar um banco de dados superior, que contribua para aplicações
de missão crítica, com altos volumes e que esteja disponível e acessível a todos. Nós criamos
nosso produto e disponibilizamos a custo zero sob a licença GPL (GNU General Public License),
ou sob uma licença comercial para quem pretende não seguir os termos da GPL.
Atualmente o MySQL é o banco de dados de código aberto mais popular do mundo, com mais de 4
milhões de instalações entre Websites, datawarehouse, aplicações comerciais e outra mais.
Usuários como Yahoo! Finance, MP3.com, Motorola, NASA, Silicon Graphics, e Texas Instruments
usam o MySQL em aplicações de missão crítica.
A MySQL AB foi criada na Suécia por dois suecos e um finlandês: David Axmark, Allan Larsson
and Michael "Monty" Widenius, que trabalham juntos desde a década de 80. A MySQL AB é a
única proprietária do código fonte do MySQL server, da marca MySQL e do domínio mysql.com no
mundo inteiro. A MySQL AB emprega aproximadamente 70 profissionais no mundo inteiro, e mais
de mil contribuem para o seu sucesso testando o software, integrando-o a outros produtos, e
escrevendo a respeito do mesmo.
MISSÃO
A missão da MySQL AB, desenvolvedora do MySQL, é criar um gerenciador de banco de dados
que contribua para aplicações de missão crítica e esteja disponível e acessível a todos. Conhecido
como o banco de dados open source mais utilizado em todo o mundo, fácil de usar, com melhorias
contínuas, livre de bugs, e regido pela licença GPL (GNU General Public License), o SGBD MySQL
vem rapidamente ocupando o seu espaço. Já são mais de 4 milhões de aplicações utilizando-o
com alto índice de satisfação em websites, data warehouses, aplicações comerciais dentre outras.
Segundo pesquisas realizadas em sites como Slashdot.org e Linux.com, o MySQL possui mais de
40% do market share para bancos de dados voltados à Web.
OBJETIVO DA MySQL AB
TABELA DE LICENÇA
Nome do Pacote Comercial
CLASSIC PRO NDB MaxDB
Memory Memory NDB MaxDB
Table Types MyISAM MyISAM
InnoDB
Roda qualquer aplicativo
Sem transação Com transação Cluster
SAP
Características Fácil administração Integridade "RAID de tabelas" Triggers
e utilização referêncial
Store Procedure
R$150,00/usuário* ou
Valor R$1200,00 R$2400,00 R$15.000,00/CPU
R$4.500,00/CPU**
Conectividade
No que se refere à conectividade o MySQL possui uma estrutura cliente/servidor onde os clientes
podem se conectar ao banco através de sockets, TCP/IP, PIPE, ou ainda utilizando o seu suporte
para ODBC (Open DataBase Conectivity). Este possibilita a visualização dos dados através de
outros aplicativos, dentre estes estão as várias planilhas eletrônicas existentes no contexto de
sistemas para escritório. Além disso, o MySQL é GPL (com código fonte aberto) e funciona em
diversas plataformas tais como Windows, Linux, Unix, Solaris, dentre outras, possibilitando assim
um alto nível de portabilidade das aplicações que o utilizam.
O MySQL apresenta também alta escalabilidade sendo capaz de lidar com grandes volumes de
dados sem que haja o comprometimento da integridade, nem do seu desempenho para a
manipulação desses dados. Uma outra questão importante é a segurança das informações, neste
ponto o MySQL se apresenta como uma ferramenta extremamente robusta, com várias funções de
controle de acesso e consistência dos dados.
No caso do controle de acesso aos dados o MySQL permite ao administrador controlar todo o
acesso dos usuários levando-se em conta o local de onde está sendo feito o acesso (restringindo
acessos a partir de determinados hosts considerados inseguros), quais os bancos de dados,
tabelas e colunas cada usuário poderá acessar, e além disso, qual o tipo de acesso poderá ser
feito (leitura, escrita, remoção, alteração ou a combinação deles).
Uma outra forma de segurança fornecida pelo MySQL é a integridade e consistência dos dados. O
MySQL possibilita a utilização de tabelas com transação segura (TST - Transaction-Safe Tables)
que garantem que todas as operações realizadas com os seus dados levará o banco a uma nova
configuração, onde é mantida a consistência. Por exemplo, em uma transação de troca de
mercadorias entre lojas, ao final da operação o estoque total da empresa será mantido, mesmo
que haja um problema no sistema (queda de energia, problema em disco, etc.). Além disso, o
MySQL vem com ‘clientes’ que auxiliam em procedimentos de backup, verificação e recuperação
de dados, administração de usuários e privilégios de acessos, dentre outros, sendo possível assim
à manutenção do banco de modo fácil e seguro.
O MySQL conta também com recursos avançados, dentre eles: execução de múltiplos servidores
MySQL em uma mesma máquina e replicação. O primeiro recurso permite, por exemplo, que um
provedor de web execute um servidor de banco de dados para cada um de seus clientes utilizando
apenas uma máquina, aumentando a qualidade do serviço prestado sem a necessidade de adquirir
novos equipamentos.
A replicação tem como princípio o esquema master-slave onde várias máquinas trabalham
simultaneamente (dados sincronizados, ou seja, cópias idênticas dos dados) fornecendo maior
disponibilidade dos dados em caso de problemas com a sua máquina master, onde entraria em
ação uma das máquinas slaves associadas a ela.
Portanto, o MySQL apresenta diversas vantagens para o armazenamento e gerência de dados de
modo simples e seguro. Para que se possa conhecer e fazer um uso adequado deste gerenciador
e de seus recursos é importante que se tenha uma visão mais ampla desta ferramenta. Por isso, a
EAC promove os cursos de Introdução, Administração e Otimização do MySQL, a fim de prover as
habilidades mínimas necessárias para o uso deste gerenciador de banco de dados que vem se
destacando a cada dia por sua robustez, velocidade e precisão.
Segurança
Um sistema de privilégios e senhas que é muito flexível, seguro e que permite verificação baseada
em estações/maquinas. Senhas são seguras porque todo o tráfico de senhas é criptografado
quando você se conecta ao servidor.
Escalabilidade e limites
Lida com bancos de dados enormes. Usamos o Servidor MySQL com bancos de dados que
contém 50.000.000 registros e sabemos de usuários que usam o Servidor MySQL com 60.000
tabelas e aproximadamente 5.000.000.000 de linhas.
São permitidos até 32 índices por tabela. Cada índice pode ser composto de 1 a 16 colunas ou
partes de colunas. O tamanho máximo do índice é de 500 bytes (isto pode ser alterado na
compilação do MySQL). Um índice pode usar o prefixo de campo com um tipo CHAR ou
VARCHAR.
Conectividade
Os clientes podem se conectar ao servidor MySQL usando sockets TCP/IP, em qualquer
plataforma. No sistema Windows na família NT (NT, 2000 ou XP), os clientes podem se conectar
usando named pipes. No sistema Unix, os clientes podem se conectar usando arquivos sockets.
A interface Connector/ODBC fornece ao MySQL suporte a programas clientes que usam conexão
ODBC (Open-DataBase-Connectivity). Por exemplo, você pode usar o MS Access para conectar
ao seu servidor MySQL. Os clientes podem ser executados no Windows ou Unix. O fonte do
Connector/ODBC está disponível. Todas as funções ODBC são suportadas, assim como muitas
outras.
Comandos SQL
Um comando SQL é composto de cláusulas, algumas opcionais e outras obrigatórias. Para maior
inteligibilidade, é conveniente iniciar uma cláusula em uma nova linha, mas isso não é obrigatório.
As palavras que compõem um comando devem ser separadas por espaços ou tabs e o comando
para ser executado deve terminar com ";" (ponto e vírgula).
Por exemplo:
Utilizando o MySQL
Para utilizarmos o MySQL, devemos digitar o comando mysql -p, em seguida será solicitado a
senha e após pressionar o Enter, se esta estiver correta, você irá ver o prompt do MySQL, desta
forma:
# mysql -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 4.0.11a-gamma
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Agora que o MySQL está carregado, poderemos começar a criar nossa base de dados, mas antes,
vamos conhecer os tipos de dados suportados para elaborar nossas tabelas.
Tipo
Descrição
INT
Valor inteiro
REAL
Valor de ponto flutuante
CHAR(tamanho)
Valor de caractere de tamanho fixo. Valor inferior ao definido será deixado em branco.
TEXT(tamanho)
Valor de caractere de tamanho variável.
VARCHAR(tamanho)
Valor de caractere de tamanho variável. Valores inferiores ao definido serão suprimidos.
DATE
Valor para datas do tipo (AAAA-MM-DD)
TIME
Valor de tempo padrão
DATETIME
Valor para data e hora agregados.
CREATE DATABASE
comando para se criar uma base de dados
nome_base_de_dados
o nome que você dará a sua base de dados
Lembre-se que o ";" (ponto e vírgula) serve para encerrar a linha de comando e após ele, deve-se
pressionar "Enter" para que o comando seja executado. O texto que será apresentado abaixo da
linha de comando é a confirmação de que o comando foi executado com êxito, neste nosso caso.
Agora que já criamos a base de dados e ela está em uso, poderemos criar as nossas tabelas.
Para corrigirmos isso, iremos utilizar o comando ALTER TABLE e usar os parâmetros ADD e
CHANGE.
Para visualizarmos graficamente a estrutura de nossa base de dados, basta digitar no prompt do
MySQL:
mysql> show fields from FUNCIONARIOS;
Para vermos todas as tabelas exitentes em nossa base de dados, digite:
mysql> show tables;
Inserindo Dados
O comando utilizado para inserir dados nas tabelas é o INSERT, veja a sintaxe abaixo para se usar
este comando:
Visualizando dados
Não iria fazer sentido você armazenar dados se não pudesse visualizá-los quando fosse preciso,
certo? Por isso, iremos aprender agora como visualizar estes dados. O comando a ser utilizado é o
SELECT, veja a sintaxe dele abaixo:
SELECT
comando para se chamar a visualização de registros
campo(s)
campos da tabela, para referência da visualização dos registros
FROM
chamada para indicar a tabela
tabela(s)
tabela ou tabelas a serem utilizadas
WHERE
chamada para uma condição
condição
condição que deve ser verdadeira para que os registro sejam visualizados
ORDER BY
permite ordenar a visualização de registros em função de um campo especifico
GROUP BY
permite agrupar a visualização de registros em função de um campo especifico
Alterando dados
Muito importante, quando visualizado que esta foi cadastrada erroneamente, para isso iremos
utilizar o comando UPDATE, como mostra a sintaxe abaixo:
UPDATE tabela
SET campo = valor
WHERE {condição};
Apagando dados
Como toda a informação pode se tornar inútil ou desnecessária, devemos aprender como apagar
um dado de nossa tabela. Para isso, iremos utilizar o comando DELETE, veja a sintaxe a seguir: