Anda di halaman 1dari 4

28/10/2015 SQL Wikipdia, a enciclopdia livre

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.

Tabela'T' Consulta Resultado


ndice C1 C2 Select*fromT C1 C2
1 a 1 a
1Exemplo 2 b 2 b
2SubconjuntosdoSQL
2.1DMLLinguagemdeManipulaodeDados C1 C2 SelectC1fromT C1
2.2DDLLinguagemdeDefiniodeDados
1 a 1
2.3DCLLinguagemdeControledeDados
2.4DTLLinguagemdeTransaodeDados 2 b 2
2.5DQLLinguagemdeConsultadeDados Select*fromTwhereC1=1 C1 C2
3PalavraschaveemSQL C1 C2
3.1Clusulas 1 a 1 a
3.2OperadoresLgicos 2 b
3.3Operadoresrelacionais
3.4FunesdeAgregao
4SistemasdeBancodeDadosqueusamSQL
5Referncias
6Ligaesexternas
https://pt.wikipedia.org/wiki/SQL 1/5
28/10/2015 SQL Wikipdia, a enciclopdia livre

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

OSelectoprincipalcomandousadoemSQLpararealizarconsultasadados Select * From


consultas SELECT
pertencentesaumatabela. Pessoa;

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

Anda mungkin juga menyukai