br
SQL FLUENTE
TREINAMENTO AVANADO DE LINGUAGEM SQL PARA BANCO DE DADOS
Autor: Leandro Gonalves dos Santos Programador linguagem C# e SQL nvel avanado Penetration Tester Linux BackTrack 5
NDICE
SQL Bsico
4 - O que SQL? 4 - Introduo a linguagem SQL 5 - SQL Server 2008 express Ferramentas para desenvolvimento de banco de dados 14 - Passos para efetuar conexo com Banco de dados e comandos SQL por meio de programas com linguagem C# 19 - Mtodo de aprendizagem rpida para linguagens de programao e SQL 20 - Sintaxe SQL 22 - Create DataBase Criando um banco da dados 22 - Create Table Criando uma tabela no banco de dados 23 Select 25 Distinct 25 Where 27 - And & Or 29 - Order By 31 - Insert 32 - Update 34 - Delete
SQL Avanado Segue abaixo o contedo do livro completo Top Like Wildcards In Between Alias Joins Inner Join Left Join Right Join Full Join Union Select Into Constraints Not Null Unique Primary Key Foreign Key Check Default Create Index Drop Alter Increment Views Dates o GETDATE() o DATAPART()
o DATEADD() o DATEDIFF() o DATECONVERT() Nulls isnull() Data Types Funes SQL avg() count() first() last() max() min() sum() Group By Having ucase() lcase() mid() len() round() now() format() Quick Ref Hosting
SQL BSICO
O que SQL?
SQL uma linguagem padro para acessar base de dados de programas. Nosso guia de SQL lhe habilitar a usar o acesso ao banco de dados e manipular dados nos seguintes bancos de dados. MySQL SQL Server Access, Oracle Sybase DB2 E outros sistemas de banco de dados.
Porm entraremos com mais nfase e detalhes com o uso do SQL Server 2008 express, totalmente gratuito e muito eficiente para iniciantes. A codificao da linguagem SQL praticamente igual para qualquer outro banco de dados, mas cada qual tem sua particularidade. Praticamente todo sistema da informao possui bancos de dados, por exemplo, um banco de dados de clientes de uma locadora de vdeo, possui armazenado cada cliente, seu nome, RG, CPF, endereo para cobrana. Isto so dados que esto em uma tabela do banco de dados. E temos outra tabela que diz respeito ao filme que nosso cliente est alugando, qual a data de entrega, qual o preo pago, se foi pago ou no. Esta outra tabela tem associao com a primeira. Como voc j percebeu, no adianta ser especialista em uma linguagem de programao, mas primordial voc possuir habilidades avanadas em linguagem SQL por que banco de dados fazem parte constantemente de sistemas de alta qualidade seja em webpages ou sistemas do tipo desktop como o SAP por exemplo ou at mesmo aplicativos para home users.
Podemos Podemos Podemos Podemos Podemos Podemos Podemos Podemos Podemos dados.
fazer buscas avanadas de vrios tipos no banco de dados inserir dados dentro do banco de dados. atualizar dados dentro do banco de dados. deletar dados dentro do banco de dados. criar novas base de dados. criar novas tabelas dentro de uma ou mais base de dados. criar procedimentos padres dentro da base de dados. criar estilos de visualizaes padro dentro da base de dados. determinar permisses nas tabelas, procedimentos e visualizaes na base de
O SQL padro, mas mesmo assim existem diferentes verses da linguagem SQL. Mas apesar deles serem um pouco diferente eles suportam a maioria dos comandos principais que so SELECT, UPDATE, DELETE, INSERT, WHERE numa forma similar.
Usando o SQL no seu WebSite Para construir seu website, algumas informaes na base de dados, vo ser necessrias: Um programa para criao de banco de dados como SQL Server, MS Access, MySQL etc...) Um servidor para alojar os dados do banco de dados. A linguagem SQL aplicada a construio do banco de dados. A linguagem HTML / CSS aplicada ao desenvolvimento do WebSite.
SQL SERVER 2008 EXPRESS FERRAMENTA GRATUITA DA MICROSOFT PARA CRIAO DE BANCO DE DADOS Vamos ensinar o passo a passo para a instalao do SQL Express + ferramentas. Se voc desejar o mesmo, ao realizar o download escolha a opo Microsoft SQL Server 2008 Express
http://www.microsoft.com/brasil/servidores/sql/editions/express.mspx . Antes de iniciar a instalao do SQL Server Express voc dever verificar: Se o seu framework o 3.5 SP1 (ou superior), se no, baixe e atualize: http://go.microsoft.com/fwlink/?LinkId=120550 Se o Windows Installer o 4.5 (ou superior), se no, baixe e atualize: http://go.microsoft.com/fwlink/?LinkId=123422
INSTALAO DO SQL SERVER 2008 EXPRESS Observao: Existem diversas configuraes para instalao do SQL Server, vou ensinar aqui uma maneira bsica apenas para voc fazer seu primeiro banco de dados. Lembrando que no Google digitando Tutorial instalao Sql Server 2008 voc acha diversos tutoriais e frum com todo o passo a passo. Clique em Nova instalao ou adicionar recursos de um instalao existente:
Voc pode nomear a instncia ou usar a instncia padro, eu recomendo neste momento configurar como instncia padro e aps clique em avanar:
Na prxima tela, sobre configurao do mecanismo de banco de dados, escolha, mixed mode e coloque a senha: No caso eu coloquei 12345 apenas para efeito didtico: Lembrando que neste caso, seu usurio chamado sa e sua senha 12345.
Nesta prxima tela voc pode escolher se quer ou no enviar relatrios de erros, eu recomendo que sim: Clique em avanar para iniciar o processo completo de instalao do SQL Server:
INSTALAO DO SQL MANAGEMENT STUDIO O SQL MANAGEMENT STUDIO uma plataforma grfica para manipulao e gerenciamento do SQL Server. Para instala-lo, clique ou digite o link abaixo: http://www.microsoft.com/downloads/details.aspx?FamilyID=08e52ac2-1d62-45f6-9a4a4b76a8564a2b&DisplayLang=pt-br ou procure no site da Microsoft o SQL MANAGEMENT STUDIO http://www.microsoft.com/downloads . A instalao muito simples, s seguir o roteiro de instalao ensinada pelo prprio programa.
CRIANDO UM BANCO DE DADOS E UMA TABELA COM O SQL SERVER 2008 EXPRESS POR INTERFACE GRFICA USANDO O SQL MANAGEMENT STUDIO.
10
Inicie o SQL MANAGEMENT STUDIO e uma tela com sua senha e usurio prconfigurada ir aparecer. Digite os dados corretos para iniciar sua plataforma.
No caso, se voc escolheu mixed mode. Sua senha 12345, e usurio sa, lembrando que voc precisa selecionar no tipo de autenticao o modo Sql Server Authentication:
11
Em DataBase Name vamos neste exemplo chamar nossa base de dados de LIVRO_EXEMPLO. Clique em Ok para criar sua base de dados.
Depos de criada sua base de dados, clique com o boto esquerdo do mouse no sinal de + que h no nome de sua database e procure por Tables. Clique em tables com o boto direito e clique em create new table.
12
Aparecer uma tela para adicionar as colunas com tipo de dado aceito para esta coluna. Neste exemplo para em Colunm Name, DataType e Allow Null vamos adicionar o seguinte: Colunm Name ID Autor DataType int(10) varchar(50) Allow Null yes yes
Colunm Name o nome da coluna. DataType o tipo de dado, no exemplo acima int (10) so para nmeros inteiros com at 10 dgitos. varchar(10) so textos e nmeros juntos que podem ser misturados nesta coluna com limite de 10 digitos. Allow Null: Se no habilitado, a coluna s aceita dados em suas linhas com contedo, se habilitado aceita linhas com dados e sem dados.
13
Clique em save e grave o nome da tabela como AUTORES. Agora v em tables, clique com o boto direito em cima da tabela que acabou de criar e clique em Open Table. Abrir sua tabela e voc poder adicionar os dados conforme figura abaixo, e depois salvar. Pronto, voc j criou seu primeiro banco de dados simples.
Este banco de dados simples, e foi feito para voc se familiarizar com a criao de banco de dados por interface grfica. Vamos aprender tcnicas avanadas para desenvolvimento de bancos de dados, ao longo do livro. PASSOS PARA EFETUAR CONEXO COM BANCO DE DADOS E COMANDOS SQL COM USO DE LINGUAGEM DE PROGRAMAO Bom meus amigos, sabemos que ficar e se especializar em criar e treinar os comandos SQL por meio do SQL Server no a melhor opo pois sabemos que os sistemas de informao e aplicativos fazem conexo com banco de dados por meio de comandos na
14
linguagem de programao do aplicativo ou sistema e executa os comandos SQL DO PROGRAMA, POR MEIO DO PROGRAMA, POR MEIO DO USURIO QUE USA O PROGRAMA! Ento vou ensinar o passo a passo para se conectar ao banco de dados em qualquer linguagem, mas aqui vou dar um exemplo com o C#, mas o conceito o mesmo para qualquer linguagem o que muda so os cdigos, mas seguem praticamente um mesmo padro. Lembrando que para entender poderosamente esta parte, preciso fazer um curso de lgica de programao e de programao de uma especfica linguagem. Temos em nosso site o curso de C# avanado que possui todos estes recursos de aprendizagem em vdeo aula de alta qualidade: www.cybershield.com.br .
String de conexo com o bando de dados Usamos a string de conexo na linguagem C# da seguinte forma: string nome_da_string = @Data Source = endereo do banco de dados; Initial Catalog = Nome_da_base de dados; User ID = Nome_do_usurio; pwd = senha_do_usurio; Bom, isso uma parte que muitos tem dificuldades, ento vou dar tudo de mo beijada para vocs. Vamos encontrar o Data Source no SQL Server. Clique no nome do seu banco de dados com o boto direito e clique em properties:
15
Temos o nome D-BRG132F2JH BRG132F2JH\SQLEXPRESS, mas na string de conexo ficar Data , Source = .\SQLEXPRESS; Initial Catalog o nome de nossa base de dados que LIVRO_EXEMPLO. Ent na Ento parte da string de conexo para Initial Catalog = LIVRO_EXEMPLO; Na parte de USER ID = sa; Se voc escolheu na configurao o modo sa. Na parte de PWD a senha. pwd = 12345. (Coloque senhas melhores, isto s um pwd exemplo. Veja agora como ficou nossa string de conexo com banco de dados usando o C#.
COMO USAR A STRING DE CONEXO E EFETUAR COMANDOS SQL NO PROGRAMA 1 Selecionar as bibliotecas do SQL no C# que so:
using System.Data.SqlClient; using System.Data;
2 Usar a funo SqlConnection e chamar a string de conexo que nomeado no exemplo de conexo servidor. SqlConnection conexao = new SqlConnection (servidor); o SqlConnection = funo para fazer conexo com bancos de dados SQL Conexo = nome dado a funo a ser usada
16
new SqlConnection = Instanciamento da funo, habilitando o uso dela com o nome dado a funo (servidor) = string de conexo com banco de dados
3 Usar a funo SqlCommand para adicionar o comando Sql ao programa, indicar qual a tabela ou tabelas do comando a ser usado, e chamar aps o comando a conexo com o servidor.
SqlCommand comando = new SqlCommand("select * from AUTORES", conexao); SqlCommand = Funo para operar e executar comandos SQL Commando = Nome dada para a funo SqlCommand new SqlCommand = instanciamento da funo, habilitando o uso dela com o nome dado a funo "select * from AUTORES" = Comando SQL para selecionar e mostrar contedo da tabela AUTORES conexao = string de conexo chamada pelo seu nome j instanciado que conexo. 4 Usar outros tipos de recursos do C# para possibilitar a transferncia dos dados da tabela para serem mostrados no programa. No caso usaramos o datagridview do C# para mostrar estes dados da tabela do banco de dados. Ento o restante do cdigo fica assim.
SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = comando; DataTable datatable = new DataTable(); adapter.Fill(datatable); Bom, antes de mais nada, vamos colocar isso dentro de uma classe, e criar um mtodo dentro de uma classe, e depois chamar a classe, e associar o comando com o mtodo desta forma a seguir: datagridview.DataSource = classe_usada.nome_do_mtodo_usado; Em resumo ficaria assim: Na classe da string e comandos SQL temos o mtodo: Nome da Classe SQL Nome do mtodo: public DataTable carregar() Cdigo completo do mtodo da classe SQL. public DataTable carregar() carregar = nome do mtodo.
17
SqlDataAdapter adapter = new SqlDataAdapter(); adapter.SelectCommand = comando; DataTable datatable = new DataTable(); adapter.Fill(datatable); return datatable } No programa em C# teramos um boto para carregar o banco de dados ento, dentro do boto vamos adicionar o seguinte cdigo:
datagridview.DataSource = sql.carregar();
No caso o datagridview tem um nome e o nome que demos a ele no programa em questo foi dgv, ento o cdigo fica assim: dgv.DataSource = sql.carregar();
Aqui temos o DataGridView que nomeamos como dgv
Bom, quando iniciamos o programa clicando no boto carregar, temos a seguinte visualizao:
18
Talvez, muitos que no entendem bem sobre lgica de programao ou possui nvel intermedirio de algortimos e no conhece nenhuma linguagem de programao tenha ficado um pouco confuso. Mas no se preocupe, quando comear a entender ficar tudo claro e ntido e ver que fcil programar para quem pratica e persiste. recomendvel antes de continuar, que voc estude uma linguagem de programao e lgica de programao tambm. Eu recomendo o C# e inclusive temos um curso avanado de C# em vdeo aula disponvel para download em WWW.CYBERSHIELD.COM.BR . Nos prximos captulos voc se habilitar passo a passo a como ser fluente no SQL e ter condies de programar sistemas avanados.
19
Se errou o cdigo, reiniciar o processo de novo, at voc acertar o cdigo. Lembrando que isso para memorizar o cdigo. 2 Depois de ter conseguido acertar o cdigo, vamos repetir 3 vezes a digitao do cdigo. Por que fazer isso. Bom isso uma questo de memorizao, mas estudos dizem que precisamos repetir a aprendizagem por meio de revises, caso contrrio a mente esquece. Ento repita a digitao do cdigo 3 vezes, mas preferencialmente 7 vezes. Eu acho suficiente 3 vezes apenas. 3 Vamos agora passar para o prximo cdigo ou algortimo do livro e repetir o processo. 4 Repetir a reviso dos cdigos todos os dias do incio ao fim e nunca parar. Por que nunca parar? Bom para voc ter uma idia, para a linguagem C# do qual sou programador, eu reviso todos os dias 1 algortimo ou lio de C# referente ao contedo do C# que preciso saber de memria e prontido para ser fluente na linguagem. So mais de 100 lies que reviso e reprogramo os cdigos e testo, mas assim que tem que ser. E fao o mesmo para o SQL, todo dia eu reviso 5 cdigos SQL e demoro cerca de 1 ms para finalizar todas as lies revisadas para SQL e C#. Por isso que eu j sei tudo de memria. E programadores profissionais precisam disso. Por tanto, revise sua linguagem sempre, pois se parar, sua mente automaticamente poder jogar o conhecimento fora, e voc perdeu seu tempo estudando. 5 Selecionar e descobrir o essencial da linguagem de programao e desenvolver ou selecionar em livro uma maratona de exerccios para fazer suas revises eternas. Como isso? Bom, analise em livros e cursos o contedo essencial que o far fluente em uma linguagem. No pense que voc pode memorizar todos os cdigos de uma linguagem ou todos os tipos de algortimos. Voc s poder fazer isso, se trabalhar com a linguagem e s depois de 5 a 10 anos e mesmo assim talvez no consiga... Quem fala ingls fluente, sabe todas as palavras do dicionrio ingls ou todos os termos tcnicos de vrias reas em ingls? Claro que no. Mas ele tem a capacidade com o contedo que ele aprendeu de ingls para dominar e aprender novas expresses e estruturas em ingls facilmente. Isso fluncia! Na programao, o que voc precisa saber entender os algortimos que encontrar nas suas pesquisas e livros avanados de programao sobre novos recursos avanados e aprender isso. Existem diversos recursos e algortimos usamos para programao de jogos que no tenho a mnima idia de como fazer. Mas por entender o essencial do C#, eu posso aprender e entender tudo e aprender estes novos recursos e mtodos. Por isso voc precisa saber o essencial. Nosso curso de C# Possui o essencial para voc dominar o essencial da linguagem C# e depois que ter memorizado e entendido todos os algortimos dele, voc j fluente e avanado no C#, basta se aperfeioar. Veja e faa o download em WWW.CYBERSHIELD.COM.BR . Este manual de SQL possui o essencial para se tornar fluente e avanado na linguagem SQL. Depois de praticar as revises e memoriar todos os comandos, criar programas ser mamo com acar.
SQL Syntax
Uma base de dados geralmente contm uma ou mais tabelas. Cada tabela identificada por um nome. Abaixo temos uma tabela que chamada de Pessoal. Precisamos antes de tudo criar uma base de dados e dar um nome a mesma, e depois criar tabela ou tabelas para esta base de dados. P_Id 1 Sobrenome Santos Nome Leandro Endereo Rua Joo - 45 Cidade So Paulo
20
2 3
Figueiredo Ferreira
Luciano Lilian
Nesta Tabela possumos 5 colunas e 3 linhas. Declaraes em SQL A maioria dos comandos SQL para manipular banco de dados feito atravs de declaraes em SQL. E podemos fazer isso com o seguinte exemplo a seguir. SELECT * FROM PESSOAL Neste caso, temos a tabela pessoal acima, com o comando select pedimos para o banco de dados exibir a tabela completa chamada PESSOAL. GRAVE ISSO URGENTE O SQL no case sensitive, ou seja, voc pode escrever as declaraes de comandos SQL tanto em minsculo como em maisculo que o comando funcion perfeitamente. SQL DML e DDL O SQL dividido em duas partes: DML Data Manipulation Language e DDL Data Definition Language. Para buscar ou atualizar comandos da parte DML do SQL: SELECT Extrai dados da base de dados. UPDATE atualiza dados na base de dados DELETE apaga dados da base de dados INSERT INTO insere ou grava dados na base dados. A parte DDL do SQL que tabelas na base de dados sejam deletadas ou criadas. A mais importante declarao DDL CREATE DATABASE isso cria uma base de dados ALTER DATABASE modifica uma base de dados CREATE TABLE cria uma tabela dentro de uma base de dados ALTER TABLE modifica uma tabela de uma base de dados DROP TABLE apaga uma tabela de uma base de dados CREATE A INDEX cria um ndice (uma chave de busca chamada de search key)
21
EXEMPLO Agora vamos criar uma base de dados chamada LIVRO_EXEMPLOS como foi criada por meio da interface grfica anteriormente. Mas agora ser na base do comando SQL CREATE DATABASE. Vamos usar a seguinte declarao:
CREATE DATABASE LIVRO_EXEMPLOS
22
O data type especifica o tipo de dado que no caso pode ser, texto, inteiros etc... voc conhecer ao longo do curso uma tabela guia para todos os data types. EXEMPLO Vamos agora criar um tabela chamada Pessoal que tem 5 colunas. P_Id, Sobrenome, Nome, Endereo e cidade.
CREATE TABLE Pessoal ( P_Id int, Sobrenome varchar(50), Nome varchar(50), Endereo varchar(50), Cidade varchar(50) )
A coluna P_Id s ter um nmero e s poder ser inteiro, o data type para inteiros int. As outras colunas so textos que podem ter nmeros mesclados, ento usamos o varchar que um data type para estas caractersticas. Os nmeros entre () so a quantidade de caracteres que cada campo da coluna aceita no mximo. Veja a abaixo nossa tabela Pessoal criada: P_Id Sobrenome Nome Endereo Cidade
A tabela est vazia pois no foi atribudo nenhum valor para os campos das colunas.
SQL SELECT
Vamos agora aprender sobre o comando SELECT do SQL, um dos mais importantes comandos para visualizarmos tabelas em diversas formas de seleo. SNTAXE DO SQL SELECT SELECT nome_da_coluna(s) FROM nome_da_tabela Ou SELECT * FROM nome_da_tabela
23
EXEMPLO DE SQL SELECT A tabela Pessoal que vimos anteriormente: P_Id 1 2 3 Sobrenome Santos Figueiredo Ferreira Nome Leandro Luciano Lilian Endereo Rua Joo - 45 Rua Luan - 23 Rua Stormer - 20 Cidade So Paulo So Paulo Rio de Janeiro
Agora vamos usar o comando SELECT para selecionar o contedo das colunas Sobrenome e Nome apenas e nossa pesquisa com SELECT. SELECT Sobrenome, Nome FROM Pessoal
Veja o resultado a seguir: Sobrenome Santos Figueiredo Ferreira Nome Leandro Luciano Lilian
Outro exemplo usarmos o comando select para exibir uma das tabelas da base de dados com todo o seu contedo: SELECT * FROM Pessoal
O asterstico uma parte do comando que significa selecionar toda a tabela. O resultado simplesmente a exibio da tabela completa com todos os dados. P_Id 1 2 Sobrenome Santos Figueiredo Nome Leandro Luciano Endereo Rua Joo - 45 Rua Luan - 23 Cidade So Paulo So Paulo
24
Ferreira
Lilian
Rua Stormer - 20
Rio de Janeiro
EXEMPLO A Tabela Pessoal abaixo com os seguintes dados: P_Id 1 2 3 Sobrenome Santos Figueiredo Ferreira Nome Leandro Luciano Lilian Endereo Rua Joo - 45 Rua Luan - 23 Rua Stormer - 20 Cidade So Paulo So Paulo Rio de Janeiro
Agora podemos selecionar apenas os valores distintos da coluna chamada cidade da tabela acima. Vamos usar a declarao SELECT:
SELECT DISTINCT cidade FROM Pessoal
SQL WHERE
25
O comando WHERE para selecionar ou efetuar outro comando de acordo com especficos critrios estabelecidos com o comando WHERE. como uma estrutura de seleo que efetua um comando especfico SE a condio escolhida for atendida. SINTAXE DO COMANDO WHERE
SELECT nome_da_coluna(s) FROM nome_da_tabela WHERE nome_da_tabela = valor X
Veja a tabela de nome Pessoal abaixo: P_Id 1 2 3 Sobrenome Santos Figueiredo Ferreira Nome Leandro Luciano Lilian Endereo Rua Joo - 45 Rua Luan - 23 Rua Stormer - 20 Cidade So Paulo So Paulo Rio de Janeiro
Vamos solicitar ao banco de dados para exibir apenas os nomes de pessoas que moram s em So Paulo. O resto no aparece na consulta.
SELECT * FROM Pessoal WHERE Cidade = So Paulo
Veja o resultado do comando: P_Id 1 2 Sobrenome Santos Figueiredo Nome Leandro Luciano Endereo Rua Joo - 45 Rua Luan - 23 Cidade So Paulo So Paulo
IMPORTANTE: Quando for usar os comandos SQL para nomes usaremos entre estes nomes e para nmeros no usaremos nada. Veja um exemplo explicativo abaixo: Para valores em Texto:
Isto o certo SELECT * FROM Pessoal WHERE Nome =Leandro Isto abaixo j est errado SELECT * FROM Pessoal WHERE Nome =Leandro
26
OPERADORES PERMITIDOS COM O COMANDO WHERE Segue a abaixo a lista de operadores relacionais usados com o comando WHERE
Operador = <> > < >= <= BETWEEN LIKE IN Igual No igual Maior do que Menor do que Maior do que ou igual Menor do que e igual Dentro de um range de valor especfico Procura como padro ou por comparao Se souber o exato valor que deseja retornar pelo menos uma das colunas Descrio
Em algumas outras verses do SQL o operador <> pode ser escrito como !=
27
2 3
Figueiredo Ferreira
Luciano Lilian
Agora vamos pedir para ser exibido apenas as linhas da tabela cujo Nome igual a Leandro E (AND) Sobrenome igual a Santos.
SELECT * FROM Pessoal WHERE Nome = Leandro AND Sobrenome = Santos
Veja o resultado do comando abaixo: P_Id 1 Sobrenome Santos Nome Leandro Endereo Rua Joo - 45 Cidade So Paulo
EXEMPLO OPERADOR OR Agora vamos fazer a exibio das linhas da tabela cujo Nome = Leandro ou Nome = Luciano. Veja o comando abaixo a ser usado para este fim:
SELECT * FROM Pessoal WHERE Nome = Leandro OR Nome = Luciano
O resultado comando ser: P_Id 1 2 Sobrenome Santos Figueiredo Nome Leandro Luciano Endereo Rua Joo - 45 Rua Luan - 23 Cidade So Paulo So Paulo
Podemos ainda combinar o uso do comando OR e AND dentro de uma declarao SQL Veja a declarao com os comando a seguir e vamos ver o resulado da consulta:
SELECT * FROM Pessoal WHERE Sobrenome = Figueiredo AND (Nome = Leandro OR Nome = Luciano
28
P_Id 2
Sobrenome Figueiredo
Nome Luciano
Cidade So Paulo
SQL ORDER BY
O comando SQL ORDER BY um comando para classificar automaticamente uma certa coluna selecionada em ordem alfabtica ou em ordem numrica. Ele pode ser usado para classificar normalmente ou seja, em ordem ascendente, no caso de nmero, 0,1,2,3,4... ou em caso de letras ou textos, A,B,C,D... ou pode ser feito de trs para frente, ou seja em ordem descendente, que no caso de nmeros, 10,9,8,7,6... e no caso de letras D,C,B,A... Para classificar em ordem descendente voc dever usar o comando DESC. SNTAXE DO SQL ORDER BY
SELECT nome_da_coluna FROM nome_da_tabela ORDER BY nome_da_coluna(s) ASC|DESC
EXEMPLO Vamos analizar a tabela Pessoal P_Id 1 2 3 4 Sobrenome Santos Figueiredo Ferreira Nilton Nome Leandro Luciano Lilian Toms Endereo Rua Joo - 45 Rua Luan - 23 Rua Stormer - 20 Rua Julio - 25 Cidade So Paulo So Paulo Rio de Janeiro Rio de Janeiro
Ns desejamos agora selecionar a tabela inteira, no entanto, desejamos classificar o sobrenome das pessoas por ordem alfabtica e de forma ascendente. Vamos usar ento este comando SQL.
SELECT * FROM Pessoal ORDER BY Sobrenome
29
P_Id 3 2 4 1
ORDER BY DESC EXEMPLO Agora vamos fazer o mesmo processo de classificao no entanto, vamos fazer uma classificao decrescente: O comando a ser usado :
SELECT * FROM Pessoal ORDER BY Sobrenome DESC
O resultado aparece na ordem contrria: Veja abaixo: P_Id 1 4 2 3 Sobrenome Santos Nilton Figueiredo Ferreira Nome Leandro Toms Luciano Lilian Endereo Rua Joo - 45 Rua Julio - 25 Rua Luan - 23 Rua Stormer - 20 Cidade So Paulo Rio de Janeiro So Paulo Rio de Janeiro
30
2 Na segunda forma especificamos as colunas que desejamos fazer a insero de dados e depois especificamos os valores a serem adicionados em cada coluna mencionada no comando.
INSERT INTO Pessoal (coluna1, coluna2, coluna3, coluna4) values (valor1, valor2, valor3, valor4)
EXEMPLO Na tabela Pessoal: P_Id 1 2 3 Sobrenome Santos Figueiredo Ferreira Nome Leandro Luciano Lilian Endereo Rua Joo - 45 Rua Luan - 23 Rua Stormer - 20 Cidade So Paulo So Paulo Rio de Janeiro
INSERT INTO Pessoal VALUES (4,Romero, Paulo, Rua Maria -15, Belo Horizonte)
Segue o resultado abaixo: P_Id 1 2 3 4 Sobrenome Santos Figueiredo Ferreira Romero Nome Leandro Luciano Lilian Paulo Endereo Rua Joo - 45 Rua Luan - 23 Rua Stormer - 20 Rua Maria -15 Cidade So Paulo So Paulo Rio de Janeiro Belo Horizonte
INSERINDO DADOS EM UMA ESPECFICA COLUNA Neste comando exemplar, vamos adicionar uma nova linha a tabela, mas vamos adicionar valores para as colunas P_Id, Sobrenome e Nome:
INSERT INTO Pessoal (P_Id, Sobrenome, Nome) VALUES (5, Lorenzo, Lidiane)
31
Resultado segue abaixo: P_Id 1 2 3 4 5 Sobrenome Santos Figueiredo Ferreira Romero Lorenzo Nome Leandro Luciano Lilian Paulo Lidiane Endereo Rua Joo - 45 Rua Luan - 23 Rua Stormer - 20 Rua Maria -15 Cidade So Paulo So Paulo Rio de Janeiro Belo Horizonte
SQL UPDATE
O comando update no SQL usado para atualizar dados dentro de uma tabela de um banco de dados. SNTAXE DO SQL UPDATE
UPDATE nome_da_tabela SET coluna1 = valor1, coluna2 = valor2, ... WHERE determinada_coluna = determinado_valor
Observe que devemos usar o comando where para modificar os dados de uma determinada linha, se no caso omitssimos o comando where na declarao acima, modificaramos a tabela inteira se tratando da coluna 1 e coluna 2 do exemplo acima. EXEMPLO Tabela Pessoal: P_Id 1 2 3 4 Sobrenome Santos Figueiredo Ferreira Romero Nome Leandro Luciano Lilian Paulo Endereo Rua Joo - 45 Rua Luan - 23 Rua Stormer - 20 Rua Maria -15 Cidade So Paulo So Paulo Rio de Janeiro Belo Horizonte
32
Lorenzo
Lidiane
Agora vamos atualizar na tabela a linha com os dados Lorenzo e Lidiane das colunas Sobrenome e Nome.
UPDATE Pessoal SET Endereo = Rua lvaro 32, Cidade = So Paulo WHERE Sobrenome = Lorenzo AND Nome = Lidiane
A tabela Pessoal resultar na seguinte exibio abaixo: P_Id 1 2 3 4 5 Sobrenome Santos Figueiredo Ferreira Romero Lorenzo Nome Leandro Luciano Lilian Paulo Lidiane Endereo Rua Joo - 45 Rua Luan - 23 Rua Stormer - 20 Rua Maria -15 Rua lvaro - 32 Cidade So Paulo So Paulo Rio de Janeiro Belo Horizonte So Paulo
AVISO URGENTE SOBRE O SQL UPDATE SE VOC USASSE O UPDATE E ESQUECE A CLUSULA WHERE O RESULTADO SERIA O SEGUINTE: DECLARAO USADA SEM USAR A CLUSULA WHERE
UPDATE Pessoal SET Endereo = Rua lvaro 32, Cidade = So Paulo
P_Id 1 2 3 4 5
Endereo Rua lvaro Rua lvaro Rua lvaro Rua lvaro Rua lvaro
33
Isto muito perigoso, pois se voc cometer este erro, poder comprometer todo o banco de dados. Por isso em caso de cometer erros assim, sempre importante manter back ups, de seus bancos de dados. Todos os dias faa o back do banco de dados manualmente ou implemente um mtodo automtico para sua aplicao fazer o back up.
SQL DELETE
O comando DELETE usado para apagar linhas no banco de dados. SINTXE SQL DELETE
DELETE FROM nome_da_tabela WHERE alguma_coluna = algum valor
Observao: se voc omitir a clusula WHERE voc apagar a tabela inteira, por isso importante quando desejar apagar uma linha, sempre se lembrar de usar o WHERE ou apagar sua tabela inteira. EXEMPLO Veja abaixo a tabela Pessoal que vamos usar para apagar uma das linhas com o comando DELETE: P_Id 1 2 3 4 5 Sobrenome Santos Figueiredo Ferreira Romero Lorenzo Nome Leandro Luciano Lilian Paulo Lidiane Endereo Rua Joo - 45 Rua Luan - 23 Rua Stormer - 20 Rua Maria -15 Rua lvaro - 32 Cidade So Paulo So Paulo Rio de Janeiro Belo Horizonte So Paulo
Vamos deletar agora a linha que consta o Nome Lidiane. O comando para apagar esta linha segue abaixo:
DELETE FROM Pessoal WHERE Sobrenome = Lorenzo AND Nome = Lidiane
Vejamos abaixo o resultado do commando. Perceba que apagamos a linha 5 com o nome Lidiane: P_Id Sobrenome Nome Endereo Cidade
34
1 2 3 4
DELETE TODAS AS LINHAS DA TABELA: Vamos apagar todas as linhas da tabela mas no iremos apagar a tabela inteira. Segue duas modalidades para efetuar este comando:
DELETE FROM nome_da_tabela ou DELETE * FROM nome_da_tabela
Tome muito cuidado ao deletar todas as linhas de uma tabela, pois voc no tem como voltar atrs, o mximo que poder fazer usar o seu banco de dados back up para recompor todos os dados, caso contrrio, voc perde tudo absolutamente.
WWW.CYBERSHIELD.COM.BR
A VERSO DESTE LIVRO PARA DISTRIBUIO GRATUITA, O LIVRO COM A PARTE AVANADO COMERCIAL.
35