Principais Comandos SQL Usados no MySql O que é um SGBD? Um Sistema Gerenciador de Banco de Dados (como no Brasil) ou Sistema Gestor de Base de Dados (SGBD) é o conjunto de programas de computador (softwares) responsáveis pelo gerenciamento de uma base de dados. O principal objetivo é retirar da aplicação cliente a responsabilidade de gerenciar o acesso, manipulação e organização dos dados. O SGBD disponibiliza uma interface para que os seus clientes possam incluir, alterar ou consultar dados. O que é o Mysql? É um servidor de bancos de dados SQL (Structured Query Language - Linguagem Estruturada para Pesquisas) muito rápido, multitarefa e multi-usuário. O MySQL foi desenvolvido pela TCX em 1996. Atualmente a MySQL AB(companhia dos fundadores e principais desenvolvedores) desenvolve o programa. Eles criaram-no porque precisavam de um banco de dados relacional que pudesse tratar grandes quantidades de dados em máquinas de custo relativamente barato. O MYSQL é um dos bancos de dados relacionais mais rápidos do mercado, apresenta quase todas as funcionalidades dos grandes bancos de dados. É executado principalmente nos sistemas que utilizam a tecnologia UNIX, embora também funcione com outros S.O. s, o Windows por exemplo. Suas principais características:
Multi-plataforma Utiliza padrão ANSI/ISO SQL Open Source (GPL ou Comercial License) Rápido, confiável, e fácil de usar Suporte a operadores e funções Trabalha com bancos de dados enormes(mais de 60.000 tabelas e 5 milhões de registros) Até 32 índices por tabela (composto de 1 a16 colunas) Mensagens em vários idiomas Escolha de codificação para gravar dados API's em várias linguagens (p.e. C, C++, Eiffel, Java, Perl, PHP, Python, Ruby e Tcl) O mysql é gratuito? O MySQL é regido pela licença GPL, portanto é open source. Muitas pessoas confundem "free" com "grátis" o que é comum aqui no Brasil. Mas em se tratando de software este "free" é de open source e não gratuito. Para poder utilizar o MySQL sob a licença GPL e não precisar pagar, o produto desenvolvido precisa ser GPL também. Introdução Iniciando com o Mysql Um comando normalmente consiste de uma instrução SQL
seguida por um ponto e vírgula(;). Um comando não necessita estar todo em uma única linha, então comandos extensos que necessitam de várias linhas não são um problema. O mysql determina onde sua instrução termina através do ponto e vírgula terminador, e não pelo final da linha de entrada. Comandos SQL Mostrar todos os bancos de dados já criados dentro do MySQL. Show databases; Abrindo(conectando a um banco de dados Use [nome do banco de dado]; Ex.: use escola; Criando um banco de dados. Create database [nome do banco]; Ex.: create database faculdade; Apagando um banco de dados. Drop database [nome do banco]; ex: drop database farmacia; Apagando tabelas; drop table [nome da tabela]; ex: drop table produtos; Mostrando as tabelas já existentes dentro do banco selecionado. Show tables; Mostrando as colunas(atributos) de uma tabela. Show columns in [nome da tabela]; ou desc [nome da
tabela]; Ex.: show columns in aluno; ou desc aluno; Criando tabelas. create table nome_da_tabela ( campo1 tipo_do_campo, campo2 tipo_do_campo ); Ex.: create table empregado( codigo int not null, nome varchar(45) not null, data_nasc date not null, cpf int not null); Observem que utilizamos um comando not null. Esse comando serve para especificar que não podemos aceitar valores nulos dentro daquele campo. Cada coluna(atributo) a ser criado, deve ser separado por um vírgula na hora de sua criação. Observem também os tipos de dados referentes a cada coluna específica, podemos limitar o tamanho de uma varchar, no nosso exemplo limitamos ao tamanho de 45 caracteres. Nós também podemos criar tabelas com chave primária, aliás essa é uma ideia crucial na criação de um banco de dados correto.
Observe que agora foi utilizado uma cláusula AUTO_INCREMENT, isso se faz necessário quando utilizado em um campo que seja chave primária, pois assim garante que esse campo, seja incrementado automaticamente. Criando tabelas com chave estrangeiras. Obs.: para criar uma chave estrangeira, é preciso que a mesma já tenha sido criada na sua tabela original como chave primária. Inserindo valores. Levando em consideração que foi criado uma tabela disciplina, e que a mesma contém os seguintes atributos: codigo, nome e carga_horaria.
Insert into disciplina values(10,'banco de Dados',120); outro exemplo insert into disciplina(nome,carga_horaria) values('programacao',120); Observem que nesse segundo exemplo, eu selecionei os campos no qual eu gostaria de inserir os valores. Não selecionei o campo código, pois o mesmo será incrementado automaticamente. Nós podemos também utilizar comandos para consultar dados dentro de uma tabela, isso é feito através do comando select. Selecione tudo da tabela cliente. Select * from cliente; O asterisco representa dos os campos da tabela cliente. Podemos também selecionar campos específicos de uma tabela. Ex: Mostrar somente o nome e a carga horária da tabela disciplina. Select nome,carga_horaria from cliente; Você também pode utilizar operadores: =, <, >, <=, >= e!=. Ex: Mostrar o nome das disciplinas que tenham carga horária igual a 80. select nome from disciplinas where carga_horaria=80; A cláusula where significa ONDE. Outros exemplos:
Mostrar o nome e codigo dos clientes que tenham codigo maior ou igual a 100. select codigo,nome from clientes where codigo>=100; Mostrar os nomes dos empregados que ganham menos de 1000. select nome from empregados where salario<1000; Além dos operadores de comparação, nós também podemos utilizar os operadores lógicos, que são: and e or. Exemplo: Mostrar o código e nome das disciplinas que tenham codigo maior que 20 e também tenha carga horária igual a 120. select codigo,nome from disciplinas where codigo>20 and carga_horaria=120; Mostrar os nomes e codigos dos clientes que tenham nome igual a Carla ou codigo menor que 30. select codigo,nome from clientes where (nome='carla') or (codigo<30); Mostrar os codigos, nomes e duração dos filmes que tenham duração menor que 90 minutos e também tenham o gênero comédia. Select codigo,nome,duracao from filmes where duracao<90 and genero='comedia'; Mostrando o resultado em ordem alfabética.
Exemplo: mostre os nomes dos alunos que não tenham cpf em ordem alfabética. Select nome from aluno where cpf=null order by nome; Nós também podemos utilizar operadores aritméticos: +, -, / e *. Exemplo: Mostrar os nomes dos vendedores juntamente com seus salários multiplicados por 2. select nome, salario=(salario*2) from vendedor; Muitas vezes se faz necessário mostrar o maior ou menor valor dentro de uma coluna, para isso nós utilizamos o MAX(maior) e o MIN(menor). Exemplo: mostre o maior e menor salário dos vendedores. Select max(salario),min(salario) from vendedor; Mostrar o somatório de uma coluna(sum). Exemplo: Selecione a quantidade total pedida para o produto 'LEITE', cujo código é igual a 78 na tabela pedido. Select sum(quantidade) from item_pedido Algumas vezes poderemos mostrar a média dentro de alguma tabela, usamos então a função AVG. Exemplo: Qual a média dos salários dos funcionários? Select avg(salario) from funcionarios; Exemplo2: Qual a média das vendas do produto
'REFRIGERANTE' de código 200? select avg(valor) from vendas where codigo=200; Podemos mostrar também a quantidade de vezes que determinada coisa acontece dentro de uma tabela. Exemplo: Mostrar a quantidade de alunos que tem matricula maior que 200. select count(*) from aluno where matricula>200; Exemplo2: Mostrar a quantidade de alunos que não têm CPF. Select count(*) from aluno where cpf=null; Nós também podemos fazer um select que não mostre valores repetitivos dentro de uma tabela. Exemplo: Mostrar todos os clientes sem repetição de nomes. Select distinct nome from clientes; Por enquanto até a prova, só será necessário utilizar esses comandos.