Comandos SQL

Propaganda
Banco de Dados
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:
Professor Victor Sotero
Banco de Dados
● 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
Professor Victor Sotero
Banco de Dados
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
Professor Victor Sotero
Banco de Dados
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.
Professor Victor Sotero
Banco de Dados
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.
Professor Victor Sotero
Banco de Dados
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:
Professor Victor Sotero
Banco de Dados
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.
Professor Victor Sotero
Banco de Dados
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
Professor Victor Sotero
Banco de Dados
'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.
Professor Victor Sotero
Download