Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
. O que MySQL ? O Mysql um sistema de gerenciamento de banco de dados relacional distribudo de forma livre. O mysql foi desenvolvido por uma empresa de consultoria na Sucia chamada TcX. Eles estavam precisando de um sistema de Banco de Dados que fosse extremamente rpido e flexvel. Ento, eles criaram o Mysql, que vagamente baseado em outro sistema de gerenciamento de banco de dados ( DBMS ) chamado MSQL. O MySQL utiliza a linguagem SQL para manipular os dados armazenados. SQL (System Query Language) e' um padrao estabelecido pelo Instituto de Normatizaao Americana ( ISO, ou IEEL, a ser pesquisado por voc) que estabeleceu um padrao, em 1992, para utilizaao de Banco de Dados. Voc poder executar comandos como ALTER, INSERT, UPDATE, DELETE que sao comandos padronizados. Instalao para Linux recomendado que descompacte o arquivo em /usr/local ; todos os padres apontam para essa localizao. Voc vai precisar de privilegio no nvel root. Para descompactar o arquivo de instalao digite o seguinte comando:
Cd /usr/local [enter] Gunzip <mysql-3.22.23b-pc-linux-gnu-i686.tar.gz | tar xvf --- (supondo seja essa a versao escolhida) In -s mysql-3.22.23b-pc-linux-gnu-i686.tar.gz
Isso apenas um exemplo, o nome do arquivo poder mudar de acordo com a verso. Isso vai descompactar o binrio do MySQL e criar a estrutura de diretrios. A ultima linha cria um link simblico para esse diretrio. Mude para o diretrio e faa uma listagem.
Cd MySQL [enter] ls
voc ter o seguinte resultado;
changelog bin lib mysql-for-duminies install-binary configure manual.html script public data manueal.txt share readme include manual_toc.html sql-bench
Alterando senhas Como a estrutura de diretrios j foi criada. Voc pode comear a configurar e executar o MySQL. Para criar as tabelas de concesso, certifique-se de que voc est no diretrio /usr/local/MySQL e digite o seguinte na linha de comandos;
scripts/mysql_install_db
Este script criar a tabela de concesso para o MySQL. Isso determina quem pode conectar-se ao banco de dados. uma boa idia alterar a senha de root de seu banco de dados Mysql agora. Os privilgios de bancos de dados e os privilgios de sistema de arquivos so duas coisas diferentes. Isso significa que se voc tem um usurio de sistema, chamado Antonio, no quer dizer que voc tenha um usurio de banco de dados. necessrio que voc cadastre-o como usurio de banco de dados. A segurana no MySQL independente da segurana de sistema. Para mudar a senha de root do MySQL digite o seguinte:
Iniciando e parando o servidor Como a maioria dos sistema de gerenciamento de bancos de dados ( DBMS ) em sua classe, o MySQL executa como um servio Daemon. Um servio daemon um sistema que executa continuamente em segundo plano. Geralmente ele no tem uma interface com o usurio e no pode ser visto a menos que se utilize o comando de listagem de processo do linux ps, ou visualize o Task Manager do Windows. O MySQL possui uma executvel chamado MySQLD que um sistema de servidor, ele fica esperando algum se conectar a ele e fazer alguma solicitao. Utilizando MySQL no Linux Para utilizar seu banco de dados, o daemon do MySQL precisa estar rodando. Para inicializa-lo digite o seguinte;
Mysqladmin start
Utilizando MySQL com Windows Assim como no linux, o servidor do MySQL para Windows tambm executa todas os processos em segundo plano. Para inicializar o servidor, clique duas vezes no arquivo mysql.exe no diretrio \mysql\bin. Para o servidor use o comando, mysqladmin shutdown no prompt do DOS Vale salientar que o processo de execuo do MySQL no Windows causa vazamento de memria podendo dentro de algum tempo causar travamento na mquina, isso pode ser resolvido reinicializando a mquina a cada duas semanas. Segundo os desenvolvedores esse problema ser corrigido na prxima verso. Utilizando a linha de comandos Para iniciar interface de linha de comando no linux ou no Windows, certifique-se de que o sistema esteja rodando. No Windows voc deve utilizar o prompt do DOS.
Cd MySQL
Ao entrar no diretrio MySQL digite o comando abaixo
Bin\mysql -p
Resultado :
Welcome to the MySQL monitor. Commands and with; or \g. Yuor MySQL connection id is 3 to server version : 3.22.23 Type help for help.
Aps a messagem acima exibido o prompt do MySQL: C:\mysql> Isso significa que voc pode comear a interagir com o sistema, criar e manipula seus bancos de dados. Para comear voc vai precisar conhecer um pouco de SQL. Finalize todos comandos como ponto e virgula. Isso ir informar ao sistema que o comando pode ser executado. veja alguns exemplos de comandos: show databases; exibe todod os banco de dados existentes no servidor. create database nomebancodedados; Cria um novo banco de dados com o nome nomebancodedados use nomebancodedados abre o banco de dados para que voc possa manipula-lo. Create table Ex: Create table teste(Codigo int auto_increment, nome varchar(55)); Isso ir criar a tabela teste com duas colunas codigo e nome, sendo codigo do tipo inteiro e nome do tipo alfa-numerico. Visualizando a lista de tabelas e sua strutura O camando show tables permite visulizarmos todas as tabelas de um banco de dados. Ex: show tables from nomedobancodedados; Esse mesmo comando pode ser utilizado para visualizarmos a estrutura das tabelas.
Obs: esse comando ser executado no banco de dados que est sendo usado no momento. O MySQL possui um banco de dados embutido que armazena todas as informaes sobre os arquivos de banco dados criados em seu servidor, bem como o sistema de permisses e cadastro de usurios. O MySQL cria um diretrio com o mesmo nome do BD dentro de diretrio \mysql\data onde armazena todas as informaes dos bancos de dados. Projetando um bano de dados O projeto de um banco de dados mais complexo que pesamos, para se iniciar um projeto necessrio se ter uma idia geral do resultado que se deseja obter. O BD deve ser projetado de forme que facilite a recuperao de informaes. preciso que se dedique um bom tempo imaginando e rabiscando como o banco de dados deve funcionar, de preferncia montar um organograma da tabelas e seus relacionamentos bem como sua estrutura. Isso poder evitar a necessidade de uma reestruturao prematura do seu projeto em fase de desenvolvimento. Dica: Siga os seguinte Passo para projetar um BD 1. Defina a Estrutura que ir necessitar em seu BD incluindo tabelas suas estruturas e relacionamento. 2. Defina o objetivo do projeto 3. Estabeleas as regras do a serem obedecidas para a manipulao das informaes. 4. Faa um esboo do projeto 5. Faa uma reviso de todo o projeto 6. Crie o BD Definindo o objetivo do projeto e sua estrutura Procure obter informaes com os possveis usurio do seu projeto isso poder ajuda-lo. Procure saber quais informaes sero necessrias para armazenamento e como isso ocorrer, cheque a necessidade da incluso de campo de identificao para futuras pesquisas ou filtragem de informaes.
Procure estabelecer as regras de funcionamento do sistema, por exemplo imagine que voc est projetando um sistema de controle de vendas, para cada venda por exemplo tem que haver uma remessa como tambm necessrio verificar se o produto possui estoque e assim por diante.
Estabelecendo relacionamento Para se estabelecer relacionamento entre tabelas, precisamos primeiramente definir se ir existir um relacionamento e que tipo de relacionamento dever ser usado. Ao estabelecer um relacionamento, certifique-se de que os campos relacionados compartilham do mesmo tipo de dado, caso contrario haver problemas. Tipo de relacionamento Um-para-um No relacionamento Um Para Um como o proprio nome j indica, temos a seguinte situao: tabela A e tabela B, para cada registro contido na tabela A deve existir um na tabela B Relacionamentos Um-para-Muitos O relacionamento Um-para-Muitos dever ser utilizado quando a tabela A contiver uma s ocorrncia do registro e a tabela B houver vario registros correspondentes.
Relacionamento Muitos-para-Muitos utilizado quando a tabela A tem muitos registro correspondentes na tabela B e esta possui tambm muitos registro na tabela A
Criando seu primeiro banco de dados Comando CREATE DATABASE, permite crie todo o layout de um banco de dados. Para executar a criao de um banco de dado, certifique -se de que o MySQL est rodando. Na linha de comando digite o seguinte:
Obs: voc poder digitar sem se preocupar com letras maiscula ou minscula, pois o MySQL no distino entre maiscula e minscula. Criando Tabelas Voc acaba de criar o layout de um banco de dados chado Teste, mais ele ainda est vazio, necessrio que se crie as tabelas para possamos armazenar as informaes. Para criar tabelas no MySQL voc ativar o banco de dados . use o seguinte comando:
use teste
ativa o banco de dados Teste. Create table clientes(id_cliente int not null primary key auto_increment, nome varchar(55), endereco varchar(45)); Isso criar uma tabela com tres colunas id_cliente, nome, endereo. Explicando a sintax.
Id_clinte int not null primary key auto_increment - Determina acriao de um campo de identificao do cliente(cdigo do cliente) do tipo inteiro, e que o sistema ir incrementando automaticamente, ou seja o sistema ir inserindo um nmero seqencial forma automtica. nome varchar(55) - cria campo do alfanumrico, ou seja posso utilizar tanto nmeros quanto letras.
Obs: se usarmos char em lugar de varchar criaremos um campo do tipo texto. Alterando a estrutura de uma tabela Muitas vezes temos a necessidade de acrescentar colunas ou modificar o tipo de dados de uma determinada coluna. Vamos considerar que voc est com o banco de dados Teste ativo. Digite o seguinte comando:
O ndice um arquivo criado pelo sistema de banco de dados ordenando os dados de um determinado campo, possibilitando maior desempenho na localizao das informaes. O processo de criao de ndice, ocorre de forma automtica quando criamos uma chave primaria. Mas, caso deseje criar ndices diverso em seu banco de dados use o comando:
use Teste
Isso ativar o banco de dados Teste.
user - esta tabela armazena todo os nomes, senhas, hosts e privilgios dos usurios. db - esta tabela contm informaes sobre os bancos de dados existentes no servidor. host - esta tabela contem os nome de hosts existentes
Para que um usurio possa usar seu banco de dados, o nome da mquina (host) de onde ele vai acessar o banco de dados deve existir na tabela host . E o usurio deve ser cadastrado na tabela user e o banco de dados dever constar na tabela db . Para dar permisses de acesso outros usurios, apartir da mquina dele. Siga as etapas: 1. com o MySQL rodando v ao diretrio MySQL. 2. ative o monitor do MySQL
bin/MySQL -p
Para a utilizao deste comando no Window basta inverter a barra. 3. Ative o banco de dados MySQL .
use MySQL
Agora voc ir utilizar comando INSERT do SQL para incluir nome do host(mquina da rede) / banco de dados. Digite o seguinte:
Apagando banco de dados O comando DROP permite apagar um banco de dados ou uma tabela existente. Sintaxe:
LIMITES DE ARMAZENAMENTO DE CADA TIPO DE DADO TIPO DE DADO TINYINT SMALLINT MEDUIMINT INTERVALO DE VALOR -128 a 127 -32768 a 32767 -8388608 a 8388607
O MySQL oferece recurso de limitao de nmero de casas decimais caso seja necessrio. Ex: imagine um campo do tipo FLOAT declarado da seguinte forma: FLOAT(4,2), neste caso o nmero 56,825, seria armazenada como 56,82. O MySQL arredonda o decimais para o nmero de digitos direita do ponto de frao decimal. A ser exibido em uma consulta o nmero ser exibido como 56,825. Campo AUTO_INCREMENT A expresso auto_increment permite definir campo de auto numerao j conhecidos em outro banco de dados como o Acess. Um campo auto-increment funciona como um contador que adicionar 1 ao valor mximo atual aramazenado na coluna. Obs: o auto-increment no reutiliza o ultimo valor, se este for apagado, ou seja se o ultimo valor era 3 e foi apagado, a linha a ser includa receber o valor 4. Ex: Create table teste(id_teste int not null auto_increment, Nome varchar(45)); ZEROFILL O modificador de coluna ZEROFILL utilizado para exibir zeros esquerda de um nmero com base na largura de exibio, todo os tipos numericos tem uma largura de exibio opcional. Por exemplo se voc declarar um int(8) zerofill e o valor de entrada for 23, ser exibido da seguinte forma: 00000023. Tipo de string Nome do Tipo CHAR(X) VARCHAR(X) TINYTEXT TINYBLOB TEXT BLOB MEDIUMTEXT MEDIUMBLOB Tamanho Mximo 255 BYTES 255 BYTES 255 BYTES 255 BYTES 65.535 BYTES 65.535 BYTES 1,6MB 1,6MB
LOGTEXT LONGBLOB
4.2GB 4.2GB
CHAR E VARCHAR Esse dois tipo de so os mais utilizados. A diferena entre char e varchar que o tipo char posui tamanho de armazenamento fixo. Por exemplo se voc declarar um campo char(5), mesmo que voc armazene apenas um caractere no campo, ele ocupar 5 bytes em disco, pois o MySQL preenche os demais espao para ajustar os dados ao tamanho declarado. O tipo varchar faz o inverso, caso voc tenha declaro um campo com tamanho 20 e armazenar 3 caracteres nele ele ocupar apenas 4 bytes. ( o comprimento mais 1) A vantagem de se utilizar o tipo char esse tipo de dados processado mais rapidamente. E a desvantagem o espao desperdiado. O tipos char e varchar no podem ser utilizados na mesma tabela, quando voc utiliza os dois tipo na mesma tabela o MySQL converte para varchar .
Text e blob
Esses tipos de dados permitem o armazenamento de grande quantidade de dados. Voc utilizar esses tipos quando quiser armazenar imagens, sons ou grande quantidade de texto, como pginas da Web ou documentos. A vantagem de se utilizar esse tipo de dados a grande capacidade de armazenamento, a desvantagem o espao ocupado e a lentido de processamento. Tipos variados
ENUM
O tipo enum uma lista enumerada, ou seja voc s poder armazenar um valor da lista. Ex: CREATE TABLE TESTE(RETURN ENUM('Y','N')DEFAULT 'N', SIZE ENUM('A','B','C','D','E'), COR ENUM ('VERDE', 'AMARELO','AZUL','BRANCO')) O limite de itens na lista de 65.535
SET
O tipo set semelhante ao tipo enum. Assim como o tipo enum , o tipo set armazena uma lista de valores. A diferena no ripo set voc pode escolher mais de uma opo. Possui o limite de 64 itens apenas. Ex: CREATE TABLE TESTE( DIVERSAO SET
('INTERNET','TELEVISAO','FUTEBOL'))
Apesar de exibir o texto quando voc preenche um campo deste tipo, o MySQL armazena o valor numrico de cada opo, fazendo com que os dados sejam processados mais rapidamente. Para recuperar as informaes filtrando-as por este tipo de dados, faa referencia a o valor numrico. Ex: SELECT * FROM TESTE WHERE DIVERSAO =1 Modificadores de colunas So palavras chaves que modificam a forma de funcionamento de uma coluna, como por exemplo auto_increment , zerofill e unsigned . Veja a tabela abaixo: Nome de modificador AUTO_INCREMENT BINARY DEFAULT NOT NULL NULL PRIMARY KEY UNIQUE UNSIGNED ZEROFILL Tipos aplicaveis Todos os tipo INT CHAR, VARCHAR Todos, exceto BLOB, TEXT Todos os tipos Todos os tipos Todos os tipos Todos os tipos Tipos numricos Tipos numricos
O modificador binary faz com que o MySQL distinga maiscula e minscula. Quando se classifica essa coluna essa distino e considerada. O modificador defautl permite especificar um valor padro de entrada caso a coluna no seja preenchida. Ex: CREATE TABLE TESTE(ESTADO CHAR(2) NOT NULL DEFAULT "CE") O modificador unique impedi que os dados dentro da coluna se repitam, tornando os valores unicos. Importando e exportando dados Quando nos vemos na necessidade de transferir informaes de nosso banco de dados para outro ou para uma planilha, surge a mesma pergunta : Por onde eu comeo? H varias maneira de importar dados de banco de dados para outro, a maneira mais comum usar o bulk copy protocol (BCP). Esse protocolo utilizado por varios bancos de dados do mercado, como SQL SERVER, SYBASE E ADAPTIVE SERVER Outra maneira de Importar/Exportar dados por meio da converso de arquivos. Os arquivos podem ser convertido em um formato que outro banco de dados possa ler. Um exemplo a converso de arquivos de dados em arquivos texto delimitado por virgula.
H uma nova maneira de tranferir dados. converte-los em formato XML - Extensible Marckup Language. uma linguangem semelhante ao HTML, porm mais dinamica. Ela permite ao programador definir suas prprias TAG'S dando-o maior liberdade para desenvolver. Ela oferece um maneira mais rpida e confivel de transferir dados via rede. O MySQL possui uma ferramenta chamada MySQL import que apresenta-se um pouco grosseira, porm muito eficaz. Voc ir encontra-la no diretrio myslq/bin. um utilitrio de linha de comando, e funciona da seguinte forma:
[txt]-lines-terminated- Esta opo especifica o caractere que determina o final da by="." linha de dados. Neste caso o ponto. Importando arquivo delimitados por virgula Para importar arquivos terminados por virgula, use o seguinte: Como o MySQL rodando digite o seguinte na linha de comando:
Lembrando que o nome do arquivo deve ser igual a nome da tabela para onde ele ser importado, conforme j foi explicado em matrias anteriores. Usando LOAD DATA INFILE para importar arquivos Uma outra opo de importao que o MySQL oferece o metodo LOAD DATA FILE, que possui funcionamento parecido com o MySQL import. Voc poder executa-lo na linha de comando.
Opo do LOAD DATA INFILE Para se determinar o separador de um arquivo usando LOAD DATA FILE, necessrio utilizarmos as seguintes palavras chave. TERMINATED BY Utilizada para informar o caractere separador do arquivos, vamos supor que voc precise importar um arquivo que possui a virgula como separador de campo. Neste caso seria necessrio usar a seguinte sintaxe:
Load data infile "/home/diretrio/arquivo.txt" replace Into table order Fields Terminated by ', ' Enclosed by ' " ' ;
ENCLOSED BY Determinar os caracteres a serem includos no caso acima determinamos que os dados de cada campo estavam entre aspas. ESCAPED BY Informa o caractere de escape.
Informando as colunas que iro receber os dados O LOAD DATA INFILE possui um excelente recurso, que permite nomear colunas em que iro ser armazenados os dados. Digamos que voc tenha uma tabela com 10 colunas, mas s ir utilizar a 1 , 4 e 6, voc importar o arquivo sem problemas usando a seguinte sintaxe:
Veja um exemplo:
1. dado Access
2- clique com o boto direito do mouse sobre o nome da tabela que deseja exportar em forma de texto, e acione a opo Salvar como(Salve as)/Exportar(export)...
Ao clicar no boto OK ser exibida uma janela com duas opes marque a primeira opo e clique em avanar.
Determine que deseja delimitar os campos por virgula, isso ir criar um arquivo fcil de ser importado para o MySQL, utilizando umas das ferramentas j apresentadas. Exportando dados Usando SELECT INTO OUTFILE
O utilitrio SELECT INTO OUTFILE, permite exportar os dados para um arquivo de texto. Com relaes as opes este utilitrio compartilha as mesmas opes do LOAD DATA INFILE. Para utliza-lo certifique-se de que o MySQL esteja rodando. Na linha de comando digite:
Select * into outfile 'diretrio/nomearquivo.txt' Fields Terminated by = ',' From teste Where campo >='valor';
Isso ir criar um arquivo com base na tabela teste de acordo com o critrio informado.
Usando MYSQL DUMP Atravs da ferramenta mysql dump possvel exportar um banco de dados inteiro para um arquivo de texto. Esse arquivo contem todos os comando SQL necessrios para recriar seu banco de dados. Esse utilitrio usa a engenharia reversa, criando a seqncia de comandos SQL capazes de recriar a estrutura do banco de dados, convetida em DDL ( instrues CREATE). Os
dados so organizados dentro de instrues INSERT, o que permite a restaurao dos mesmo nas tabelas. Para exportar ou fazer backup do seu banco de dados, use o seguinte comando:
veja ajgumas opes do mysql dump -add-drop-table Isso far uma pesquisa se j existe uma tabela com o mesmo nome daquela que esta sendo importada caso exista ela ser excluida assegurando a importao sem erros Esssa opo bloqueia a tabela impedindo que se faa alteraes enquanto os dados so importados Isso permite que as colunas seja nomeadas, facilitando a importao para outros bancos de dados Ativa todas as opes que iro acelerar o processo de dump(exportao). Isso far com que os dados sejam gravados num arquivo e as instrues em outro. O arquivo DDL chama-se Table_name.sql e o arquivo de dados chama-se Table_name.txt, o argumento de caminho o diretrio no qual voc deseja armazenar os arquivos. -w ou -where utilizada para filtrar os dados a serem exportados
Criando relatrios
Os recrusos de exportao de dados tambm poder ser utilizado para gerar relatrios. Veja um exemplo Vamor criar um arquivo de texto chamado meurelatorio.rpt o diretorio mysql. Na linha de comando do mysql digite:
use nomedobanco insert into nometabela(coluna1, coluna2, coluna3) values(1, "jose", "souza"); insert into nometabela(coluna1, coluna2, coluna3) values(2, "joao", "souza"); insert into nometabela(coluna1, coluna2, coluna3) values(3, "maria", "souza"); select coluna1 into outfile '/diretorio/meurelatorio.rpt' from nometabela where coluna1>1;
Manipulando dados via SQL
O SQL ( Structured Query Linguage) foi desenvolvido pela IBM nos anos 70. Anos depois foi adotada como linguagem padro de acesso a dados. A linguagem de divide em duas partes: Linguagem de criao de objetos do banco de dados ( DCL) Linguagem de manipulao de dados (DML) Vejamos agora alguns dos comando mais utilizados Select Comando que indica inicio de uma consulta de seleo. Sintaxe:
Sintaxe:
Retorna o numero de ocorrncia do valor 2 no campo informado Para verificar o total de registro de uma tabela use:
Retorna o desvio padro dos valores de uma coluna. O desvio padro se refere ao nvel de oscilao dos valores, muito utilizado em clculos cientficos Sintaxe:
A linguagem SQL permite a realizao de teste condicionais em expresses. As funes IF ( ), IFNULL( ) e CASE. If Funo lgica utilizada para comparar dois valores. Permite apenas uma comparao. Sintaxe: If (valorasercomparado, valorseverdadeiro,valorsefalso)
Caso contrario escrever "no" Ifnull O funao ifnull verifica se o campo possui valor nulo. E retonar o primeiro argumento se o campo no for nulo, e retornar o segundo se no for nulo. Sintaxe: select ifnull((campo1/campo2),0) neste exemplo o resultado retornar o resto da diviso se for verdadeiro, ou seja se nenhum dos campos forem nulos.
Operadores lgico And , Or e NOT Esse conjunto de operadores lgicos tem funcionamento idntico a que ns j utilizamos em outros banco de dados.
And = e Or = ou Not = no Select 9 and 10 Retornaria: 9, 10 Select 9 or null Retornaria: 9 Select not(1+1) Retorna: 0 Select not(1-1) Retorna: 1
Funes de String e de Caracteres As funes de String permitem a manipulao de texto antes de retornarem ao cliente. Isso pode ser til para se poupar tempo. Sitaremos aqui as mais utlizadas. Ltrim Remove os espaos a esquerda da string
Sintaxe:
select substring("testeSQL",5)
Retornar: "SQL" Locate() Permite localizar uma string dentro de outra string, esta funo exige tres argumentos. O primeiro representa a expresso que voc deseja localizar, o segundo representa a string que pode conter a string a ser procurado e o terceiro representa a posio de onde deseja iniciar a procura. Sintaxe:
A funo REPLACE ( ) permite a substituio de caracteres contido dentro de uma string. Como exemplo podemos substituir uma dentro de uma campo de tabela e assim por diante. Sintaxe:
Select replace("nomecampooustring123"",123"",456")
Retorna: "nomecampooustring456" Reverse ( ) Permite reverter a string informada. Sintaxe:
Select ucase("nomecampooustring")
Retorna: "NOMECAMPOOUSTRING"
Select Lcase("NOMECAMPOOUSTRING")
Retorna: "nomecampooustring"
Bloqueio de tabelas Quando o banco de dados sobrecarregado de solicitaes de servio, podem ocasionar erros de gravao de informaes. Ao desenvolver seu sistema talvez seja conveniente utilizar o bloqueio de tabelas quando estiver importando, exportando os consultando grande quantidade de informaes. Por exemplo considere que vrios usurio esto acessando a mesma tabela e buscando a mesma informao, enquanto que essa mesma informaes est sendo alterado por outros usurio aos mesmo tempo. Para evitar que ocorra erros de gravao use o lock table para bloquear a tabela enquanto executa a operao. Sintaxe:
Lock tables nometabela write; Select nomecampo from nometabela where nomecampo=valor; Update nomatabela set nomecampo=(valor) where nomecampo=valor;
Desta forma todo o processo melhor gerenciado, porque o usurio2 tem de esperar at a processo de processamento do primeiro terminar
Alter table nometabela add(key!index) nomedoindice (nomecampo[,...]); Alter table nometabela add unique nomeindice (nomecampo[,...]); Alter table nometabela add primary key nomeindice(nomecampo[,...]);
O MySQL tambm suporta os comandos:
Create index nomeindice on nometabela(nomecampo[,...]); Create unique index [nomeindice] on nometabela(nomecampo[,...]); Create primary key on nometabela (nomecampo,...);
Aps criar as tabelas para se certificar de que elas realmente foram creadas, visualize-as utilizando o comando:
Interface com o banco de dados Dificilmente se cria uma aplicao de negcio em que no seja necessrio compartilhar o banco de dados. Este tipo de aplicao opera numa interface cliente/servidor, a aplicao interage com um banco de dados. Para que haja essa comunicao com o banco de dados necessrio primeiramente haver uma conexo. A interface uma camada que faz a intermediao entre o banco de dados e a sua aplicao. Veja a strutura abaixo:
Requisitos de uma conexo O primeiro requisito para se fazer uma conexo alm da conexo fisica, o drive. O drive adequado deve ser instalado. O segundo requisito nome do servidor onde o banco de dados est localizado. Voc dever informar o endereo de IP do servidor, ou caso esteja utilizando endereamento dinmico pode utilizar o nome do servidor. O terceiro requisito para a conexo o nome do banco de dados Como utilizar o MyODBC A Open Database Connectivity da Microsoft (ODBC) um padro que permite o acesso a qualquer banco de dados. O drive ODBC funciona como intermedirio na comunicao entre sua aplicao e o Banco de Dados. Na verdade ele interpreta os comando enviados ao banco de dados, e devolve ao usurio o resultado final. Vamos considerar que voc tenha instalado o MyODBC. Voc poder encontra-lo em www.mysql.com.br. Para configurar uma conexo ODBC para windows siga os seguintes passo: 1- abra o painel de controle
2- abra o item Fonte ODBC 1. clique em adicionar procure na lista a opo MySQL
e clique em concluir
se estiver utilizando um servidor linux use o usurrio root e sua senha de root. Fazendo uma conexo ADO Para conectar-se a um banco de banco MySQL utilizando VBScript e ADO, preciso seguir vrias etapas: 1 - declare uma varivel que se tornar o objeto connection. Dim minhaconn 2. crie um objeto de conexo set minhaconn=sever.createObject("ADODB.Connection") 3. configure as propriedades do objeto connection. Minhaconn.CommandTimeout=40
Segurana de Banco de Dados MySQL A segurana de bancod e dados um componente essencial para qualquer sistema de banco de dados. A segurana desempenha um papel importante em qualquer aplicao que tenha vrios usurios acessado ao mesmo tempo. Como ocorre a plementao de segurana no MySQL O sistema de segurana do MySQL muito flexvel. Com ele, voc pode criar vrios nveis de acesso aos usurios. Cabe a voc definir as restries que cada usrio ter. Todas permisses so armazenadas no banco de dados MySQL, este banco possui a seguinte estrutura. Tabelas: User - Armazena as permisses para todos os usurios que tem acesso ao MySQL. Estrutura da Tabela:
Host - esse o nome do computador do usurio. Com MySQL, voc pode limitar o acesso de uma pessoa baseado na localizao da qual ela est conectada. User - nome do usurio Password - a senha do uurio Insert_priv - permite ao usurio o privilegio de inserir dados usando o metodo INSERT. Delete_priv - permite ao usurio o privilegio de excluir dados usando o metodo DELETE. Create_priv - concede ao usurio o privilegio de criar novas tabelas. Drop_priv - concede ao usurio o privilegio de excluir tabelas existentes. Reload_priv - permite ao usurio atualizar as tabelas. Shutdown_priv - concede ao usurio o privilegio de desligar o servidor. Process_priv - concede ao usurio o privilegio de visualizar os processos atraves do comando PROCESSLIST. File_priv - permite ao usurio ler e gravar arquivos que residem no servidor do MySQL. Grant_priv - permite ao usurio conceder privilegio para outros usurios. Index_priv - concede ao usurio o privilegio de poder criar indices. Alter_priv - concede ao usurio a capacidade de alterar a estrutura de uma tabela. Tabela DB A tabela Db contm permisses para todos os banco de dados contidos no servidor MySQL. As permisses concedidas aqui so dadas somente para o banco de dados identificado. A tabela Db possui basicamente a mesma estrutura da tabela user com algumas alteraes, como aqui armazenamos as permisses a nvel de banco de dados, no h privilegios a nvel de administrador. Ex: Reload_priv, Shutdown_priv, Process_priv e File_priv. Essas permisses no esto relacionadas a bancos de dados. Tabela Host A tabela host, junto com a tabela Db, controla o acesso limitando os host que podem conectarse ao banco de dados. Essa tabela tem as mesmas colunas que a tabela Db. As tabelas columns_priv e tables_priv Controlam as permisses para tabelas e colunas de um banco de dados. Com o MySQL, possvel limitar o que um usurio pode fazer em uma coluna de uma tabela. Essas tabela compartilha das seguintes colunas. Host - o host do qual o usurio est conectado. Db - o banco de dados que contem as tabelas as quais voc est dando privilegios.
User - o nome do usurio Table_name - o nome da tabela do banco de dados em que voc est configurando as permisses. Column_priv - controla o nvel de acesso do usurio. Ela pode conter: select, insert, update, delete. Se mais de um privilegio for concedido os mesmos devem ser separados por virgula. Timestamp - armazena o registro de data/hora em ocorreram alteraes.
Adicionando privilgios Como j foram mencionados em matrias anteriores, os procedimentos para se adicionar um usurio e mquina(host), vamos mostrar agora como conceder privilgios aos usurios. No exemplo abaixo daremos permisso de uso do SELECT.
Usando o comando GRANT O comando GRANT mais uma opo de manipular os privilgios de usurios. Sintaxe:
GRANT [privilgio] (nome da coluna) On nomebanco.nometabela To nomeusurio@nomehost Identifield by "senha" [with grant options]
os privilgio que voc pode conceder so: ALL - concede ao usurio todos os privilgios. ALTER - concede ao usurio o privilgios de alterar a estrutura das tabelas. CREATE - concede ao usurio o privilgios de criar tabelas. DELETE - concede ao usurio o privilgios de excluir registro das tabelas DROP - concede ao usurio o privilgios de excluir tabelas/bancos de dados. FILE - concede ao usurio o privilgios de ler e gravar arquivos no servidor. INDEX - concede ao usurio o privilgios de adicionar ou excluir ndices. INSERT - concede ao usurio o privilgios de inserir registros nas tabelas PROCESS - concede ao usurio o privilgios de visualizar processos. SELECT - concede ao usurio o privilgios de executar consultas. SHUTDOWN - concede ao usurio o privilgios de desligar o servidor. UPDATE - d ao usurio o privilgios de atualizar os dados nas tabelas. USAGE - concede ao usurio o privilgios de conectar-se ao servidor, mas no lhe-permite fazer mais nada alm disso. No exemplo abaixo daremos as usurio o privilgio de Consultar, Gravar e Excluir registro para todas as tabelas do banco.