sábado, 31 de marzo de 2012

Booteables de windows utilizando Diskpart.

En ocasiones resulta que necesitamos hacer que una memoria USB sea booteable, debido a que necesitamos formatear una computadora sin unidad de disco, o que la unidad de disco se encuentre dañada.

Realmente hay muchas formas y muchos métodos para realizar una booteable de windows: en la web podemos encontrar muchos programas que facilmente te crean dicha memoria USB en booteable; pero bien es cierto también que no todos funcionan adecuadamente, pero la pregunta es: 

¿Que pasa si necesitas la booteable y no tienes un programa o no cuentas con Internet para descargarlo?

Aquí la solución.

Lo único que necesitas es la Memoria USB, la Imagen ISO o el disco de Windows, y una computadora con Windows vista o 7.

Los pasos son los siguientes:
  1.  Habré símbolos del sistema y escribe: diskpart (saldrá una ventana como si fuera a instalar un programa y dale aceptar).
  2.  Ahora escribe list disk  (te mostrara la lista de discos que se encuentran conectados, incluyendo tu USB).
  3. Ahora escribe select disk 1 (debes tener cuidado de que disco es tu memoria, te lo marca por capacidad).
  4. Ahora escribe clean  (sirve para limpiar la USB).
  5. Ahora escribe create partition primary (crea la partición donde quedara la imagen del sistema).
  6.  Ahora escribe select partition 1.  
  7. Ahora escribe active.
  8. Ahora escribe format fs=fat32.
  9. Ahora escribe assign .
  10. Ahora escribe exit
  11. Ahora escribe xcopy E:\*.* /s/e/f G:\ (donde E es la imagen de windows y G es tu USB, solo fíjate en que unidades se encuentran ya sea tu disco de Windows o Imagen ISO y que unidad ocupa tu USB).


Listo, ya tienes tu USB booteable.

Ahora solo falta configurar la BIOS para que arranque desde la USB, en realidad la mayoría de las computadoras son diferentes pero muy similares.

Cuando arranca fijate que tecla debes presionar para entrar a la BIOS, por lo general es F2, una vez que entras te vas a donde dice configuración de la BIOS, después le das donde dice order BOOT, y buscas la USB, y ya es todo.

viernes, 30 de marzo de 2012

Tutorial Mysql.

El modo de instalación, en Windows es el tradicional: Descargas el programa desde la página oficial doble clic, siguiente, siguiente, finalizar y listo.


Para instalarlo en Ubuntu se hace lo siguiente:

  • Para instalar tu servidor local escribe en una terminal el siguiente comando: 
  • sudo aptitude install mysql-server mysql-client 
  • Inmediatamente te pedirá tu contraseña de tu administrador, la escribes y el proceso continuara automáticamente por unos minutos dependiendo de la capacidad de tu internet, al finalizar el proceso te pedira que crees una contraseña para tu servidor, la ingresas y listo ya tienes mysql.


Cada vez que ingreses al servidor desde la terminal es necesario escribir lo siguiente:


mysql -h localhost -u root -p (y das enter, después te pedira la contraseña que creaste para tu servidor)


Debe aparecer algo así:




En caso de que no quede bien instalado el servidor  será necesario reiniciarlo, entonces escribe en la terminal el siguiente comando:

 sudo /etc/init.d/mysql restart



NOTA: Para instalar el servidor es necesario estar conectado a internet, para reiniciarlo no.

Si eres de los que prefieren usar modo grafico te recomiendo instalar el Query Browser que se encuentra en el menú Aplicaciones-centro de software de Ubuntu-Query Browser. Para poder utilizarlo, antes es necesario instalar el servidor porque te pedira la contraseña.


INTRODUCCIÓN.

Como ya sabrás, en cualquier lenguaje de programación se tiene definido un léxico y una semántica bien establecida, Mysql no es la excepción, tanto como en C, Java y algunos otros lenguajes cuenta con sus propios tipos de datos, los más usuales son:



Int
Se utiliza para escribir declarar datos de tipo entero.
Numeric
Se utiliza para declarar datos de tipo entero con longitud menor que de tipo Int.
Char
Se utiliza para declarar datos que contengan caracteres, letras, números, símbolos; los datos se escriben entre comillas o comilla simple.
Varchar
Se utiliza para declarar datos que contengan caracteres, letras, números, símbolos; los datos se escriben entre comillas o comilla simple. Tiene mayor longitud que el tipo Char.
Date
Se utiliza para declarar datos que contengan fecha el formato es: AAMMDD.


Pasemos a las sentencias.

CREAR BASE DE DATOS:
create database Nom_base;


CREAR TABLA.
create table Nom_Tabla (campo1 tipo_dato1(longitud) primary key, campo2 tipo_dato2(longitud), ...  campo_n tipo_dato_n(longitud));


NOTA: primary key se utiliza para declarar una llave primaria, es decir para que no exista duplicidad.


RENOMBRAR TABLA.
rename table Nom_Tabla TO Nom_nueva_tabla;


INSERTAR DATOS.
insert into nom_tabla
values (dato1_fila1, dato2_fila1, dato3_fila1, dato4_fila1, ....),
           (dato1_fila2, dato2_fila2, dato3_fila2, dato4_fila2, ....);


NOTA: Recuerda que si el dato es de tipo char o varchar se escribe entre comillas o comilla simple.


SELECCIONAR DATOS
Select *from Nom_tabla ....... (para seleccionar toda la tabla) .
select campo1, campo2, campo3 from Nom-tabla .......(para seleccionar campos en específico) .


ACTUALIZAR DATOS:
update Nom_tabla set campo=nuevo_dato where campo_llave_primaria=dato_llave_primaria


INSERTAR NUEVOS CAMPOS:
alter table nom_tabla add nuevo_campo tipo_dato (longitud)


MODIFICAR NOMBRES DE COLUMNAS.
alter table nom_tabla change nom_campo nom_nuevo_nombre tipo _dato(longitud)


METODO DE ORDENAMIENTO .
select nom_campo  from nom_tabla order by nom_campo


METODO DE ORDENAMIENTO EN FORMA DESCENDENTE.
select nom_campo from nom_tabla order by nom_campo desc


PARA BORRAR COLUMNAS:
alter table nom_tabla drop nom_campo


CONCATENAR COLUMNAS.
select concat (nom_campo1,"    ",nom_campo2) from nom_tabla


PONERLE NOMBRE A LA LISTA DE CONCATENACION.
select concat(campo1,"    ",campo2) as "Nombre de lista" from nom_tabla


AUMENTAR VALOR DE UNA COLUMNA.
select nom_campo, nom_campo+1 as "Nombre de la lista" from nom_tabla


NOTA: Esto solo mostrara en pantalla el aumento de algo, por ejemplo cuando los alumnos pasan a un nuevo semestre, pero sin realmente modificarlo, si lo que queremos es que se modifique tecleamos lo siguiente:


CORREGIR COLUMNAS COMPLETAS.
update nom_tabla set nom_campo= nom_campo+1


CONTAR CUANTOS DATOS HAY EN UNA COLUMNA.
select count(*) from nom_tabla; ..... para toda la tabla.
select count(nom_campo) from nom_tabla; ..... campo en específico.


CALCULAR PROMEDIO.
select avg(nom_campo) from nom_tabla where condicion;


NOTA: En condición puede ir por ejemplo si queremos calcular que promedio tuvieron todos los alumnos de sexto semestre: semestre=6.


AGRUPAR Y CONTAR AL MISMO TIEMPO.
select nom_campo, count(*) from nom_tabla order by nom_campo;


Pasemos a los ejercicios.


EJERCICIO 1.
Se necesita crear una base de datos para poder  realizar consultas que muestre el historial médico de un paciente, seleccionando los datos más relevantes: nombre, fecha de ingreso, fecha de salida, diagnostico y el nombre del médico que lo atendió.


Lo primero que hice fue realizar mi diagrama de entidad-relación deduciendo que tendría las siguientes tablas con sus campos correspondientes:

  1. create database historial_medico; (para ver si se creó mi base escribo show databases;


  1. Use historial_medico;
  2. Create table paciente (codigo int(6) primary key, nombre varchar(12), apellido varchar(12));
  3. create table medico (rfc varchar(6) primary key, nommedico varchar(12), apemedico varchar(12));
  4. create table consulta (codigo int(6) primary key, fingreso date, fsalida date, diagnostico varchar(30), codpaciente int(6), rfcmedico varchar(12)); escribimos show tables para ver si se crearon nuestra tablas.

NOTA: Los campos codpaciente y rfcmedico sirven para hacer referencia con las otras tablas, (son llaves foráneas).



  1. Insert into paciente
values
(123456, ”Javier”, “Carrera”),
(234567, ”Arturo”, “Barcenas”),
(345678, “Leandro”, “Bustamante”),
(456789, “David”, “Beltran”),
(567890, “Norma”, “Arteaga”),
(678901, “Angela”, “Hernandez”),
(789012, “Karina”, “Herrera”),
(890123, “Raul”, “Huicochea”),
(901234, “Naide”, “Loza”),
(012345, “Carmen”, “Arteaga”);
  1. insert into medico
values
(“ABC123”, ”Jaime”, ”Torres”),
(”ABC124”, ”Ana”, ”Perez”),
(”ABC125”, ”Carlos”, ”Mendoza”),
(”ABC126”, ”Patricia”, ”Contreras”),
(“ABC127”, ”Jose”, ”Jimenez”),
(”ABC128”, ”Sergio”, ”Pacheco”),
(”ABC129”,”Camila”, ”Gorostieta”);
  1. insert into consulta
values
(121211, 110801, 110801, “Fiebre comun”, 123456, “ABC123),
(121212, 110802, 110803, “Ulceras gastricas”, 234567, “ABC1234”),
(121213, 110802, 110803, “Paperas”, 345678, “ABC125”),
(121214, 110802, 110802, “Diarrea”, 456789, “ABC126”),
(121215, 110803, 110803, “Principios de cinucitis”, 567890, “ABC127”),
(121216, 110804, 110818, “Cancer”, 678901, “ABC128”),
(121217, 110804, 110804, “Diarrea”, 789012, “ABC129”),
(121218, 110805, 110805, “Fiebre comun”, 890123, “ABC125”),
(121219, 110805, 110807, “Anemia”, 901234, “AB126”),
(121210, 110806, 110806, “Cifilis”, 012345, “ABC123”),
(121221, 110807, 110807, “Anemia”, 234567, “ABC128”),
(121222, 110808, 110808, “Cancer”, 456789, “ABC123”),
(121223, 110808, 110817, “SIDA”, 123456, “ABC128”),
(121224, 110809, 110809, “Fiebre comun”, 234567, “ABC125”),
(121225, 110810, 110810, “Diarrea”, 345678, “ABC124”),
(121226, 110810, 110810, “Diarrea”, 456789, “ABC127”);


NOTA: Si lo que quieres es solo copiar y pegar tendrás que modificar las comillas y quitarle el salto de línea ya que  el archivo esta creado en un formato no valido por mysql,  y por lo tanto te marcara error.

Procederemos a realizar las consultas para lo cual utilizare el Query Browser porque tiene una presentación mas estética, cabe mencionar que si quisiéramos hacerlo en consola es el mismo codigo con punto y coma al final.


MOSTRAR TODOS LOS DATOS EXISTENTES EN LA  TABLA PACIENTE.
Select*from paciente;





MOSTRAR TODOS LOS DATOS EXISTENTES EN LA  TABLA MEDICO.
Select*from medico;




MOSTRAR TODOS LOS DATOS EXISTENTES EN LA  TABLA CONSULTA.
Select*from consulta;




MOSTRAR LOS DATOS MAS RELEVANTES DEL PACIENTE (NOMBRE,FECHA DE ENTRADA Y SALIDA,  DIAGNOSTICO, ASI COMO EL MEDICO QUE LO ATENDIO.
select nombre, apellido, fingreso, fsalida, diagnostico, nommedico, apemedico from paciente, consulta, medico where paciente.codigo=codpaciente and rfc=rfcmedico;



select  apellido, apellido, fingreso, fsalida, diagnostico, nommedico, apemedico from paciente, consulta, medico where paciente.codigo=codpaciente and rfc=rfcmedico order by 
apellido;




select  apellido, nombre, fingreso, fsalida, diagnostico, nommedico, apemedico from paciente, consulta, medico where paciente.codigo=codpaciente and rfc=rfcmedico and paciente.codigo=123456;




select  apellido, nombre, fingreso, fsalida, diagnostico, nommedico, apemedico from paciente, consulta, medico where paciente.codigo=codpaciente and rfc=rfcmedico order by fingreso;



select  apellido, nombre, fingreso, fsalida, diagnostico, nommedico, apemedico from paciente, consulta, medico where paciente.codigo=codpaciente and rfc=rfcmedico and paciente.codigo=789012;



select  apellido, nombre, fingreso, fsalida, diagnostico, nommedico, apemedico from paciente, consulta, medico where paciente.codigo=codpaciente and rfc=rfcmedico and rfc="ABC123";



select  apellido, nombre, fingreso, fsalida, diagnostico, nommedico, apemedico from paciente, consulta, medico where paciente.codigo=codpaciente and rfc=rfcmedico and diagnostico="Cancer";




select  apellido, nombre, fingreso, fsalida, diagnostico, nommedico, apemedico from paciente, consulta, medico where paciente.codigo=codpaciente and rfc=rfcmedico and fingreso>=110805 and fsalida<=110808;