Base de datos 2
SUBSTR
SUBSTRING
LENGHT
SUBSTR ("PROGRAMACION",3,5);
SELECT SUBSTR("Programacion", 3,5)
mysql> SELECT SUBSTR("Programacion", 3,5);
+-----------------------------------+
| SUBSTR("Programacion", 3,5) |
+-----------------------------------+
| ogram |
+----------------------------------+
1 row in set (0.00 sec)
mysql> SELECT SUBSTR(CURRENT_DATE(),1,4);
+------------------------------------+
| SUBSTR(CURRENT_DATE(),1,4) |
+------------------------------------+
| 2015 |
+------------------------------------+
1 row in set (0.00 sec)
Comando para cargar un archivo de datos en una tabla
LOAD DATA INFILE 'C:\MyTextFile.txt'
INTO TABLE alumno
FIELDS TERMINATED BY '|';
el archivo debe tener la siguiente estructura
0601110015 | CUADROS BALDRICH MARIA ALEJANDRA |
0601110034 | HOLGUIN MUNOZ HERVIN HAROLD |
0700310071 | ORREGO LOZANO JUAN JOSE |
0701110007 | ANGEL ACEVEDO LEIDY TATIANA |
0701110013 | JARAMILLO MONTOYA JUAN PABLO |
0701110016 | CHICA JANNA JUAN DAVID |
0701110031 | MARTINEZ PATINO YULIETH PAOLA |
0701110036 | MALLAMA GIRALDO ANGIE CAROLINA |
0701110037 | FLOREZ SALDARRIAGA MIGUEL ANGEL |
0701110051 | FAJARDO QUINTERO JOHANA CATALINA |
0701110055 | GALLEGO ZAPATA SINDY CATHERINNE |
0701110063 | ARIAS JIMENEZ JOHAN |
0710620022 | YEPES GRISALES NATHALIA |
0710720005 | QUINTERO JOSE MIGUEL |
0710720010 | BOLIVAR CARTAGENA GUILLERMO ALEXIS |
0710820004 | ZULUAGA DIAZ HECTOR EDUARDO |
0710820025 | ZAPATA BEDOYA VICTOR FABIAN |
0710820026 | CONDE ALVAREZ YESICA YESSENIA |
select lenght("base de datos II");
Taller de Bases de Datos
Taller 07/02/2015
BD cadena
tabla alumno
carnet
nombre
create table alumno
(carnet char(15) not null
nombre char(50) not null);
LOAD DATA INFILE 'C:\MyTextFile.txt'
INTO TABLE alumno
FIELDS TERMINATED BY '|';
0750710003
075= carrera
07 = Año
1 = Semestre
0003= Carnet
informacion
+------------+------------------------------------+
| carnet | nombre |
+------------+------------------------------------+
| 0601110015 | CUADROS BALDRICH MARIA ALEJANDRA |
| 0601110034 | HOLGUIN MUNOZ HERVIN HAROLD |
| 0700310071 | ORREGO LOZANO JUAN JOSE |
| 0701110007 | ANGEL ACEVEDO LEIDY TATIANA |
| 0701110013 | JARAMILLO MONTOYA JUAN PABLO |
| 0701110016 | CHICA JANNA JUAN DAVID |
| 0701110031 | MARTINEZ PATINO YULIETH PAOLA |
| 0701110036 | MALLAMA GIRALDO ANGIE CAROLINA |
| 0701110037 | FLOREZ SALDARRIAGA MIGUEL ANGEL |
| 0701110051 | FAJARDO QUINTERO JOHANA CATALINA |
| 0701110055 | GALLEGO ZAPATA SINDY CATHERINNE |
| 0701110063 | ARIAS JIMENEZ JOHAN |
| 0710620022 | YEPES GRISALES NATHALIA |
| 0710720005 | QUINTERO JOSE MIGUEL |
| 0710720010 | BOLIVAR CARTAGENA GUILLERMO ALEXIS |
| 0710820004 | ZULUAGA DIAZ HECTOR EDUARDO |
| 0710820025 | ZAPATA BEDOYA VICTOR FABIAN |
| 0710820026 | CONDE ALVAREZ YESICA YESSENIA |
| 0710820034 | ADARMES MURCIA JESSICA |
| 0710910007 | QUINCHIA CHAVERRA EDWIN ALEXANDER |
| 0710910018 | ALZATE ARROYAVE MAURICIO |
| 0711020003 | AGUILAR LARGO JESUS AUGUSTO |
| 0721110006 | CASTRO SUAREZ RUTH ANGELICA |
| 0721110008 | HIDALGO CADAVID CAROLINA |
| 0721110012 | GARCIA MORALES LUISA FERNANDA |
| 0721110017 | GALVIS CUESTA KELLY JOHANA |
| 0721110022 | CORREA GONZALEZ GABRIEL JOSE |
| 0721110023 | SAENZ DANIELA FERNANDA |
| 0721110025 | CASTRILLON SALAZAR ISABEL CRISTINA |
| 0721110028 | MANCILLA MONTERO MARLYS MACIEL |
| 0721110033 | BEDOYA ACEVEDO LILIANA |
| 0721110034 | GARCIA MENDEZ SARA DANIELA |
| 0721110036 | GOMEZ BELTRAN KATHERINE JOHANA |
| 0731110017 | MADRID MURILLO ARLENYS |
| 0731110020 | MACIAS HERNANDEZ YURI ALEIDA |
| 0741110010 | PALACIOS QUINTO SNDY |
| 0741110016 | GRANADOS MARIN DAVID FELIPE |
| 0750210001 | HENAO BRAN DIXON RODRIGO |
| 0750310024 | PALACIOS ALUMA MARBIN |
| 0750410035 | LONDONO HERRERA DORIAN ALEXANDER |
| 0750616022 | ESTRADA MARTINEZ ANET ELLACY |
| 0750710001 | OROZCO MONTOYA MARLON FELIPE |
| 0750710003 | BLANDON NARANJO ADRIANA MARIA |
| 0750710014 | MONTOYA LONDONO SERGIO ANDRES |
| 0750816010 | ECHAVARRIA RIOS JENIFER ANDREA |
| 0750826036 | SEPULVEDA GARCIA ADRIANA ROCIO |
| 0750920012 | BENJUMEA HERRERA CAMILO ANDRES |
| 0751010013 | DUQUE LOPEZ YESID ANDRES |
| 0751010015 | LOPERA BUILES VICTOR ARLEY |
| 0751010021 | SALAZAR ALZATE LEON RODRIGO |
| 0751016012 | PALACIOS PALACIOS JESSIE JACKSON |
| 0751016023 | LOPERA AGUDELO MARIA MAGDALENA |
| 0751020017 | GOMEZ JIMENEZ DEICY JULIANA |
| 0751020018 | CALIXTO BETANCOURT JENNY MARCELA |
| 0751020021 | LONDONO OCAMPO WALTER FABER |
| 0751026030 | RAMOS ASPRILLA YUBER JOSE |
| 0751110010 | FUENTES VARGAS EDUWIN DANIEL |
| 0751110014 | ROJAS VALENCIA OSCAR FERNANDO |
| 0751110017 | RAMIREZ HERMES |
| 0751110018 | VERGARA DIAZ YURANIS MARLEY |
| 0751110034 | RODRIGUEZ CARDONA YENY ANDREA |
| 0751110036 | MUNOZ CADAVID ANA MARINA |
| 0751110046 | ISAZA MORALES NELSON JOVANNY |
| 0751110047 | VEGA BONILLA LIZET VANESSA |
| 0751116028 | VERGARA RUA NANCY JULIETH |
| 0751116031 | QUINTERO MONTES AICARDO |
| 0751116033 | RENTERIA SANABRIA LUIS ANTONIO |
| 0880920004 | CORDOBA GARCIA JESBER |
| 0880920022 | ARBOLEDA PALACIOS YUSLY YULIPSA |
| 0880920023 | DIAZ RAMIREZ OSCAR |
| 0880920025 | OSPINA MORENO MARGARITA MARIA |
| 0881010011 | RESTREPO GOMEZ RUBEN FERNANDO |
| 0881010015 | PEREZ CARDENAS STEFANIA |
| 0881020007 | VANEGAS HENAO ELMER ANDRES |
| 0881020031 | MUNOZ MONSALVE CIPRIANO ANTONIO |
| 0881110009 | GOMEZ BRAVO LUIS GABRIEL |
| 0881110013 | AGUDLO SIERRA JOHAN SEBASTIAN |
| 0881110017 | GRAJALES MUNOZ VICTOR CAMILO |
| 0881110026 | GARCIA LOPEZ GAYO |
| 0881110029 | RODRIGUEZ HERNANDEZ PAOLA TATIANA |
| 0881110030 | GONZALEZ SIERRA JONATAN ANDRES |
+------------+------------------------------------+
1- listar los alumnos de sistemas (071, 075, 088)
select * from alumno where left(carnet,2) in ('71','75','88');
2- cuantos son de ingenieria (075)
select count(*) from alumno where left(carnet,2) in ('75');
3- total de alumnos que iniciaron en el primer semestre del año
select count(*) CUANTOS, SUBSTRING(carnet,6,1) from Alumno Where SUBSTRING(carnet,6,1) = "1" group by substring(carnet,6,1)
4- listar los alumnos que se matricularon en el segundo semestre del año
Select * from alumno where substring(carnet,6,1) = '2';
5- cuantos alumnos se matricularon antes del 2008
select count(*) CUANTOS, SUBSTRING(carnet,4,2) from Alumno Where SUBSTRING(carnet,4,2) = "08" group by substring(carnet,4,2)
6- cuantos alumnos no son de sistemas
Select count(*) from alumno where left (carnet,3) not in ('071','075','088');
7- ordenar los alumnos por año de matricula
Select *,Substring(carnet,4,2) as Año from alumno order by Substring(carnet,4,2);
8- listar los alumnos que tengan menos de 20 caracteres en su nombre
Select * from Alumno WHERE LENGTH(nombre)<20;
9- listar los alumnos de tecnologia que esten matriculados antes del 2007 en el primer semestre del año
SELECT * FROM Alumno WHERE LEFT(carnet,3) IN ('071','088') AND SUBSTRING(Carnet,4,2) < '07' AND SUBSTRING(Carnet,6,1)= '1';
10- carnet mayor de los alumnos de sistemas (sin incluir carrera, año de matricula, ni semestre, solo los ultimos 4 digitos)
SELECT MAX(right(Carnet,4)) AS Carnet FROM Alumno WHERE LEFT(carnet,3) IN ('075','071','088');
11 - carnet mayor de los alumnos que no son de sistemas (sin incluir carrera, año de matricula, ni semestre, solo los ultimos 4 digitos)
SELECT MAX(RIGHT(carnet,4)) AS Carnet From Alumno Where left(carnet,3) not in ('071','075','088');
Clase 28-Febrero de 2015
L=0, Martes=1, Miercoles=2, Jueves=3, Viernes=4.......
Mostrar que dia (numero de dia segunla tabla anterior ...
mysql> select weekday('1987-10-10');
+-----------------------+
| weekday('1987-10-10') |
+-----------------------+
| 5 |
+-----------------------+
1 row in set (0.00 sec)
Mostrar la hora del PC ...
Select current_time();
mysql> Select current_time();
+----------------+
| current_time() |
+----------------+
| 11:41:22 |
+----------------+
1 row in set (0.00 sec)
Adiccionar minutos al tiempo del pc ......
Select timestampadd(minute,25,current_time());
mysql> Select timestampadd(minute,25,current_time());
+----------------------------------------+
| timestampadd(minute,25,current_time()) |
+----------------------------------------+
| 12:20:24 |
+----------------------------------------+
1 row in set (0.00 sec)
mysql> Select timediff('10:00:00','06:45:18');
+---------------------------------+
| timediff('10:00:00','06:45:18') |
+---------------------------------+
| 03:14:42 |
+---------------------------------+
1 row in set (0.00 sec)
Como realizar Backups
pirmero cargamos la base de datos
source D:\ejercicio.sql
mysqldump -B -uroot -p --routines BD > ubicacion
mysqldump -B -p -uroot biblioteca_cur >d:/Biblioteca.sql
ESTRUCTURAS TABLAS
Exportar Extructura
mysqldump -B -p -uroot --routines -d ejercicio >d:/Ejercio1.sql
Exportar datos
mysqldump -B -uroot -p --routines -t ejercicio >d:/datos.sql
Backup Procedimientos y trigers
mysqldump -B -uroot -p --routines -t -d ejercicio >d:/Procedimientos.sql
Backup una tabla.....
mysqldump -B -uroot -p --routines -t ejercicio >d:/tablas.sql
mysqldump -uroot ejercicio cliente >d:/cliente.sql
Backup Condicional
mysqldump -uroot -p ejercicio factura --where="tipopago='contado'" >d:/condicional.sql
Privilegios en las bases de datos
grant all privilegios on ** to 'usuario'@'localhost' identified by 'clave';
grant all privilegios on BD TABLAS to 'usuario'@'localhost' identified by 'clave';
grant select, insert on ejercicio.cliente to 'prueba'@'localhost' identified by 'practica';
show grants for 'prueba'@'localhost' ;
grant select, insert,drop on ejercicio.cliente to 'prueba'@'localhost' identified by 'practica';
revoke insert on ejercicio.cliente from 'prueba'@'localhost';
mysql -uroot -p
grant select, insert, update, delete on ejercicio.* to 'prueba'@'localhost' identified by 'practica';
grant all privilegios on BD TABLAS to 'usuario'@'localhost' identified by 'clave';
EJERCICIO
crear un usuario "administrador" que tenga los privilegios de insertar, consultar, modificar y eliminar todas las tablas
grant select, insert, update, delete, select on matricula.* to 'Administrador'@'localhost' identified by 'practica';
crear un usuario "operador" que tenga los privilegios insertar y consultar
grant select, insert, select on matricula.* to 'operador'@'localhost' identified by 'practica';
crear un usuario "decano" que tenga privilegios totales para las tablas profesor, materia y profesormateria
grant select, insert, update, delete, select on matricula.profesor to 'Decano'@'localhost' identified by 'practica';
grant select, insert, update, delete, select on matricula.materia to 'Decano'@'localhost' identified by 'practica';
grant select, insert, update, delete, select on matricula.profesormateria to 'Decano'@'localhost' identified by 'practica';
mysqldump -uroot matricula >d:/matricula.sql
mysqldump -B -uadministrador -practica -uroot --routines matricula >d:/MatriculaAd.sql