mysql_introducao
Transcrição
Introdução ao MySQL Wikipédia - http://pt.wikipedia.org/wiki/MySQL O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza a linguagem SQL (Linguagem de Consulta Estruturada, do inglês Structured Query Language) como interface. É atualmente um dos bancos de dados mais populares, com mais de 10 milhões de instalações pelo mundo. Entre os usuários do banco de dados MySQL estão: NASA, Friendster, Banco Bradesco, Dataprev, HP, Nokia, Sony, Lufthansa, U.S Army, US. Federal Reserve Bank, Associated Press, Alcatel, Slashdot, Cisco Systems, CanaVialis S.A. e outros. História O MySQL foi criado na Suécia por dois suecos e um finlandês: David Axmark, Allan Larsson e Michael "Monty" Widenius, que têm trabalhado juntos desde a década de 1980. Hoje seu desenvolvimento e manutenção empregam aproximadamente 400 profissionais no mundo inteiro, e mais de mil contribuem testando o software, integrando-o a outros produtos, e escrevendo a respeito dele. No dia 16 de Janeiro de 2008, a MySQL AB, desenvolvedora do MySQL foi adquirida pela Sun Microsystems, por US$ 1 bilhão, um preço jamais visto no setor de licenças livres. No dia 20 de Abril de 2009 a Oracle compra a Sun Microsystems e todos o seu produtos, incluindo o MySQL. O sucesso do MySQL deve-se em grande medida à fácil integração com o PHP incluído, quase que obrigatoriamente, nos pacotes de hospedagem de sites da Internet oferecidos atualmente. Empresas como Yahoo! Finance, MP3.com, Motorola, NASA, Silicon Graphics e Texas Instruments usam o MySQL em aplicações de missão crítica[3]. A Wikipédia é um exemplo de utilização do MySQL em sites de grande audiência. O MySQL hoje suporta Unicode, Full Text Indexes, replicação, Hot Backup, GIS, OLAP e muitos outros recursos. Ribamar FS – http://ribafs.org Aprendendo a instalar e configurar o phpMyAdmin Introdução O que é o phpMyAdmin? phpMyAdmin é pretendido para administração do MySQL sobre aWeb.Com o phpMyAdmin instalado em seu servidor você podera críar banco de dados, copiar tabelas, criar, apagar e editar. Facil configuração e administração. O que é necessario para instalar o phpMyAdmin? mySQL: www.mysql.com Apache: www.apache.org PHP: www.php.net Instalando Entre na url www.phpwizard.net e entre na seção phpMyAdmin, você podera optar por duas opções do phpMyAdmin: 1-) Extensão *.php3 2-) Extensão *.php Aconselho a pega o phpMyAdmin de extensão *.php, porque a maioria dos servidores reconhece essa extensão. Configurando Após fazer o download descompacte o mesmo e copie todos os arquivos para uma pasta no seu servidor ex: mysql e edite o arquivo config.inc $cfgServers[1]['host'] = 'localhost'; // MySQL hostname mantenha localhost $cfgServers[1]['port'] = ''; // MySQL port - leave blank for default port mantenha $cfgServers[1]['adv_auth'] = true; // Use advanced authentication? aconselho a deixar true pois assim ao acessar a url no browser ele aparecera uma caixa de login e senha do usuário, para sua melhor segurança. caso deixe false ele não aparecera nada e entrara direto. Ribamar FS – http://ribafs.org $cfgServers[1]['stduser'] = 'usuário'; // MySQL standard user (only needed with advanced auth) nome do usuário $cfgServers[1]['stdpass'] = 'senha'; // MySQL standard password (only needed with advanced auth) senha $cfgServers[1]['user'] = 'usuário'; // MySQL user (only needed with basic auth) nome do usuário $cfgServers[1]['password'] = 'senha'; // MySQL password (only needed with basic auth) senha Pronto a configuração basica do phpMyAdmin já esta pronta. Agora é só acessar via browser seu phpMyAdmin ex: www.seusite.com.br/mysql/ Qualquer duvida ou comentário, poste uma mensagem no forum. Tutorial feito por: Eduardo Luis de Medeiros [email protected] Ribamar FS – http://ribafs.org Introdução ao MySQL Teste de SQL Online http://www.w3schools.com/sql/default.asp http://www.w3schools.com/sql/sql_tryit.asp Instalação Sugestão: Instale com o pacote Xampp (http://xampp.sf.net) Executando Uma boa opção de administração do MySQL é o phpmyadmin, que também acompanha o Xampp. Administrando pela linha de comando mysql -h host -u root -p (o super usuário default é root) mysql -u root (sintaxe para acessar o MySQL local e quando estiver sem senha) Trocando a senha do Usuário root mysql -u root teste (Usuário root acessar banco teste) use mysql; UPDATE user SET Password=PASSWORD("novasenha") WHERE user="root"; FLUSH PRIVILEGES; Ou mysql -u root clientes SET PASSWORD FOR root=PASSWORD('senhadoroot'); Criando Usuários mysql --user=root mysql GRANT ALL PRIVILEGES ON *.* TO super@localhost IDENTIFIED BY 'senha' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO super@"%" IDENTIFIED BY 'some_pass' WITH GRANT OPTION; super - é um total super usuário que pode se conectar no localhost e de qualquer lugar ("%"), mas precisa usar senha GRANT RELOAD,PROCESS ON *.* TO admin@localhost; admin - usuário que pode se conectar no localhost sem senha. Pode executar os comandos mysqladmin reload, mysqladmin refresh, and mysqladmin Ribamar FS – http://ribafs.org flush-* e mysqladmin processlist . Não tem nenhum privilégio relacionado aos bancos. GRANT USAGE ON *.* TO fraco@localhost; fraco - pode conectar somente via localhost sem senha mas sem privilégios, somente para uso. Exemplo: GRANT ALL PRIVILEGES ON *.* TO ribafs@localhost IDENTIFIED BY 'ribafs' WITH GRANT OPTION; mysql -u ribafs // Dá erro de senha mysql -u ribafs -p //Funciona após entrar a senha ribafs Removendo Usuários DROP USER nomeusuario; Privilégios REVOKE GRANT ALL ON nomebancooutabelaou*ou*.* FROM nomeusuario * - todas as tabelas *.* todos os bancos e todas as tabelas banco.* - todas as tabelas do banco GRANT SELECT,INSERT,UPDATE ON nomebanco.* TO nomeuser; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON nomebanco.* TO usuario@localhost IDENTIFIED BY 'senha'; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON nomebanco.* TO [email protected] IDENTIFIED BY 'senha'; GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON nomebanco.* TO usuario@'%' IDENTIFIED BY 'senha'; Remover o serviço: bin\mysqld --remove mysql Ribamar FS – http://ribafs.org Criar Tabelas Relacionadas create table produto( codigo int not null primary key, nome varchar(50) not null unique, descricao varchar(200), valor real(6, 2) ) ENGINE=INNODB; create table cliente( codigo int not null primary key, nome varchar(50) not null, email varchar(100) not null unique, cpf varchar(11) not null ) ENGINE=INNODB; create table pedido( numero int not null primary key auto_increment, codigocliente int not null references cliente(codigo), valortotal real(7,2) DEFAULT '0.00' NOT NULL ) ENGINE=INNODB; create table item( numeropedido int not null references pedido(numero), codigoproduto int not null references produto(codigo), quantidade int not null, primary key(numeropedido, codigoproduto) ) ENGINE=INNODB; CREATE TABLE product ( category INT NOT NULL, id INT NOT NULL, price DECIMAL, PRIMARY KEY(category, id) ) ENGINE=INNODB; CREATE TABLE product_order ( no INT NOT NULL AUTO_INCREMENT, product_category INT NOT NULL, product_id INT NOT NULL, customer_id INT NOT NULL, PRIMARY KEY(no), INDEX (product_category, product_id), FOREIGN KEY (product_category, product_id) REFERENCES product(category, id) ON UPDATE CASCADE ON DELETE RESTRICT, INDEX (customer_id), FOREIGN KEY (customer_id) REFERENCES customer(id) Ribamar FS – http://ribafs.org ) ENGINE=INNODB; O tipo InnoDb dá suporte à constraint Foreign Key (references). Resumo de Uso 1) mysql -u root -p ou mysql -u root mysql -h host -u user -p banco Obs: Caso receba a mensagem: Can't connect to MySQL server on 'localhost' Falta startar o MySQL 2) create database nomebanco; 3) use nomebanco; 4) create table nometabela(campos tipos...); 5) select * from nometabela; 6) show databases; 7) show tables; 8) describe nometabela; Importar e Exportar Exportando: bin\mysqldump -u user -p passwd banco > banco.sql Importando: bin\mysql -u user -p password banco < banco.sql Mudar Conjunto de Caracters para LATIN1 musql -u root \C latin1 Populando Tabelas após a Criação O comando LOAD DATA pode ser utilizado para popular tabelas, trazendo de arquivos: Ribamar FS – http://ribafs.org LOAD DATA LOCAL INFILE '/path/arquivo.txt' INTO TABLE nometabela; SELECT DATABASE(); SHOW CHARACTER SET; CREATE DATABASE db_name [[DEFAULT] CHARACTER SET charset_name] [[DEFAULT] COLLATE collation_name] ALTER DATABASE db_name [[DEFAULT] CHARACTER SET charset_name] [[DEFAULT] COLLATE collation_name] CREATE TABLE tbl_name (column_list) [[DEFAULT] CHARACTER SET charset_name] [COLLATE collation_name]] ALTER TABLE tbl_name [[DEFAULT] CHARACTER SET charset_name] [COLLATE collation_name] Example: CREATE TABLE t1 ( ... ) CHARACTER SET latin1 COLLATE latin1_danish_ci; col_name {CHAR | VARCHAR | TEXT} (col_length) [CHARACTER SET charset_name] [COLLATE collation_name] Example: CREATE TABLE Table1 ( column1 VARCHAR(5) CHARACTER SET latin1 COLLATE latin1_german1_ci ); Funções com Datas DATE_SUB SELECT something FROM tbl_name WHERE DATE_SUB(CURDATE(),INTERVAL 30 DAY) <= date_col; SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30'); DATE_ADD SELECT DATE_ADD('2006-05-00',INTERVAL 1 DAY); SELECT CURDATE(); SELECT CURTIME(); DATE_FORMAT SELECT date_format( '2006-04-30', '%d/%m/%Y' ); -- 30/04/2006 SELECT DATE_FORMAT('2003-10-03',GET_FORMAT(DATE,'EUR')); -- 03.10.2003 SELECT DATE_FORMAT('2006-06-00', '%d/%m/%Y'); Ribamar FS – http://ribafs.org SELECT NOW(); SELECT TO_DAYS('1997-10-07'); -- RETORNA DIAS SELECT YEAR('2000-01-01'); dbDESIGNER Gerenciamento e modelagem do SGBD MySQL. Site oficial - http://fabforce.net/dbdesigner4/ Download - http://fabforce.net/downloads.php O programa e a documentação. Tutorial usando com o PostgreSQL: http://www.flaviobrito.com.br/cursos/bd/apostilas/GuiaDBDesign4PosgreSQL.pdf Triggers no MySQL Criando uma tabela de logs Que guardará informações dos registros excluídos e atualizados Exemplo de tabela, cujas operações (delete e update) queremos monitorar create table clientes ( cliente int primary key, cpf char(11), nome char(45) not null, credito_liberado char(1) not null, data_nasc date, email varchar(50) )engine innodb; Exemplo de tabela onde queremos guardar as informações (logs) sobre as alterações, a data e hora e quem efetuou create table logs ( code int auto_increment primary key, tablel char(20) not null, operation char(6) not null, login char(12) not null, date_time datetime not null )engine innodb; Exemplo de trigger que fará o serviço automaticamente a cada operação de delete Ribamar FS – http://ribafs.org delimiter | DROP TRIGGER IF EXISTS tg_delete CREATE TRIGGER tg_delete BEFORE DELETE ON clientes FOR EACH ROW BEGIN INSERT INTO logs SET tablel = 'clientes', operation = 'delete',login = CURRENT_USER, date_time = NOW(); END; | delimiter; Exemplo de trigger que fará o serviço automaticamente a cada operação de update delimiter | CREATE TRIGGER tg_update BEFORE UPDATE ON clientes FOR EACH ROW BEGIN INSERT INTO logs SET cliente = OLD.cliente, nome=OLD.nome; END; | delimiter ; Ribamar FS – http://ribafs.org
Documentos relacionados
Base de Dados
de dados ou você não pode selecioná-lo. • Selecionando um banco de dados não significa que ele deve ser o padrão para a duração da ligação. • Enquanto um banco de dados é o padrão, você pode consul...
Leia maisMySQL e a comunidade de software livre
MySQL - Wikipedia, the free encyclopedia. Disponível em: http://en.wikipedia.org/wiki/MySQL MySQL :: MySQL 5.1 Reference Manual :: 1.3.2 History of MySQL. Disponível em: http://dev.mysql.com/doc/re...
Leia maisBancoDados - WordPress.com
• Relacionamento entre as tabelas e organização dos dados • Padronização da linguagem (SQL) • Armazenamento de dados com segurança • Criptografia de dados e controle de acesso • Backup e Recuperaçã...
Leia maisgestão de qualidade na resolução de requisição e incidentes em
empresa se mantenham em pé. Isso se dá pelo fato de que com a globalização, o acesso as informações se dão por igual à qualquer entidade do mundo, o que as obriga a buscarem o diferencial nos detal...
Leia mais