Você está na página 1de 35

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.

br

SQL FLUENTE
TREINAMENTO AVANADO DE LINGUAGEM SQL PARA BANCO DE DADOS

Desenvolva, manipule e administre bancos de dados


Guia resumido projetado para aprendizagem rpida para programadores Revelado mtodo de aprendizagem acelerada de linguagem de programao e SQL Explicao simples e direta permitindo uma assimilao rpida na linguagem SQL Diferente dos outros livros com linguagem rebuscada, teorias longas e centenas de pginas Com certeza o melhor guia de treinamento e suporte para programao de banco de dados

Autor: Leandro Gonalves dos Santos Programador linguagem C# e SQL nvel avanado Penetration Tester Linux BackTrack 5

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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()

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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.

Introduo a Linguagem SQL


O que podemos ento fazer com a linguagem SQL. Permite-nos manipular banco de dados. O SQL ANSI American National Standards Institute Ou seja, uma linguagem padro para todos os bancos de dados usados. Uma linguagem universal, ento entendendo com este livro a linguagem SQL voc estar apto a trabalhar com qualquer banco de dados.

O que possvel fazer com a linguagem SQL?

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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

with Tools (executvel: SQLEXPRWT_x86_ENU.exe); o tamanho do executvel de


aproximadamente 235 MB. Acesse o link abaixo para download:

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

E se o Windows PowerShell o 1.0, se no, faa o download e atualize: http://go.microsoft.com/fwlink/?LinkId=120552

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:

Aceite os termos de licena:

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

Na prxima tela selecione todas as opes de recursos:

Voc pode nomear a instncia ou usar a instncia padro, eu recomendo neste momento configurar como instncia padro e aps clique em avanar:

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

Na configurao do servidor, nome da conta seleciona a opo com AUTORIDADE NT/SYSTEM

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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:

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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:

Clique como boto direito do mouse em DataBase e new DataBase.

11

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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#.

string servidor = @"Data Source =. SQLEXPRESS;Initial Catalog = =.\SQLEXPRESS;Initial


LIVRO_EXEMPLO; User Id =sa; pwd= ; pwd=12345";

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

{ SqlConnection conexao = new SqlConnection (servidor);


SqlCommand comando = new SqlCommand("select * from AUTORES", conexao);

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:

SQL sql = new SQL(); -

chamando a classe SQL que criamos Associamos o mtodo ao datagridview.

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

Clicando no boto carregar, temos o seguinte resultado:

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.

MTODO DE APRENDIZAGEM RPIDA PARA LINGUAGENS DE PROGRAMAO E SQL


Antes de iniciar a sua jornada para aprender SQL, vou ensinar aqui como no perder seu tempo estudando, estudando da forma incorreta como acontece com a maioria dos programadores que iniciam, e se tornar pssimos programadores ou at mesmo desistem. Aprender a programar no difcil, mas uma questo de estratgia. Primeiro coisa que devemos fazer , saber como memorizar os cdigos e os algortimos. Como fazer isso? Bom voc pode fazer isso usando estratgias de repetio e realmente digitar o cdigo. impossvel aprender a programar sem praticar. Apenas lendo ou assistindo aulas, no far de voc um programador. Se quer aprender a programar, vai ter que suar a camisa e digitar os cdigos. E no pense que colar cdigos vai lhe ajudar. Isso s piora as coisas. Bom, voc j sabe que precisa praticar, digitar os cdigos. Ento, qual o mtodo de aprendizagem para ser fluente em uma linguagem de programao. Simples! 1 Para cada comando de SQL ou para cada Algortimo de uma linguagem de programao, vamos ler, entender, interpretar, fechar o livro, e ESCREVER O CDIGO, SEM CONSULTAR O LIVRO no programa ou at mesmo em um notepad a parte. E depois que concluirmos vamos checar no livro se est correto e ainda, testar o cdigo no programa para ver se ele funciona.

19

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

2 3

Figueiredo Ferreira

Luciano Lilian

Rua Luan - 23 Rua Stormer - 20

So Paulo Rio de Janeiro

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

SQL CREATE A DATABASE


Voc aprendeu como criar uma base de dados e uma tabela dentro de uma base de dados por meio de interface grfica no SQL Server, vamos agora aprender como criar tabelas por meio de cdigos, por que muitos programas ou sistemas precisam criar base de dados e novas tabelas para guardar dados, a partir da plataforma de software por meio do prprio usurio da plataforma. Para criar uma base de dados, usamos a seguinte sintaxe: SINTXE SQL CREATE DATABASE
CREATE DATABSE nome_da_base_de_dados

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

Sua base de dados j foi criada.

SQL CREATE TABLE


O SQL CREATE TABLE usado para criar tabelas dentro de um base de dados. SINTXE DO SQL CREATE TABLE
CREATE TABLE nome_da_tabela ( Nome_da_coluna1 data_type, Nome_da_coluna2 data_type, Nome_da_coluna3 data_type, ... )

22

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

Ferreira

Lilian

Rua Stormer - 20

Rio de Janeiro

SQL SELECT DISTINCT


Vamos aprender agora sobre como usar o SQL SELECT DISTINCT. Em uma tabela, temos valores duplicados, isso no um problema caso deseja mostrar valores diferentes na tabela, esta duplicidade com certeza no causar para voc impossibilidades de seleo distintas. A declarao SQL DISTINCT permite retornar dados diferentes no processo de pesquisa e visualizao do banco de dado. SINTAXE DO SQL SELECT DISTING
SELECT DISTINCT nome_da_coluna(s) FROM nome_da_tabela

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

O resultado o seguinte: Cidade So Paulo Rio de Janeiro

SQL WHERE
25

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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 !=

SQL AND & OR OPERADORES


Os operadores AND e OR so usados para filtrar dados baseados em mais de uma condio, o WHERE vimos que uma condio usando operadores relacionais, mas o AND e OR trata de mais de uma condio. O comando and vai mostrar uma especfica requisio feita por comando SQL quando uma condio declarada e mais outra condio declarada so verdadeiras. O comando OR vai mostrar uma especfica requisio feita por comando SQL quando uma ou outra condio declarada for verdadeira. EXEMPLO OPERADOR AND Na tabela Pessoal P_Id 1 Sobrenome Santos Nome Leandro Endereo Rua Joo - 45 Cidade So Paulo

27

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

2 3

Figueiredo Ferreira

Luciano Lilian

Rua Luan - 23 Rua Stormer - 20

So Paulo Rio de Janeiro

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

P_Id 2

Sobrenome Figueiredo

Nome Luciano

Endereo Rua Luan - 23

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

] Abaixo temos o resultado da exibio:

29

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

P_Id 3 2 4 1

Sobrenome Ferreira Figueiredo Nilton Santos

Nome Lilian Luciano Toms Leandro

Endereo Rua Stormer - 20 Rua Luan - 23 Rua Julio - 25 Rua Joo - 45

Cidade Rio de Janeiro So Paulo Rio de Janeiro So Paulo

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

SQL INSERT INTO


O INSERT INTO usado para inserir novos dados no banco de dados SNTAXE DO COMANDO SQL INSERT INTO Temos duas maneiras de declarar o comando INSERT INTO: 1 A primeira o comando insert into usado sem especificar o nome das colunas, mas simplesmente devemos adicionar os valores na mesma ordem das colunas.

30

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

INSERT INTO Pessoal values (valor1, valor2, valor3, valor4)

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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

Sobrenome Santos Figueiredo Ferreira Romero Lorenzo

Nome Leandro Luciano Lilian Paulo Lidiane

Endereo Rua lvaro Rua lvaro Rua lvaro Rua lvaro Rua lvaro

Cidade So Paulo So Paulo So Paulo So Paulo So Paulo

33

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

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

Todos os direitos reservados a Leandro Gonalves dos Santos www.cybershield.com.br

1 2 3 4

Santos Figueiredo Ferreira Romero

Leandro Luciano Lilian Paulo

Rua Joo - 45 Rua Luan - 23 Rua Stormer - 20 Rua Maria -15

So Paulo So Paulo Rio de Janeiro Belo Horizonte

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.

Para comprar o livro SQL FLUENTE entre em nosso site:

WWW.CYBERSHIELD.COM.BR
A VERSO DESTE LIVRO PARA DISTRIBUIO GRATUITA, O LIVRO COM A PARTE AVANADO COMERCIAL.

35