DISCIPLINAS DO CURSO INFORMÁTICA ÊNFASE GESTÃO DE NEGÓCIOS. PROFESSOR: DOUGLAS DUARTE DISCIPLINA: LPBD 5º SEMESTRE – AULA 02 MYSQL O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza a linguagem SQL (Structured Query Language - Linguagem de Consulta Estruturada) 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, Banco Bradesco, Dataprev, HP, Nokia, Sony, US. Federal Reserve Bank, Associated Press, Alcatel, Cisco Systems e outros. 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 70 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 das licenças livres. 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. 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. Características • • • • • • Portabilidade (suporta praticamente qualquer plataforma atual); Compatibilidade (existem drivers ODBC, JDBC e .NET e módulos de interface para diversas linguagens de programação, como Delphi, Java, C/C++, Python, Perl, PHP, ASP e Ruby) Excelente desempenho e estabilidade; Pouco exigente quanto a recursos de hardware; Facilidade de uso; É um Software Livre com base na GPL; • • • • • • • Contempla a utilização de vários Storage Engines como MyISAM, InnoDB, Falcon, BDB, Archive, Federated, CSV, Solid... Suporta controle transacional; Suporta Triggers; Suporta Cursors (Non-Scrollable e Non-Updatable); Suporta Stored Procedures e Functions; Replicação facilmente configurável; Interfaces gráficas ([MySQL Toolkit]) de fácil utilização cedidos pela MySQL Inc. Vantagens Outra grande vantagem é ter código aberto e funcionar em um grande número de sistemas operacionais : Windows, Linux, FreeBSD, BSDI, Solaris, Mac OS X, SunOS, SGI, etc. É reconhecido pelo seu desempenho e robustez e também por ser multitarefa e multi-usuário. A própria Wikipédia, usando o programa MediaWiki, utiliza o MySQL para gerenciar seu banco de dados, demonstrando que é possível utilizá-lo em sistemas de produção de alta exigência e em aplicações sofisticadas. No passado, devido a não possuir (até a versão 3.x) funcionalidades consideradas essenciais em muitas áreas, como stored procedures, two-phase commit, subselects, foreign keys ou integridade referencial, era frequentemente considerado um sistema mais "leve" e para aplicações menos exigentes, sendo preterido por outros sistemas como o PostgreSQL. Para testar se o MySQL esta instalado corretamente , execute a seguinte linha no prompt do DOS: c:\mysql\bin\mysql Se tudo estiver nos seus devidos lugares você vai receber a seguinte tela: Vamos então a partir daqui mostrar alguns conceitos básicos relacionados com comandos SQL para o MySQL no Windows usando o prompt de comandos. Embora existam programas com interfaces gráficas que fazem este serviço acho bom você conhecer esta opção. Vamos lá... Os comandos serão digitados na linha de comando ; após o termino de cada linha tecle Enter e para executar o comando tecle ; e Enter. 1- Para exibir os bancos de dados disponíveis use o comando : Show DataBases O resultado do comando esta exibindo os três bancos de dados que eu tenho disponível no meu MySQL Nota: O comando Select Database(); exibe o database atual. 2- Agora eu vou criar um novo banco de dados chamado Teste usando o comando : Create Database e a seguir irei exibir os banco de dados existentes , conforme abaixo: 3- Para trabalhar com um banco de dados usamos o comando : Use <nome_do_banco_de_dados> . Vamos usar o banco de dados Teste e exibir as tabelas existentes usando o comando Show Tables: O comando Show tables não encontrou nenhuma tabela no banco de dados Teste Nota: Para excluir um banco de dados use comando : DROP DATABASE <nome_do_banco_de_dados> 4- Vamos criar uma tabela no banco de dados Teste. Para isto usamos o comando Create Table com a seguinte sintaxe: CREATE TABLE table_name (column_name1 type [modifiers] [, column_name2 type [modifiers]]) Vamos criar uma tabela chamada Clientes com seguinte estrutura: • • • • Codigo - chave primária Nome - VarChar(30) Endereco - VarChar(30) Estado - char(2) nota: Para definir a coluna como do tipo autoincremental basta acrescentar :AUTO_INCREMENT na definição da coluna. Para o exemplo acima faríamos: CODIGO BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT 5- Para inserir dados na tabela usamos o comando Insert Into : INSERT INTO table_name (column1, column2, ..., columnN) VALUES (value1, value2, ..., valueN) Vamos inserir um registro na tabela usando a instrução SQL abaixo: INSERT INTO CLIENTES (Codigo,Nome, endereco, estado) VALUES(1,'Macoratti', 'Av. Mirassol 100', 'SP'); 6- Se quisermos obter informações detalhadas da estrutura da tabela usamos o comando : DESCRIBE <NOME_DA_TABELA> Nota: Temos abaixo os principais tipos de dados Tipo de Dados Descrição INT Representa um valor inteiro. Pode ser com sinal ou sem sinal REAL Representa um valor com ponto flutuante. Oferece uma grande precisão e uma extensa faixa de valores CHAR(n) Representa um valor caractere com tamanho fixo. TEXT Representa um valor para caractere com tamanho variável DATE Representa um valor de data padrão. Formato : YYYY-MM-DD (200101-01) TIME Representa um valor de tempo padrão. Armazena a hora de um dia independente de uma data particular. Formato : hh:mm:ss (06:00:00) 7- Para excluir uma tabela basta usar o comando DROP <nome_da_tabela> 8- Para atualizar uma coluna podemos usar o comando : UPDATE . Abaixo uma das sintaxes possíveis onde atualizamos a coluna Endereco. A sintaxe para o comando UPDATE é : UPDATE table_name SET column1=value1, column2=value2, ..., columnN=valueN [WHERE clause] 9 - Para excluir uma linha da tabela usamos o comando DELETE . Abaixo estou excluindo a linha inserida acima . Note que é aconselhável especificar a condição na cláusula WHERE. A sintaxe é : DELETE FROM table_name [WHERE clause] 10 - Para encerrar este primeiro contato com as operações básicas SQL no MySQL vamos realizar uma junção de duas tabelas. Para isto vamos criar uma tabela chamada veículos que estará relacionada coma tabela teste criada acima e conterá os dados dos veículos de cada cliente: Exibindo as tabelas existentes e a estrutura da tabela criada teremos: Vamos agora incluir alguns dados na tabela teste e na tabela veículos usando INSERT INTO. Obs.: Podemos usar a notação Insert Into values() : Ex: insert into veiculos values( 1, 'MERCEDES', 'BRANCA', 1, 3000) Abaixo temos o resultado final das inclusões: Vamos fazer a nossa junção. Usamos para isto a cláusula SELECT e definimos a tabela e o nome do campo que desejamos exibir separados por um ponto ; a seguir relacionamos as tabelas de dados na cláusula FROM e definimos a condição na cláusula WHERE . O resultado é exibido abaixo: O que foi mostrado aqui é apenas a ponto do iceberg , mas com os conceitos expostos você pode se virar usando comandos SQL básicos na linha de comando do prompt do MySQL.