Vous êtes sur la page 1sur 8

Apostila com Exemplos de comandos simples de SQL Verso 2.

.0 UPDATE, INSERT DELETE e SELECT Autor : Carlos Antnio Ferreira da Silva. carlosmuzambinho@yahoo.com.br

Pg.1

SQL Structure Query Language Linguagem Estruturada de Consulta Exemplos de UPDATE, INSERT, DELETE, e SELECT: SUMRI O
1* COMANDO UPDATE * ALTERAO de registro(s) *................................................................................................................................. 1 2* COMANDO DELETE * EXCLUSO de registro(s) * ....................................................................................................................................3 3* COMANDO INSERT * Insero de registro nos TABLES *....................................................................................................................... 4 4* COMANDO SELECT * SELEO/FILTRO de registro(s) *........................................................................................................................5

1*COMANDOUPDATE*ALTERAOderegistro(s)*
/*AlteraESTOQUEtodososprodutos comESTOQUENEGATIVO,paraestoqueIGUALAZERO*/ UPDATEPRODUTO SETQTDE_PROD=0,QTD_FRAC_PRO=0 WHEREQTDE_PROD<0; /*Alterandopreo,Aumentandoopreodetodosprodutosem5%*/ UPDATEPRODUTO SETPRE_PROD=PRE_PROD*1.05 /*AlterandooNOMEDOPRODUTO35eseuPREO*/ UPDATEPRODUTO SETNOM_PRODUTO=NomeNovo,PRE_PRODUTO=4.5 WHERECOD_PRODUTO=35

Apostila com Exemplos de comandos simples de SQL Verso 2.0 UPDATE, INSERT DELETE e SELECT Autor : Carlos Antnio Ferreira da Silva. carlosmuzambinho@yahoo.com.br

Pg.2

/*Alterandoosdadosdocliente32/1*/ UpdateCLIENTE Set NOME='FranciscoXavier, ENDERECO='RuadosPoderes,777', BAIRRO='Centro', CEP='37890000' Where COD_CLI=32and LOJA_CLI=1 CdigodeALTERAOdosdadosdoCLIENTE,viaprogramaoEMDELPHI:
WithF_Dm_Pedidos.ZQRY_Livre.SQLdo Begin Clear; // //CdigodeALTERAOnatabledeCLIENTES; Append('UpdateCLIENTE'); Append('Set'); Append('NOME='+QuotedStr(Ed_NOME2.Text)+','); Append('ENDERECO='+QuotedStr(Ed_ENDERECO2.Text)+','); Append('BAIRRO='+QuotedStr(Ed_BAIRRO2.Text)+','); Append('CEP='+QuotedStr(Ed_CEP2.Text)); Append('Where'); Append('COD_CLI='+F_Dm_Pedidos.Qry_Clientes.FieldByName('COD_CLI').asString); Append('and'); Append('LOJA_CLI='+F_Dm_Pedidos.Qry_Clientes.FieldByName('LOJA_CLI').asString); //TentaALTERARoregistro; Try Showmessage('ALTERAO:Vejaaquery:'+#13+#13+ '"'+F_Dm_Pedidos.ZQRY_Livre.SQL.Text+'"'); F_Dm_Pedidos.ZQRY_Livre.ExecSQL;//Travaoregistro.(destravanoCOMMIT) ExceptOnE:Exceptiondo Begin Application.MessageBox(Pchar( 'Algumusurioest"TRAVANDO"oREGISTROATUAL'+#13+#13+ 'ERRO:"'+E.Message+'";'), 'ImpossvelALTERAR',MB_Ok); // //F_Dm_Dados.ZConnection.RollBack;=>NoprecisadoROLLBACK, //poisSEDEUEXCEO,noCHEGOUA"ABRIRtransao" EXIT;//Saideumapossvelprocedure End; End;//FimdoTRY...EXCEPT...END; // //GRAVAFISICAMENTE,finalizatransao,edestravaoregistro F_Dm_Pedidos.ZConnection.Commit; //Apsalterar,DUM"REFRESH"natable,paramostrardadosalterados; F_Dm_Pedidos.Qry_Clientes.Refresh;

End;

Apostila com Exemplos de comandos simples de SQL Verso 2.0 UPDATE, INSERT DELETE e SELECT Autor : Carlos Antnio Ferreira da Silva. carlosmuzambinho@yahoo.com.br

Pg.3

2*COMANDODELETE*EXCLUSOderegistro(s)*

** CUIDADO ; Sem a clusula WHERE, todos registros sero apagados **

/*APAGANDOtodosCLIENTESdatabela.CUIDADO!!!*/ DELETEFROMCLIENTE /*APAGANDOoprodutoquetemCD.=23*/ DELETEFROMPRODUTO WHERE(COD_PRODUTO=23); /*APAGANDOoprodutocomestoqueNEGATIVO*/ DELETEFROMPRODUTO WHEREQTDE_PROD<0; /*APAGANDOoprodutocomCd.Grupo=2*/ DELETEFROMPRODUTO WHERECOD_GRUPO=2; /*APAGANDOoCLIENTEcom(cod_cli=32eLoja_Cli=1)*/ DeleteFromCLIENTE Where COD_CLI=32 and LOJA_CLI=1 CdigodeEXCLUSOdoregistrodoCLIENTE,viaprogramaoEMDELPHI:
WithF_Dm_Pedidos.ZQRY_Livre.SQLdo Begin Clear; // //CdigodeEXCLUSOnatabledeCLIENTES; Append('DeleteFromCLIENTE'); Append('Where'); Append('COD_CLI='+F_Dm_Pedidos.Qry_Clientes.FieldByName('COD_CLI').asString); Append('and'); Append('LOJA_CLI='+F_Dm_Pedidos.Qry_Clientes.FieldByName('LOJA_CLI').asString); // //TentaEXCLUIRoregistro; Try Showmessage('Vejaaquery:'+#13+#13+ '"'+F_Dm_Pedidos.ZQRY_Livre.SQL.Text+'"'); //EXIT; F_Dm_Pedidos.ZQRY_Livre.ExecSQL;//Travaoregistro.(destravanoCOMMIT) ExceptOnE:Exceptiondo Begin Application.MessageBox(Pchar( 'Algumusurioest"TRAVANDO"oREGISTROATUAL'+#13+#13+ 'ERRO:"'+E.Message+'";'), 'ImpossvelEXCLUIR',MB_Ok); // //F_Dm_Dados.ZConnection.RollBack;=>NoprecisadoROLLBACK, //poisSEDEUEXCEO,noCHEGOUA"ABRIRtransao" EXIT;//Sadaprocedure; End; End; // //GRAVAFISICAMENTE,finalizatransao,edestravaoregistro F_Dm_Pedidos.ZConnection.Commit;

End;

Close;//SaidoFORM,apsexcluiroCLIENTEATUAL;

Apostila com Exemplos de comandos simples de SQL Verso 2.0 UPDATE, INSERT DELETE e SELECT Autor : Carlos Antnio Ferreira da Silva. carlosmuzambinho@yahoo.com.br

Pg.4

3*COMANDOINSERT*InseroderegistronosTABLES*

/*Insereproduto,natabeladeprodutos,enviandocd.produto*/ INSERTINTOProduto (Cod_Pro,Nom_Pro,Pre_Venda,Pre_Compra,Qtd_Estoq) VALUES (35,PIA,300.50,220.35,10) /*Insereproduto,SEMCDIGO,natabeladeprodutos AoinserirSEMCDIGOdoPRODUTO, =>SeoCD.PRODUTOutilizaocampoautoincremento, assumirovalordo"generator". Seno,assumirNULOedarumerro(exceo), porcod.cliserNOTNULLeCHAVEPRIMRIA*/ INSERTINTOProduto (Nom_Pro,Pre_Venda,Pre_Compra,Qtd_Estoq) VALUES (PIA,300.50,220.35,10) INSERTINTOCLIENTE (COD_CLI,LOJA_CLI,NOME,ENDERECO,BAIRRO,CEP) VALUES (null,1,'JosdosReis','RuadoJos,35','CENTRO','37890000') CdigodeINCLUSOdoregistrodoCLIENTE,viaprogramaoEMDELPHI:
WithF_Dm_Pedidos.ZQRY_Livre.SQLdo Begin Clear; // //CdigodeINSEROnatabledeCLIENTES; Append('InsertintoCLIENTE'); Append('(COD_CLI,LOJA_CLI,NOME,ENDERECO,BAIRRO,CEP)'); Append('Values'); // //QUOTEDSTR(X)=>"Envolve"avarivel"X",comaspassimples=>XtemqueserSTRING; Append('(null,1,'); Append(QuotedStr(Ed_Nome2.Text)+','); Append(QuotedStr(Ed_Endereco2.Text)+','); Append(QuotedStr(Ed_Bairro2.Text)+','); Append(QuotedStr(Ed_Cep2.Text)); Append(')'); // //TENTAINCLUIRoregistroDIGITADO; Try Showmessage('Vejaaquery:'+#13+#13+ '"'+F_Dm_Pedidos.ZQRY_Livre.SQL.Text+'"'); F_Dm_Pedidos.ZQRY_Livre.ExecSQL;//Travaoregistro.(destravanoCOMMIT) ExceptOnE:Exceptiondo Begin Application.MessageBox(Pchar( 'Algumusurioest"TRAVANDO"oREGISTROATUAL'+#13+#13+ 'ERRO:"'+E.Message+'";'), 'ImpossvelINCLUIR',MB_Ok); // //F_Dm_Dados.ZConnection.RollBack;=>NoprecisadoROLLBACK, //poisSEDEUEXCEO,noCHEGOUA"ABRIRtransao" Result:=False; EXIT; End; End; // //GRAVAFISICAMENTE,finalizatransao,edestravaoregistro F_Dm_Pedidos.ZConnection.Commit;

End;

Apostila com Exemplos de comandos simples de SQL Verso 2.0 UPDATE, INSERT DELETE e SELECT Autor : Carlos Antnio Ferreira da Silva. carlosmuzambinho@yahoo.com.br

Pg.5

4*COMANDOSELECT*SELEO/FILTROderegistro(s)* OndeprocurarmaisdetalhesSOBRESELECT:
SINTAXEBSICA: Select[campos] From[Tabela(s)] Where[condio]
/*Mostratodoscamposdatabeladeprodutos*/ SELECT*FROMPRODUTO /*MostracampoNOM_PRO,ePRE_VENDAdatabeladeprodutos,somenteparaprodutosdoGRUPO=7*/ SELECTNOM_PRO,PRE_VENDA FROMPRODUTO WHEREGRUPO=7 /*MostratodosCAMPOSdatabeladeITENSdavendanmero51*/ SELECT*FROMITENS WHERECOD_VENDA=51 /*Mostraqtdederegistrosdatabeladeprodutos*/ SELECTCOUNT(*)FROMPRODUTO /*MostraqtdedeprodutosCADASTRADOS,dogrupo=3*/ SELECTCOUNT(*)FROMPRODUTO WHEREgrupo=3

* Para mais detalhes, v no arquivo de 850 dicas de DELPHI e , na guia PESQUISAR, procure por AVG. L encontrar uma APOSTILA de SELECT, com vrios exemplos ;

FunesAgregadas(oudeAgrupamento)
Funo (avg(n) count(expr) max(expr) min(expr) sum(n) Retorno mdia do valor n, ignorando nulos vezes que o nmero da expr avalia para algo nao nulo maior valor da expr menor valor da expr soma dos valores de n, ignorando nulos

/*MostraototalDOCAMPOQTE_PRO,ouseja,ototaldoestoque,detodosprodutoscadastrados */ SELECTSUM(QTE_PRO)FROMPRODUTO /*MostraaMDIAdoCAMPOPRE_PRO,ouseja, AMDIAdePREO,detodosprodutoscadastrados*/ SELECTAVG(PRE_PRO)FROMPRODUTO /*MdiadepreodosprodutosdoGRUPO3*/ SELECTAVG(PRE_PRO)FROMPRODUTO WHERECOD_GRUPO=3 /*MENORPREOdepreodosprodutosdoGRUPO5*/ SELECTMIN(PRE_PRO)FROMPRODUTO WHERECOD_GRUPO=5

Apostila com Exemplos de comandos simples de SQL Verso 2.0 UPDATE, INSERT DELETE e SELECT Autor : Carlos Antnio Ferreira da Silva. carlosmuzambinho@yahoo.com.br CLUSULALIKEe% Permite pesquisar por PARTE de um campo, com auxlio do % /*SelecionatodosclientescomnomeiniciadocomANT*/ SELECTNOMEFROMCLIENTE WHERENOMELIKEANT% /*SelecionatodosclientescomapalavraMARIA*/ SELECT*FROMCLIENTE WHERENOMELIKE'%MARIA%' CLUSULAGROUPBYCondiesAGRUPADAS /*SelecionaaMDIAsalarialDOSCLIENTES,SEPARADOSPORLOJA*/ SELECTLOJA_CLI,AVG(SALARIO) FromCLIENTE GroupbyLOJA_CLI

Pg.6

A clusula "HAVING" pode ser utilizada para especificar quais grupos devero ser exibidos, portanto restringindo-os. /*SelecionaaMDIAsalarialDOSCLIENTES,SEPARADOSPORLOJA FILTRADOSSOMENTEPELALOJA2(FILTRADOSCOMWHERE,ANOPORGRUPO)*/ SELECTLOJA_CLI,AVG(SALARIO) FromCLIENTE WhereLOJA_CLI=3 GroupbyLOJA_CLI /*SelecionaaMDIAsalarialDOSCLIENTES,SEPARADOSPORLOJA, FILTRANDOCOMHAVING,(HAVING=>porquenestecaso,umacondioagrupada)SOMENTEOSSALRIO>300,00(HAVING)*/ SELECTLOJA_CLI,AVG(SALARIO) FromCLIENTE WhereLOJA_CLI=3 GroupbyLOJA_CLI HavingAVG(SALARIO)>300

CLUSULA ESPECIAL Having + Group By

Apostila com Exemplos de comandos simples de SQL Verso 2.0 UPDATE, INSERT DELETE e SELECT Autor : Carlos Antnio Ferreira da Silva. carlosmuzambinho@yahoo.com.br

Pg.7

OSelectsupercomplexoabaixofoicriadacomoIBEASY, OpoFERRAMENTAS MODOQBE(QueryBuilderExpert)


SELECT/*Selecioneoscampos...*/ "PEDIDOS"."COD_PEDIDO"as"Pedido",/*Cd.pedidodepedidos,mostrandoPedido*/ "PEDIDOS"."DATA_PEDIDO"as"Data",/*Data.pedidodepedidos,mostrandoData*/ "CLIENTE"."NOME"as"Cliente",/*Nome/cliente,mostrandoCliente*/ Sum(QTDE_ITEN*VALOR_ITEN)as"TotaldoPedido", "PEDIDOS"."VALOR_PAGO"as"ValorjPago" FROM"ITEN_PEDIDO","CLIENTE","PEDIDOS"/*dastabelas...*/ WHERE/*Enquanto...*/ "PEDIDOS"."LOJA_CLI"="CLIENTE"."LOJA_CLI" /* Loja_Cli de Pedidos = Loja_Cli de Clientes */ AND"PEDIDOS"."COD_CLI"="CLIENTE"."COD_CLI" /* Cod_Cli de Pedidos = Cod _Cli de Clientes */ AND"ITEN_PEDIDO"."COD_PED"="PEDIDOS"."COD_PEDIDO"/* Cod_Ped de Iten_Pedido = Cod_Ped de Pedidos */ GROUPBY/*AgrupadaporCD.PEDIDO,DATADOPEDIDO,NOMEDOCLIENTEeVALORPAGO*/ "PEDIDOS"."COD_PEDIDO", "PEDIDOS"."DATA_PEDIDO", "CLIENTE"."NOME", "PEDIDOS"."VALOR_PAGO"

(VEJAAPRXIMAPGINA)

Apostila com Exemplos de comandos simples de SQL Verso 2.0 UPDATE, INSERT DELETE e SELECT Autor : Carlos Antnio Ferreira da Silva. carlosmuzambinho@yahoo.com.br

Pg.8

VejaoqueoIBEASYfacilmentenosproporciona: GuiaRESULTADOS:

GuiaCAMPOS:

Observao: SELECTScomplexoscomooacima,devemsergeradoscomaplicativoscomoIBEASY,que facilitamavidadoprogramador. OIBEASY,napartedegeraodeSelectsdemodovisual,enapartedeIMPRESSOde DER(DiagramaEntidadeRelacionamento)muitobom. IBEXPERTversoPersonal(free): Paraalterar/criarTables,StoredProcedures,Triggers,aconselhooIBEXPERTverso Personal(free),portrazerdetalhadamenteosSCRIPTS; Comochegarl::IBEASY,menuFERRAMENTAS MODOQBE(QueryBuilderExpert)

Vous aimerez peut-être aussi