comando s mysql
TRANSCRIPT
-
LENGUAJESQL
Unmanejadordebasededatosdebedecontenerlenguajesquepermitandefinirelmodelosdelosdatos,estemismoesquepermitecrearlaestructuradelabasededatos.
LenguajedeDefiniciondeDatos
EnMysqlelLenguajedeDifiniciondeDatos(LDD)esunsubconjuntodeSQL(CreateTable,createIndex,Createview,createtable,droptable,dropdatabase,dropview,etc;).
LenguajedeManipulaciondeDatos
Este lenguaje es que se utiliza para realizar las operaciones como son: consultas (Lenguaje deConsultas),Borrar,insertaryactualizardatos.
EnMysqlseutilizaunsubconjuntodeSQL(update,insertinto,delete,select,truncate,etc).
TodosloscomandosdemanejadorMysql,sedebendeterminarconun;,sinoseterminaconun;, elcursorsaltaalasiguientelineaparaseguirescribiendomascomandos,esdebidoaquepuedenexistirsentenciasdeconsultaocreacindetablasmuygrandes,ydeestamanerasehacemultilinea.
ComandosbsicosparaelLDD,yvisualizacindeesquemas
CREATEDATABASE;Estecomandocreaunanuevabasededatossobreelmanejadorqueseestautilizando
USECuandosehacreadounabasededatosysepretendetrabajarsobreella,esnecesarioejecutar
estecomandoparaasignarlaalreadetrabajo,sisequierecrearalgunatabla,ocurreunerrordebidoaquenosehaestablecidoelreadetrabajo,queenestecasoseralabasededatos.Estasentencia,esla unicaquesepuedeejecutarsinunpuntoycomaparaterminar.
SHOW[DATABASES|TABLES];Avecesesnecesarioverificarsiaunnosehacreadounabasededatosconalgnnombre
especifico,otaltalvezverificarquealcrearunabasededatos,laoperacinhayatenidoxito,paraesto,elcomandoshowpermitevisualizarlasbasesdedatossobreelmanejadorolastablassobreunaBDenelreadetrabajo.
CREATE TABLE ([atributos caractersticas] primary key(atributo), foreignkey(atributo)referencetabla)
Paracrearlasdefinicionesy/oesquemasdelasentidadesquevanaformarpartedelabasededatos,seejecutaestecomandoparacrearunaentidadotabladelabasededatos,enestadefinicinseespecificantambinlasllavestantoprimariacomoforneas.
-
Ejemplo:createtablepersona(idint(3)notnullauto_increment,nombresvarchar(50)notnull,apellidos
varchar(30)default'',primarykey(id));
Lainstruccionanteriorcreaunatablallamadapersona,estableciendocomollaveprimariaelatributoidqueesteesautoincrementable.
CREATEVIEWas(tablatemporal);Estecomandoseutlizaparacreartablasvirtualesenlabasededatos,esdecir,sepuedeutlizar
paracrearespejosdetablas,laspropiedadesquetienesonquecualquieroperacionsobrelosdatosenestatablavirtual,tienenefectosobrelosdatosoriginales,latablatemporalpuedeserunaconsulta simplehastaunconsultacompleja.
DROP[DATABASE|TABLE|VIEW];Este comando se utiliza para eliminar tanto bases de datos como tablas, y vistas (tablas
virtuales).
Ejemplo:sisequiereeliminarunatablaquetienecomonombrepersonas:
DROPTABLEpersonas;
Estossonloscomandosbasicosparaladefiniciondelosdatos, Algunoscomandomarcanerrorescuandosepretendecreartablas,basesdedatos,y/ovistas,cuandoyaexisten,paraevitarestetipodeerrores, el manejador de bases de datos provee unas instrucciones condicionales para no cometererrores.
IFEXISTS,IFNOTEXISTS:estossonlasclausulasparaverificarantesdecrearalgunaentidadoDB,lamaneraenqueseutilizaneslasiguiente:
CREATETABLEIFNOTEXIST(......)CREATEDATABASEIFNOTEXISTS;CREATEVIEWIFNOTEXISTS;
delamismamaneraparacrearnuevasentidadesoDB's,seutilizaparaeliminarentidadesyoDB's;
DROP [VIEW | DATABASE | TABLE] IF EXISTS
Hastaelmomentosehandefinidoloscomandosparaladefiniciondedatos,entoncesloscomandosdemanipulaciondedatos,sonlosquepermiteninteractuarconlainformaciondelaBD,esdecir,sonlosquepermiteninsertar,actualizar,eliminar,etc.LosdatosdelaBD.
ComandosdelLenguajedeManipulaciondeDatos
Ellenguajedemanipulaciondedatossepuedeclasificaren2tipos:
-
Lenguajedeconsultaylenguajedemanipulacion.
Ellenguajedeconsultapermiteobtenerlainformacionrequeridaporelusuario,yelcomandoutilizadoparacrearlosreportes(tablas)paraundeterminadousoes:
SELECT [atributos, ...] FROM [tabla1, tabla2 .....] WHERE [condiciones] ORDER BY[atributos,atributos].
Estecomandoseutilizadediferentesmaneras,yseleconocecomosentenciasdeconsulta,obtenerdatos,yseusandemanerasimplehastademaneracompleja.
Simplesconunasolatabla:
SELECT*FROMtabla;Estasentenciaobtienetodoslosatributosdetodoslosregistrosqueexistenentabla.
SELECTatrib1,atrib2,...,atribnFROMtabla;Realizalamismaaccionquelasentenciaanterior,adiferenciadequeenlaanteriorsemuestran
todoslosatributos,yenestasemuestransoloalgunosatributosespecificados.
Cuandoserequiereobtenersololosregistrosquecumplenalgunarestriccionocondicionenalgunosdelosatributosdeunatabla,seutilizalaclausulaWHEREparaespecificarlascondicionesquedebencumplirlosregistrosquesedesean.
SELECT*FROMtablaWHERE(Atributo='valor');
Cuandosetienenvariascondiciones,sepuedenutilizarlosoperadoreslogicosenconjuntoconlosoperadoresdecomparacion:
Operadoreslogicos:AND(&),OR(|)NOT.
Operadoresdecomparacion:= comparadordeequidad< Menorque> Mayorque>= Mayoroigualque5ORC='Mil'));
ElcomandodeconsultatambiensepuedeutilizarconlaclausulaLIKE,quepermitemanejarpatrones,esdecir,seespecificaunpatronpararealizarlascomparaiones,ylosregistrosquetenganesepatronenelatributoespecificadosevanaobtenerindependientementemaysculaominuscula.
-
Elusodeestaclausulaesdelasiguientemanera:
('%patron%'),esteespecificaquenoimportaendondeaparescaesepatron,inclusopuedenoexistir, esdecirnoimportaquetengaatras,niquetengadelantedelpatron,sevaaobtenerelregistro.
('patron%'),Esteusodefinequetodoslosregistrosqueempiecenconelpatronespecificadosevanaobtener.
(%patron),delamismamanera,queelanterioradiferenciaqueentesonlosqueterminan.
Ejemplo:
SELECT*FROMpersonaWHERE(ApellidosLIKE'Perez%');
enesteejemploseobtienentodoslosregistrosdelatablapersonaqueempiezanconPerez,noimportaquetengadespus.
Cuando existen varias condiciones sobre un mismo atributo en una sentencia es tedioso estarespecificandocadacondicinsobreelatributo,paraeliminarestaproblematicayquelassentenciasnosetornenmuygrandes,SELECTsecombinaconlaclausulaINquerecibeunconjuntodevaloresenloscualessevanaevaluarlascondiciones
Ejemplo:
SELECT*FROMtablaWHERE(id[NOT]IN(valor1,valor2,valor3,....,valorn))
enelcasodequeseancadenasdecaracteressemetenentrecomillas.
EnresumenelcomandoSELECTobtieneregistrosdeunaomastablas,ycomoresultadoentregaunatablatemporal.
ElLenguajedeManipulaciondedatoseselquepermitecomosunombreloindicamanipularlosdatosexistentesenlabasededatos.
InsertarRegistros.
INSERTINTO.Estecomandopermiteinsertarregistrossobreunatablaenespecificodelabasededatos,yexisten3manerasbsicasdeinsertarregistros.
1.INSERINTO('campo1','campo2')VALUES('valorCampo1','valorCampo2');2.INSERINTOVALUES('valorCampo1','valorCampo2');3.INSERINTOSETcampo1='valorCampo1',campo2='valorCampo2';
Lamaneraenqueseenvianlosdatosen1y2eslamisma,esdecir,enelordenenqueseencuentranloscampoenlatabla,demismamaneraseleenvianlosdatos,adiferenciadela3noimportaenqueoredenseleenvienlosdatos,yaqueenestaultimaseleespecificaelnombreelcampo.Asimismo,
-
cuandonosetienendatosparadeterminadoscamposconvalorespordefault,esnecesarioespecificarelespaciodelcampoen3nosoloseomite.
Actualizardatosderegistros.
Elcomandoparactualizardatosenunafiladeterminadaseutiliza:
UPDATESETCampo='valornuevodeCampo'WHERE(condiciones);
sisetienenqueactualizarvarioscampos,seseparanconcomas,OJO,lacondiciondeactualizacionesnecesariasisolosequiereactualizarendeterminadasfilas,yaquesinoseindicaunacondicion,seactualizantodaslasfilasdelatabla,yestopuederesultardesagradablesinosepretendiaeso,MySQLno permite retaurar, a diferencia de otros Manejadores, que si se equivocan, con solo escribirROLLBACK,deshacentodaslasoperacionesquehanhechosincausardaosenlaBD,comoeselcasodeORACLE,asiquemuchocuidado.
EliminarRegistros.
cuando existen registros inecesarios ne las tablas y no se pretende llevar un historial, osimplementeseequivocaronyquiereneliminartodalafila,EllenguajeSQLpermiteeliminarregistrosmedianteelcomandoDELETE.
DELETEFROM[tabla1,tabla2]WHERE(condicionestabla1ytabla2);
Estecomandoesmuyimportantesuuso,deigualmaneraqueUPDATEnecesariamentetienequellevarlas condiciones deeliminaciondefilas, yaquesi noseespecificalacondicion, eliminatodoslosregistrosdela tabla, yesopuedesermuydesastrosoparalosAdministradoresdeDB,asi muchocuidadoconestecomando.
Sisequiereeliminartodoslosregistrosdelatablan,SQLpermitehacerloconuncomandomuhsimpleTRUNCATE,yseusadelasiguientemanera:
TRUNCATE;
Yelresultadoesvaciarlatabladeregistros,esmuyparecidoalaaccindevaciarlapapeleradereciclajedeUnix.
Hastaelmomentossehanestaejecutandosentenciassobreunasolatabla,cuandosrequiereaccederalosdatosdemasdeunatablarelacionadasdealgunamaneraynorelacionadas,existenlasopcionesavanzadasdeloscomandosmencionadosconanterioridad.
ComandoSELECTconvariastablas:
SELECTtabla1.*,tabla2.*fromtabla1,tabla2WHERE(condicionesderelacion)
Enestetipodeconsultasesnecesarioespecificarlacondicionderelacionquehayentrelastablas,esto
-
debido a que si no se especifican se van a realiza operaciones del algebra relacional que no seobtendranresultadossatisfactorios.
Estecomandopermiteutilizarseconunaclausulaquepermitedistinguirdatosdeuno,ylaclasusuesDISTINCT,quepermiteobtenerdatosnoduplicados,siysolositodoslosatributosseparecen.
SELECTDSTINCTtabla1.*,tabla2.*FROMtabla1,tabla2WHERE(Condicionesderelacion)
AnteriormenteseindicoqueelcomandoSELECTdacomoresultadootratabla,porlotanto,sisequierenobtenersoloalgunasfilasdelresultadodeunaconsulta,sepuedehacerdeunamaneramuysimple,aquisehaceusodelosALIAS,quepermitenombrayaseaunatabla,ounatributoyseusadelasiguientemanera:
SELECT*FROM(SELECT*FROMtablaWHEREid>20andid
-
SELECT*fromtabla1UNION[ALL]tabla2
ElcomandoIntersectObtienelainterseccionde2tablas,esdecirlosregistrosqueestanentabla1yqueestanentabla2.
SELECT*FROMtabla1INTERSECTtabla2
ElcomandoMINUSobtienelosregistrosquenoestanenlatabla2SELECT*FROMtabla1MINUStabla2;
Loscomandodeequijuntasporasociacionesyaseaalaizquierdaoladerecha:
SELECT*fromtabla1JOINtabla2onC1=C2;
estetipodecomandoentregacomoresultadounauniondetablas,esdecir,secreaunatablaconlosatributosdetabla1ytabla2
ElIDENTIFICADORLEFToRIGHTespordondesehacelajunta,ElIDENTIFICADOROUTER,indicasiseadierenaunquenocumplalacondicion.
Ejemplos:
SELECTtabla1.*,tabla2.*fromtabla1RIGHTJOINtabla2onC1=C2;
SELECTtabla1.*,tabla2.*fromtabla1LEFTJOINtabla2onC1=C2;
SELECTtabla1.*,tabla2.*fromtabla1LEFTOUTERJOINtabla2onC1=C2;
SELECTtabla1.*,tabla2.*fromtabla1RIGHTOUTERJOINtabla2onC1=C2;
elresultadodelassentenciasanterioressondiferentes,yaquelajuntasehaceenunadireccionyotra,delamismamaneraquelasclausulasdelalgebrarelacional,delamaneraenqueseespecificanseobtienenresultadosdiferentes.
Elusodeloscomandosdellenguajedemanipulaciondedatospuederserdemuchasmaneras,comoporejemplo,sisepretendeinsertarregistrosdeunatablatemporalaparatirdelosregistrosdeunaomastablas,seprocededelasiguientemanera.
INSERTINTOtablaAS(SELECT*FROMtablasWHERE(condiciones)).
EJERCICIOS:
Delabasededatosporporcionada,realizarlassiguienteconsultas:
1.Muestretodoslosprofesoresquetienenporlomenosunapublicacion
2.MuestrelosprofesoresquetienennivelSNI
-
3.Muestrelosprofesoresquetenganperfilpromep
4.SiformapartedelgrupodedocentesdealaFim,actualicesuGradoacademico,noimportaquenolotenga,soloactualiceesecampoparasupersona;
5.ObtengalosusuariosquenopertenecenalgrupodedocentesyqueestanenlaBD
6. Liste los Proyectos que tienen los usuarios jpacheco, gsolorio, mvega, ladamex,mvillagomez
7.Obtengalacantidadderegistrosobtenidosparaelpatronadmindentrodelatablausuariosypersonas
8. Obtengaunlistacontodoslosprofesoresconelniveldeaccesoyel ordenadosporGrado;lamaneraquedaacriterio.