quinta-feira, 25 de novembro de 2010

view no mysql

Estou usando o mesmo database "veiculos"
Visão(view) é uma tabela virtual gerada a  partir do resultado de uma instrução SELECT.
Uma VIEW contém linhas e colunas, como se  fosse uma tabela real, os campos na VIEW são campos obtidos em uma tabela de um  banco de dados. Uma visão(view) pode chamar funções e  cláusulas SQL como WHERE, GROUP BY, ORDER BY, etc.

Um dos objetivos ao se implementar VIEWs é  evitar a constante manutenção de códigos SQL em aplicações, ou seja, pode-se implementar um  SELECT * padrão na aplicação e controlar o que e como será mostrado diretamente do servidor, alterando as características da VIEW.
Para criar uma VIEW, utiliza-se o comando  CREATE VIEW, cuja sintaxe é:
CREATE VIEW <nome da view> AS SELECT colunas(s) FROM <tabela> WHERE <condição>


Gente podemos criar a view dentro do workbench, observe nas tabelas que temos um place new view, quando você click e coloca esse componente na area do worbench, automaticamente se abre uma tela na parte inferior para digitar o Código, repare na figura :


digite o código: select * from proprietarios where sexo = 'F';
No mysql dê dois click em view1 e veras o resultado, observe que sempre dê um refresh no database, para que possa atualizar os dados.
Podemos criar varias views, comece a testar e você ficará esperto.
select valor,descricao from tiposinfracoes where valor > 300;
Uma vez criada a View, podemos realizar consultas sobre a View como se tratasse de uma tabela comum. Quando uma view é criada, ela fica armazenada no Banco de Dados e disponível para a consulta dos usuários.
Fácil nê...
Uma view não existe fisicamente, é apenas uma outra forma de obter os dados que existem em outras tabelas ou views. Pode-se decidir pela implementação de Views por várias razões,entre elas:
Segurança: evitar que alguns campos ou linhas estejam acessíveis a alguns tipos de usuário
Sigilo: evitar que usuários possam consultar dados de acesso privado
Simplicidade: condensar em uma única view o acesso a várias tabelas.




banco de dados 4

Ola gente vamos dar continuidade a banco de dados, nessa nova etapa irei mostrar alguns comandos mais avançados de banco de dados.
Vamos lá
Primeiro vamos modelar os dados com o workbrench
Iremos criar um banco de dados simulando infrações de transito.
Como já mostrei em banco de dados 1 a modelagem, só irei agora colocar imagens referentes ao mesmo, colocando os atributos que iremos trabalhar.
Nome do banco de dados
database : veiculos
Tabelas :
1.categoria
1.1 - id_categoria – chave primaria
1.2 - nome

2.cores
2.1 - id_cores – chave primaria
2.1 - nome

3.marcas
3.1 - id_marcas – chave primaria
3.2 – nome

4.modelos
4.1 - id_modelos – chave primaria
4.2 - nome

5.combustivel
5.1 - id_combustivel – chave primaria
5.2 - nome

6.estados
6.1 - id_estados – chave primaria
6.2 - nome
6.3 - sigla

7.cidade
7.1 - id_cidade – chave primaria
7.2 - nome

8.proprietarios
8.1 - id_proprietarios – chave primaria
8.2 - cpf
8.3 - nome
8.4 - endereco
8.5 - cep
8.6- sexo
8.7- datanascimento

9.veiculos
9.1 - id_veiculos – chave primaria
9.2 - renavam
9.3- chassi
9.4 - placa
9.5 - anofabricacao

10.tiposinfracoes
10.1 - id_tiposinfracoes – chave primaria
10.2 - descricao
10.3- valor

11.agentes
11.1 - id_agentes – chave primaria
11.2 - nome
11.3 - datacontratacao

12.infracoes
12.1 - id_infracoes – chave primaria
12.2 - datahora
12.3- local
12.4- velocidade
12.5- observacao

13.telefones
13.1- id_telefones – chave primaria
13.2- ddd
13.4- numero

Bom a sua tabela tem que está assim :


A diferença dos pontos tracejados para as linhas continuas é chave como primária e estrangeira ao mesmo tempo da relacionada (traço contínuo). Na maioria das vezes utilizamos o tracejado que utiliza a chave como somente estrangeira da entidade relacionada.


Ok se está tudo certo vamos gerar os scripts, dê o nome como veiculos.
Ok o seu script estará assim :
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

CREATE SCHEMA IF NOT EXISTS `veiculos` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;

USE `veiculos` ;

-- -----------------------------------------------------
-- Table `veiculos`.`categoria`
-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `veiculos`.`categoria` (

`id_categoria` INT NOT NULL ,

`nome` VARCHAR(45) NULL ,

PRIMARY KEY (`id_categoria`) )

ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `veiculos`.`cores`
-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `veiculos`.`cores` (
`id_cores` INT NOT NULL ,
`nome` VARCHAR(45) NULL ,
PRIMARY KEY (`id_cores`) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `veiculos`.`marcas`
-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `veiculos`.`marcas` (
`id_marcas` INT NOT NULL ,
`nome` VARCHAR(45) NULL ,
PRIMARY KEY (`id_marcas`) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `veiculos`.`modelos`
-- ----------------------------------------------------

CREATE TABLE IF NOT EXISTS `veiculos`.`modelos` (
`id_modelos` INT NOT NULL ,
`nome` VARCHAR(45) NULL ,
`marcas_id_marcas` INT NOT NULL ,
PRIMARY KEY (`id_modelos`) ,
INDEX `fk_modelos_marcas1` (`marcas_id_marcas` ASC) ,
CONSTRAINT `fk_modelos_marcas1`
FOREIGN KEY (`marcas_id_marcas` )
REFERENCES `veiculos`.`marcas` (`id_marcas` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `veiculos`.`combustivel`
-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `veiculos`.`combustivel` (
`id_combustivel` INT NOT NULL ,
`nome` VARCHAR(45) NULL ,
PRIMARY KEY (`id_combustivel`) )
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `veiculos`.`estados`
-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `veiculos`.`estados` (
`id_estados` INT NOT NULL ,
`nome` VARCHAR(45) NULL ,
`sigla` VARCHAR(2) NULL ,
PRIMARY KEY (`id_estados`) )
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `veiculos`.`cidade`
-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `veiculos`.`cidade` (
`id_cidade` INT NOT NULL ,
`nome` VARCHAR(45) NULL ,
`estados_id_estados` INT NOT NULL ,
PRIMARY KEY (`id_cidade`) ,
INDEX `fk_cidade_estados1` (`estados_id_estados` ASC) ,
CONSTRAINT `fk_cidade_estados1`
FOREIGN KEY (`estados_id_estados` )
REFERENCES `veiculos`.`estados` (`id_estados` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `veiculos`.`proprietarios`
-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `veiculos`.`proprietarios` (
`id_proprietarios` INT NOT NULL ,
`cpf` VARCHAR(45) NULL ,
`nome` VARCHAR(45) NULL ,
`endereco` VARCHAR(45) NULL ,
`cep` VARCHAR(45) NULL ,
`sexo` CHAR(1) NULL ,
`datanascimento` DATETIME NULL ,
`cidade_id_cidade` INT NOT NULL ,
PRIMARY KEY (`id_proprietarios`) ,
INDEX `fk_proprietarios_cidade1` (`cidade_id_cidade` ASC) ,
CONSTRAINT `fk_proprietarios_cidade1`
FOREIGN KEY (`cidade_id_cidade` )
REFERENCES `veiculos`.`cidade` (`id_cidade` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `veiculos`.`veiculos`
-- -----------------------------------------------------

CREATE TABLE IF NOT EXISTS `veiculos`.`veiculos` (
`id_veiculos` INT NOT NULL ,
`renavam` INT NULL ,
`chassi` VARCHAR(20) NULL ,
`placa` VARCHAR(20) NULL ,
`anofabricacao` INT NULL ,
`categoria_id_categoria` INT NOT NULL ,
`cores_id_cores` INT NOT NULL ,
`modelos_id_modelos` INT NOT NULL ,
`combustivel_id_combustivel` INT NOT NULL ,
`proprietarios_id_proprietarios` INT NOT NULL ,
PRIMARY KEY (`id_veiculos`) ,
INDEX `fk_veiculos_categoria` (`categoria_id_categoria` ASC) ,
INDEX `fk_veiculos_cores1` (`cores_id_cores` ASC) ,
INDEX `fk_veiculos_modelos1` (`modelos_id_modelos` ASC) ,
INDEX `fk_veiculos_combustivel1` (`combustivel_id_combustivel` ASC) ,
INDEX `fk_veiculos_proprietarios1` (`proprietarios_id_proprietarios` ASC) ,
CONSTRAINT `fk_veiculos_categoria`
FOREIGN KEY (`categoria_id_categoria` )
REFERENCES `veiculos`.`categoria` (`id_categoria` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_veiculos_cores1`
FOREIGN KEY (`cores_id_cores` )
REFERENCES `veiculos`.`cores` (`id_cores` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_veiculos_modelos1`
FOREIGN KEY (`modelos_id_modelos` )
REFERENCES `veiculos`.`modelos` (`id_modelos` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_veiculos_combustivel1`
FOREIGN KEY (`combustivel_id_combustivel` )
REFERENCES `veiculos`.`combustivel` (`id_combustivel` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_veiculos_proprietarios1`
FOREIGN KEY (`proprietarios_id_proprietarios` )
REFERENCES `veiculos`.`proprietarios` (`id_proprietarios` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `veiculos`.`tiposinfracoes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `veiculos`.`tiposinfracoes` (
`id_tiposinfracoes` INT NOT NULL ,
`descricao` VARCHAR(45) NULL ,
`valor` DECIMAL(15,2) NULL ,
PRIMARY KEY (`id_tiposinfracoes`) )
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `veiculos`.`agentes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `veiculos`.`agentes` (
`id_agentes` INT NOT NULL ,
`nome` VARCHAR(45) NULL ,
`datacontratacao` DATE NULL ,
PRIMARY KEY (`id_agentes`) )
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `veiculos`.`infracoes`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `veiculos`.`infracoes` (
`id_infracoes` INT NOT NULL ,
`datahora` DATETIME NULL ,
`local` VARCHAR(45) NULL ,
`velocidade` INT NULL ,
`observacao` VARCHAR(255) NULL ,
`veiculos_id_veiculos` INT NOT NULL ,
`tiposinfracoes_id_tiposinfracoes` INT NOT NULL ,
`agentes_id_agentes` INT NOT NULL ,
PRIMARY KEY (`id_infracoes`) ,
INDEX `fk_infracoes_veiculos1` (`veiculos_id_veiculos` ASC) ,
INDEX `fk_infracoes_tiposinfracoes1` (`tiposinfracoes_id_tiposinfracoes` ASC) ,
INDEX `fk_infracoes_agentes1` (`agentes_id_agentes` ASC) ,
CONSTRAINT `fk_infracoes_veiculos1`
FOREIGN KEY (`veiculos_id_veiculos` )
REFERENCES `veiculos`.`veiculos` (`id_veiculos` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_infracoes_tiposinfracoes1`
FOREIGN KEY (`tiposinfracoes_id_tiposinfracoes` )
REFERENCES `veiculos`.`tiposinfracoes` (`id_tiposinfracoes` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `fk_infracoes_agentes1`
FOREIGN KEY (`agentes_id_agentes` )
REFERENCES `veiculos`.`agentes` (`id_agentes` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

-- -----------------------------------------------------
-- Table `veiculos`.`telefones`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `veiculos`.`telefones` (
`id_telefones` INT NOT NULL ,
`ddd` VARCHAR(2) NULL ,
`numero` VARCHAR(8) NULL ,
`proprietarios_id_proprietarios` INT NOT NULL ,
PRIMARY KEY (`id_telefones`) ,
INDEX `fk_telefones_proprietarios1` (`proprietarios_id_proprietarios` ASC) ,
CONSTRAINT `fk_telefones_proprietarios1`
FOREIGN KEY (`proprietarios_id_proprietarios` )
REFERENCES `veiculos`.`proprietarios` (`id_proprietarios` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Ok, agora gerado o script, abra o mysql query browser e vamos começar a brincar,vá em file open query ,navegue ate onde você salvou o script veiculos, abra ele e execute. Depois vá onde tem o database (a sanfona amarela) e com o botão direito do mouse click em refresh schema. Depois disso irá verificar que foi criado o bancco de dados chamado veiculos com todas as tabelas. Agora iremos inserir dados nela, para cada uma coloque os seguintes dados :

-- -----------------------------------------------------
--Insira registros nas tabelas: agentes,
-- -----------------------------------------------------

INSERT INTO agentes VALUES('1','andrea','2000-01-01');
INSERT INTO agentes VALUES('2','adriana','2000-02-01');
INSERT INTO agentes VALUES('3','iza','2000-03-01')
INSERT INTO agentes VALUES('4','sidnei','2000-04-01')
INSERT INTO agentes VALUES('5','lula','2000-05-01')
INSERT INTO agentes VALUES('6','marta','2000-06-01')
INSERT INTO agentes VALUES('7','wel','2000-07-01')
INSERT INTO agentes VALUES('8','beta','2000-08-01')
INSERT INTO agentes VALUES('9','emanoel','2000-09-01')
INSERT INTO agentes VALUES('10','marli','2000-10-01')

-- -----------------------------------------------------
-- Insira registros nas tabelas:categorias,
-- -----------------------------------------------------
INSERT INTO categoria VALUES('1','carro');
INSERT INTO categoria VALUES('2','moto');
INSERT INTO categoria VALUES('3','onibus')
INSERT INTO categoria VALUES('4','caminhao')
-- -----------------------------------------------------
-- Insira registros nas tabelas:cores,
-- -----------------------------------------------------
INSERT INTO cores VALUES('1','prata')
INSERT INTO cores VALUES('2','vermelho')
INSERT INTO cores VALUES('3','preto')
INSERT INTO cores VALUES('4','amarelo')
INSERT INTO cores VALUES('5','branco')
-- -----------------------------------------------------
-- Insira registros nas tabelas:combustiveis,
-- -----------------------------------------------------
INSERT INTO combustivel VALUES('1','gasolina')
INSERT INTO combustivel VALUES('2','etanol')
INSERT INTO combustivel VALUES('3','etanol-gasolina')
-- -----------------------------------------------------
-- Insira registros nas tabelas:estados,
-- -----------------------------------------------------
INSERT INTO estados VALUES('1','Bahia','Ba')
INSERT INTO estados VALUES('2','Pernambuco','Pe')
INSERT INTO estados VALUES('3','Sao Paulo','SP')
INSERT INTO estados VALUES('4','Rio de Janeiro','RJ')
INSERT INTO estados VALUES('5','Sergipe','Se')
INSERT INTO estados VALUES('6','Minas Gerais','MG')
INSERT INTO estados VALUES('7','Ceara','Ce')
-- -----------------------------------------------------
-- Insira registros nas tabelas:infracoes,
-- -----------------------------------------------------

INSERT INTO infracoes VALUES('1','2010-10-12 12:43:00','av.caymi','120','advertencia','1','1','1')
INSERT INTO infracoes VALUES('2','2010-09-13 11:21:00','av.acm','200','advertencia','2','2','2')
INSERT INTO infracoes VALUES('3','2010-08-14 10:11:00','av.paralela','240','advertencia','3','3','3')
INSERT INTO infracoes VALUES('4','2010-07-15 15:13:00','av.suburbana','130','advertencia','4','4','4')
INSERT INTO infracoes VALUES('5','2010-06-16 17:16:00','av.lucaia','150','advertencia','5','5','5')

-- -----------------------------------------------------
-- Insira registros nas tabelas:marcas,
-- -----------------------------------------------------
INSERT INTO marcas VALUES('1','RENAULT')
INSERT INTO marcas VALUES('2','Volkswagen')
INSERT INTO marcas VALUES('3','Peugeout')
INSERT INTO marcas VALUES('4','Citroen')
INSERT INTO marcas VALUES('5','Chevrolet')
INSERT INTO marcas VALUES('6','Honda')
INSERT INTO marcas VALUES('7','Suzuki')
INSERT INTO marcas VALUES('8','Yamaha')
INSERT INTO marcas VALUES('9','Kawasaki')
INSERT INTO marcas VALUES('10','Dukati')
-- -----------------------------------------------------
-- Insira registros nas tabelas:modelos,
-- -----------------------------------------------------

INSERT INTO modelos VALUES('1','Clio','1')
INSERT INTO modelos VALUES('2','Gol','2')
INSERT INTO modelos VALUES('3','307HB','3')
INSERT INTO modelos VALUES('4','C3','4')
INSERT INTO modelos VALUES('5','Agile','5')
INSERT INTO modelos VALUES('6','CB600','6')
INSERT INTO modelos VALUES('7','HAYABUSA','7')
INSERT INTO modelos VALUES('8','FAZER 600','8')
INSERT INTO modelos VALUES('9','Ninja','9')
INSERT INTO modelos VALUES('10','Matrix','10')
-- -----------------------------------------------------
-- Insira registros nas tabelas: proprietarios,
-- -----------------------------------------------------

INSERT INTO proprietarios VALUES('1','123123','Andrea','rua a','400000','F','1977-10-23','1')

INSERT INTO proprietarios VALUES('2','123321','Adriana','rua b','400000','F','1992-02-06','2')
INSERT INTO proprietarios VALUES('3','321123','Sidnei','rua c','400000','M','1974-10-28','3')
INSERT INTO proprietarios VALUES('4','213213','Lula','rua d','400000','M','1950-02-03','4')
INSERT INTO proprietarios VALUES('5','543211','Iza','rua e','400000','F','1954-10-24','5')
INSERT INTO proprietarios VALUES('6','654321','Marly','rua f','400000','F','1972-07-15','7')

-- -----------------------------------------------------
-- Insira registros nas tabelas: tiposinfracoes
-- -----------------------------------------------------
INSERT INTO tiposinfracoes VALUES('1','grave','350.00','7')
INSERT INTO tiposinfracoes VALUES('2','media','250.00','5')
INSERT INTO tiposinfracoes VALUES('3','leve','150.00','3')
INSERT INTO tiposinfracoes VALUES('4','advertencia','50.00','2')
INSERT INTO tiposinfracoes VALUES('5','gravissima','550.00','7')

-- -----------------------------------------------------
-- Insira registros nas tabelas: veiculos
-- -----------------------------------------------------
INSERT INTO veiculos VALUES('1','1212','2222111333','JQH6726','2009','1','1','2','1','1')
INSERT INTO veiculos VALUES('2','3211','1143553322','HQW1233','2008','2','2','1','2','2')
INSERT INTO veiculos VALUES('3','4322','3211445553','FWE3255','2005','3','3','3','3','3')
INSERT INTO veiculos VALUES('4','5443','7665533222','ISE1234','2003','4','4','4','1','4')
INSERT INTO veiculos VALUES('5','6211','9244343222','JDW2111','2002','2','5','5','2','5')
INSERT INTO veiculos VALUES('6','7322','5332332211','AQW1232','2001','3','1','6','3','6')
-- -----------------------------------------------------
-- Insira registros nas tabelas: cidades,
-- -----------------------------------------------------
INSERT INTO cidade VALUES('1','Salvador','1')
INSERT INTO cidade VALUES('2','Pernambuco','2')
INSERT INTO cidade VALUES('3','Sao Paulo','3')
INSERT INTO cidade VALUES('4','Rio de Janeiro','4')
INSERT INTO cidade VALUES('5','Sergipe','5')
INSERT INTO cidade VALUES('6','Minas Gerais','6')
INSERT INTO cidade VALUES('7','Fortaleza','7')

Agora iremos testar alguns comandos do mysql, alguns até parecidos com os primeiros exemplos,uma coisa que aprendi: não tenha pressa, vá com calma, pois o conhecimento é igual a uma construção de um arranha céus, não é feito do dia para noite mais devagar , se não entender, poste duvidas. Espero ter ajudado a alguém...

Alterar a tabela proprietarios para que o atributo nome seja um varchar(60).
ALTER TABLE proprietarios MODIFY nome varchar(60);

Alterar a tabela tipoinfracoes para acrescentar um novo atributo pontos int(1).
ALTER TABLE tipoinfracoes ADD pontos int(11);

Exclua a tabela telefones.
DROP TABLE telefones;

Altere em combustível o registro onde nome ="álcool e gasolina" para nome="flex- álcool e gasolina".
UPDATE combustíveis set nome="flex- álcool e gasolina" where nome ="álcool e gasolina";
Liste o nome dos modelos da marca 3.
SELECT nome from modelos where marcas_id_marcas=3

Liste o renavam, data e tipoinfracao das infrações que ocorreram apartir do dia 01/04/2009.
SELECT * FROM infracoes where `datahora` >= '2009-04-01'

Liste o renavam e data das infrações que ocorreram apartir do dia 01/04/2009 e tipo de infração igual a 5.
SELECT * FROM infracoes where `datahora` >= '2009-04-01' and tiposinfracoes_id_tiposinfracoes = '5'

Liste o renavam e data das infrações que ocorreram entre os dias 01/03/2009 e 31/03/2009 e tipo de infração igual a 5
SELECT * FROM infracoes where `datahora` >= '2009-03-01' and `datahora` <= '2009-03-31' and tiposinfracoes_id_tiposinfracoes = '5'

Exiba placa, modelo e cor dos veículos que a placa começa com JRO.
SELECT placa,modelos_id_modelos,cores_id_cores from veiculos where placa LIKE 'JRO%'

Exiba placa, modelo e cor dos veículos que a placa tem o terceiro dígito Z e termina com 9.
SELECT placa,modelos_id_modelos,cores_id_cores FROM veiculos WHERE placa LIKE '__Z%0'

Selecione marca e modelo dos modelos que têm marcas que sejam igual a 01, 05, 12, 25, 33 ou 42, ordenado por marca e modelo.
SELECT * FROM marcas m LEFT OUTER JOIN modelos mo ON mo.marcas_id_marcas=m.id_marcas

WHERE marcas_id_marcas = '1' or marcas_id_marcas = '5' or marcas_id_marcas = '12' or marcas_id_marcas = '25'

or marcas_id_marcas = '33' or marcas_id_marcas = '42' ORDER BY m.nome

Mostre quantas multas são emitidas por dia no ano de 2009.
SELECT datahora, count(*) from infracoes GROUP BY datahora;

Mostre qual a velocidade média e qual a máxima das infrações.
SELECT avg(velocidade), max(velocidade) from infracoes;

Liste a quantidade de veículos de cada modelo.
SELECT marcas_id_marcas,COUNT(*)from modelos

Mostre a quantidade de veículos por tipo de combustível para a categoria 2.
SELECT id_veiculos, count(*) FROM veiculos where combustivel_id_combustivel = '2'

Mostre a quantidade de veículos por tipo de combustível para combustíveis cuja quantidade seja maior do que 50.
SELECT combustivel, count(*) from veiculos GROUP BY combustivel HAVING count(combustivel) > 50;

20) Mostre a quantidade de infrações de cada tipo de infração ocorrida em 2009 somente para tipos de infrações que a quantidade seja maior do que 10.
SELECT tiposinfracao, count(*) from infracoes where data like “2009%” GROUP BY tiposinfracao HAVING count(tiposinfracao) > 2;

Usamos agora a forma case;

SELECT velocidade,local,
case when velocidade < 100 then velocidade * 3
when(velocidade >= 150)and(velocidade <500)then velocidade *2
end nome_velocidade
from infracoes

Usando a função update atualizando valor de tipos de infrações;

UPDATE tiposinfracoes t SET valor = case
when valor < 100 then valor * 3
when(valor>=200)and(valor < 300)then valor * 2
else valor
end

Length → comando para determinar o tamanho em bytes de uma determinada cadeia de caracteres;

select valor,length(valor)from tiposinfracoes

Left → com esta função se extraem os “n” caracteres à esquerda de uma cadeia de caracteres;

select valor,left(valor,2)from tiposinfracoes

Right → Esta função estrai os “n” caracters à direita de uma cadeia de caracteres;

select valor,RIGHT(valor,3)from tiposinfracoes
Esta função extrai os “n” caracteres a partir de uma determinada posição em uma cadeia de caracteres, contando-se da esquera para a direita;

select nome,SUBSTRING(nome,3,2)from proprietarios

Para garantir que o conteudo de uma cadeia de caracteres seja sempre tratado como maiuscula, usa-se a função UPPER, minuscula LOWER

select nome,UPPER(nome)from proprietarios
select nome,LOWER(nome)from proprietarios

Trim,Ltrim,Rtrim
A função LTRIM retira apenas os espaços à esquerda (L é de left) da string
RTRIM → retira apenas os espaços a direita
TRANSLATE → é possível substituir caracteres de uma cadeia tomando como base uma outra cadeia de caracteres informada.

Função de manipulação de data

Select CURRENT_DATE()
Select CURRENT_TIME()
Select CURRENT_TIMESTAMP()