SQL
Origem:Wikipdia,aenciclopdialivre.
StructuredQueryLanguage,ouLinguagemdeConsultaEstruturadaouSQL,
alinguagemdepesquisadeclarativapadroparabancodedadosrelacional(basede SQLbancodedados.
dadosrelacional).MuitasdascaractersticasoriginaisdoSQLforaminspiradasna
lgebrarelacional.
OSQLfoidesenvolvidooriginalmentenoinciodosanos70noslaboratriosda
IBMemSanJose,dentrodoprojetoSystemR,quetinhaporobjetivodemonstrara
viabilidadedaimplementaodomodelorelacionalpropostoporE.F.Codd.O
nomeoriginaldalinguagemeraSEQUEL,acrnimopara"StructuredEnglishQuery
Language"(LinguagemdeConsultaEstruturada,emIngls)[1],vindodaofactode, ImagemdeacessoaumbancodedadosSQL
athoje,asigla,emingls,sercomumentepronunciada"squel"aoinvsde"ski
Paradigma Multiparadigma
l",letraaletra.Noentanto,emportugus,apronnciamaiscorrentealetraa
letra:"ssequle". Surgidoem 1974
ltima SQL:2008(2008)
Alinguagemumgrandepadrodebancodedados.Istodecorredasua verso
simplicidadeefacilidadedeuso.Elasediferenciadeoutraslinguagensdeconsultaa Criadopor DonaldD.Chamberlin
bancodedadosnosentidoemqueumaconsultaSQLespecificaaformado RaymondF.Boyce
resultadoenoocaminhoparachegaraele.Elaumalinguagemdeclarativaem Estilode Forte
oposioaoutraslinguagensprocedurais.Istoreduzociclodeaprendizadodaqueles tipagem:
queseiniciamnalinguagem. Dialetos: SQL86,SQL89,SQL92,
SQL:1999,SQL:2003,
EmboraoSQLtenhasidooriginalmentecriadopelaIBM,rapidamentesurgiram SQL:2008
vrios"dialectos"desenvolvidosporoutrosprodutores.Essaexpansolevou Influenciada Datalog
necessidadedesercriadoeadaptadoumpadroparaalinguagem.Estatarefafoi por
realizadapelaAmericanNationalStandardsInstitute(ANSI)em1986eISOem Influenciou Agena,CQL,LINQ,Windows
1987. PowerShell
OSQLfoirevistoem1992eaestaversofoidadoonomedeSQL92.Foirevistonovamenteem1999e2003parasetornar
SQL:1999(SQL3)eSQL:2003,respectivamente.OSQL:1999usaexpressesregularesdeemparelhamento,queriesrecursivase
gatilhos(triggers).Tambmfoifeitaumaadiocontroversadetiposnoescaladosealgumascaractersticasdeorientaoa
objeto.OSQL:2003introduzcaractersticasrelacionadasaoXML,sequnciaspadronizadasecolunascomvaloresdeauto
generalizao(inclusivecolunasidentidade).
Talcomoditoanteriormente,emborapadronizadopelaANSIeISO,possuimuitasvariaeseextensesproduzidospelos
diferentesfabricantesdesistemasgerenciadoresdebasesdedados.Tipicamentealinguagempodesermigradadeplataformapara
plataformasemmudanasestruturaisprincipais.
Outraaproximaopermitirparacdigodeidiomaproceduralserembutidoeinteragircomobancodedados.Porexemplo,o
OracleeoutrosincluemJavanabasededados,enquantooPostgreSQLpermitequefunessejamescritasemPerl,Tcl,ouC,
entreoutraslinguagens.
Exemplo
ApesquisaSELECT * FROM T,noexemplodatabeladireitaacima,tercomoresultadotodososelementosdetodasaslinhasda
tabelachamadaT.PartindodamesmatabelaT,apesquisaSELECT C1 FROM Ttercomoresultadotodososelementosdacoluna
C1databelaT.OresultadodapesquisaSELECT * FROM T WHERE C1=1sertodososelementosdetodasaslinhasondeovalorde
colunaC1'1'.
SubconjuntosdoSQL
AlinguagemSQLdivididaemsubconjuntosdeacordocomasoperaesquequeremosefetuarsobreumbancodedados,tais
como:
DMLLinguagemdeManipulaodeDados
OprimeirogrupoaDML(DataManipulationLanguageLinguagemdemanipulaodedados).DMLumsubconjuntoda
linguagemSQLqueutilizadopararealizarincluses,consultas,alteraeseexclusesdedadospresentesemregistros.Estas
tarefaspodemserexecutadasemvriosregistrosdediversastabelasaomesmotempo.Oscomandosquerealizamrespectivamente
asfunesacimareferidassoInsert,Select,UpdateeDelete.
comandos
funo descriodocomando exemplo
SQL
usadaparainserirumregistro(formalmenteuma
incluses INSERT Insert into Pessoa (id, nome, sexo) value;
tupla)aumatabelaexistente.
paramudarosvaloresdedadosemumaoumais UPDATEPessoaSETdata_nascimento=
alteraes UPDATE
linhasdatabelaexistente. '11/09/1985'WHEREid_pessoa=7
excluses DELETE permiteremoverlinhasexistentesdeumatabela. DELETEFROMpessoaWHEREid_pessoa=7
possvelinserirdadosnatabelaAREAusandooINSERT INTO:
Insert into AREA (arecod, aredes) values (100, "Informtica"), (200, "Turismo"), (300, "Higiene e Beleza");
DDLLinguagemdeDefiniodeDados
OsegundogrupoaDDL(DataDefinitionLanguageLinguagemdeDefiniodeDados).UmaDDLpermiteaoutilizador
definirtabelasnovaseelementosassociados.AmaioriadosbancosdedadosdeSQLcomerciaistemextensesproprietriasno
DDL.
OscomandosbsicosdaDDLsopoucos:
CREATE:criaumobjeto(umaTabela,porexemplo)dentrodabasededados.
DROP:apagaumobjetodobancodedados.
AlgunssistemasdebancodedadosusamocomandoALTER,quepermiteaousurioalterarumobjeto,porexemplo,adicionando
umacolunaaumatabelaexistente.
OutroscomandosDDL:
CREATE TABLE
CREATE INDEX
CREATE VIEW
ALTER TABLE
ALTER INDEX
DROP INDEX
DROP VIEW
DCLLinguagemdeControledeDados
OterceirogrupooDCL(DataControlLanguageLinguagemdeControledeDados).DCLcontrolaosaspectosdeautorizao
dedadoselicenasdeusuriosparacontrolarquemtemacessoparaveroumanipulardadosdentrodobancodedados.
DuaspalavraschavesdaDCL:
https://pt.wikipedia.org/wiki/SQL 2/5
28/10/2015 SQL Wikipdia, a enciclopdia livre
GRANTautorizaaousurioexecutarousetaroperaes.
REVOKEremoveourestringeacapacidadedeumusuriodeexecutaroperaes.
DTLLinguagemdeTransaodeDados
BEGIN WORK(ouSTARTTRANSACTION,dependendododialetoSQL)podeserusadoparamarcarocomeodeuma
transaodebancodedadosquepodesercompletadaouno.
COMMITfinalizaumatransaodentrodeumsistemadegerenciamentodebancodedados.
ROLLBACKfazcomqueasmudanasnosdadosexistentesdesdeoltimoCOMMITouROLLBACKsejamdescartadas.
COMMITeROLLBACKinteragemcomreasdecontrolecomotransaoelocao.Ambosterminamqualquertransaoabertae
liberamqualquercadeadoligadoadados.NaausnciadeumBEGINWORKouumadeclaraosemelhante,asemnticadeSQL
dependentedaimplementao.
DQLLinguagemdeConsultadeDados
Emboratenhaapenasumcomando,aDQLapartedaSQLmaisutilizada.OcomandoSELECTpermiteaousurioespecificar
umaconsulta("query")comoumadescriodoresultadodesejado.Essecomandocompostodevriasclusulaseopes,
possibilitandoelaborarconsultasdasmaissimplessmaiselaboradas.
comandos
funo descriodocomando exemplo
SQL
PalavraschaveemSQL
Clusulas
Asclusulassocondiesdemodificaoutilizadasparadefinirosdadosquedesejaselecionaroumodificaremumaconsulta.
FROMUtilizadaparaespecificaratabelaquesevaiselecionarosregistros.
WHEREUtilizadaparaespecificarascondiesquedevemreunirosregistrosqueseroselecionados.
GROUP BYUtilizadaparasepararosregistrosselecionadosemgruposespecficos.
HAVINGUtilizadaparaexpressaracondioquedevesatisfazercadagrupo.
ORDER BYUtilizadaparaordenarosregistrosselecionadoscomumaordemespecifica.
DISTINCTUtilizadaparaselecionardadossemrepetio.
UNIONcombinaosresultadosdeduasconsultasSQLemumanicatabelaparatodasaslinhascorrespondentes.
OperadoresLgicos
ANDElgico.Avaliaascondiesedevolveumvalorverdadeirocasoambossejamcorretos.
OROUlgico.Avaliaascondiesedevolveumvalorverdadeirosealgumforcorreto.
NOTNegaolgica.Devolveovalorcontrriodaexpresso.
Operadoresrelacionais
OSQLpossuioperadoresrelacionais,quesousadospararealizarcomparaesentrevalores,emestruturasdecontrole.
Operador Descrio
< Menor
> Maior
<= Menorouigual
>= Maiorouigual
= Igual
<> Diferente
https://pt.wikipedia.org/wiki/SQL 3/5
28/10/2015 SQL Wikipdia, a enciclopdia livre
BETWEENUtilizadoparaespecificarvaloresdentrodeumintervalofechado.
LIKEUtilizadonacomparaodeummodeloeparaespecificarregistrosdeumbancodedados."Like"+extenso%
significabuscartodosresultadoscomomesmoinciodaextenso.
INUtilizadoparaverificarseovalorprocuradoestdentrodeumalista.Ex.:valorIN(1,2,3,4).
FunesdeAgregao
Asfunesdeagregao,comoosexemplosabaixo,sousadasdentrodeumaclusulaSELECTemgruposderegistrospara
devolverumnicovalorqueseaplicaaumgrupoderegistros.
AVGUtilizadaparacalcularamdiadosvaloresdeumcampodeterminado.
COUNTUtilizadaparadevolveronmeroderegistrosdaseleo.
SUMUtilizadaparadevolverasomadetodososvaloresdeumcampodeterminado.
MAXUtilizadaparadevolverovalormaisaltodeumcampoespecificado.
MINUtilizadaparadevolverovalormaisbaixodeumcampoespecificado.
SistemasdeBancodeDadosqueusamSQL
SybaseAdvantageDatabaseServer(http://www.sybase.com.br/products/databasemanagement/advantagedatabaseserver)
ApacheDerby
Cach
DB2
Firebird
HSQLDB(bancodedadosimplementadoemJava)
IDMS(bancodedadoshierrquico)
IMS(bancodedadoshierrquico)
Informix
Ingres
InterBase
MicrosoftAccess
MicrosoftSQLServer
MySQL
Oracle
PointBaseMicro(bancodedadosrelacionalimplementadoemJava)
PostgreSQL
SQLite
LiteBaseMobile(dedicadoplataformasmveiscomo:PalmOS,PocketPC,WinCE,Symbian)
SybaseAdaptiveServerEnterprise
Teradata(primeiroRDBMScomarquiteturaparaleladomercado)
Referncias
1. Chamberlin,D.D.,Astrahan,M.M.,Blasgen,M.W.,Gray,J.N.,King,W.F.,Lindsay,B.G.,Lorie,R.,Mehl,J.W.,Price,T.G.,
Putzolu,F.,Selinger,P.G.,Schkolnick,M.,Slutz,D.R.,Traiger,I.L.,Wade,B.W.,andYost,R.A.1981.Ahistoryandevaluationof
SystemR.Commun.ACM24,10(Oct.1981),632646.http://doi.acm.org/10.1145/358769.358784
Navathe,S.B.andElmasri,R..SistemasdebancodedadosFundamentoseaplicaes.LTC:2002.
Ligaesexternas
PadroSQL2003(http://www.acm.org/sigmod/record/issues/0403/index.html#standards)(emingls)
SQLtutorial(http://sqlwoz.com)
JupitermediaCorporation'sonlineSQLtutorial(http://sqlcourse.com/)(emingls)
AGentleIntroductiontoSQLbyAndrewCumming(http://sqlzoo.net/)(emingls)
DatabaseDebunking(http://www.dbdebunk.com/)(emingls)
OnlineSQLFormatter(http://www.textutils.com/sqlformatter)(emingls)
CursodeSQLGratuito
(http://www.softblue.com.br/site/curso/id/3/CURSO+SQL+COMPLETO+BASICO+AO+AVANCADO+ON+LINE+BD03)
(emportugus)
SQLforbeginners(http://www.cfxweb.net/modules.php?name=News&file=article&sid=161)(emingls)
OracleSQLFAQ(http://www.orafaq.com/faqsql.htm)(emingls)
LiteBase(http://www.litebase.org/)(emportugus)
TutorialdeSQL(http://www.1keydata.com/pt/sql/)(emportugus)
OracleSQLtutorials(http://freeitsolutions.com/oracletutorials/?search=sql)(emingls)
https://pt.wikipedia.org/wiki/SQL 4/5