Consultas de tipo SELECT

Las consultas son expresiones utilizadas para ver los datos almacenados en una o varias tablas. Así, por ejemplo, si queremos ver todos los datos almacenados en la tabla libros se usa la expresión select * from TABLA, en la parte inferior de la siguiente imagen puede verse el resultado de la consulta:

Si queremos ver los datos asociados a un campo puede escribirse de la siguiente manera:

También pueden realizarse consultas con CONDICIONES, buscamos por ejemplo todos los libros con una cantidad mayor a 100 unidades, para esto usamos la expresión WHERE:

Podemos seleccionar los campos que deseemos ver, por ejemplo: select nom_cli, ape_cli from cliente

Anuncios

Insertar datos en MySQL

Para insertar registros ó valores en una base de datos MYSQL se usa la sentencia INSERT, a continuación la estructura:

INSERT INTO tabla (campo1, campo2, campo3) VALUES (“valor1”, “valor2”, “valor3”);

Algunos aspectos para tener en cuenta:

  1. Los campos autoincrementales (auto_increment) no debemos alimentarlos, el sistema solo los diligencia.
  2. Es importante tener en cuenta el tipo de campo, por ejemplo si estamos alimentando un campo INT el valor se coloca solo, sin comillas: 1, 2, 3, 157, 1998… pero si estamos alimentando un campo VARCHAR se deben colocar los valores entre comillas.
  3. También se debe tener en cuenta el ancho máximo. Al momento de crear la tabla y de definir los tipos de campos, a los varchar generalmente se les coloca una extensión, por ejemplo varchar(20), este campo solo almacenará 20 caracteres.

Veamos un ejemplo:

insert into libros (NúmeroInterno,NombreLibro, Autor, Cantidad, Novedad)
values
(100, “Historia de colombia”, “Pedro Pérez”,150 , “Ninguna”);

Si deseamos agregar varios valores al mismo tiempo, se puede hacer algo así:

insert into libros (NúmeroInterno,NombreLibro, Autor, Cantidad, Novedad)

values

(100, “Historia de colombia”, “Pedro Pérez”, 150, “Ninguna”),

(200, “Sagrada Escritura”, “Ricardo Reyes”, 25, “Ninguna”),

(100, “Ciencias básicas”, “Octavio Paz”, 10, “Ninguna”),

(200, “Tecnología e informática”, “Héctor Hernández”, 100, “Ninguna”),

(100, “Matemáticas básicas”, “Juan Castrillón”, 10, “Ninguna”);

En mi caso particular utilizo WorkBench, se ve así:

Modificar tablas en SQL

En ocasiones es necesario modificar la estructura de una tabla después de que esta ha sido creada, para eso podemos usar varias instrucciones:

AGREGAR NUEVOS CAMPOS

Se utiliza la instrucción ADD COLUMN, así veamos un ejemplo. Supongamos que deseamos agregar dos campos nuevos a nuestra tabla libros:

ALTER TABLE libros ADD COLUMN (usuario varchar(10), fecha DATE);

ELIMINAR CAMPOS

En esta ocasión el comando necesario es DROP, por ejemplo, si queremos borrar la columna NúmeroInterno, procedemos así:

ALTER TABLE libros DROP NúmeroInterno;

MODIFICAR CAMPOS

Quizá nos equivocamos creando un campo, lo queríamos INT y por error lo colocamos como VARCHAR, usamos entonces la expresión modify, asignando las nuevas propiedades. Por ejemplo, la columna cantidad es de tipo INT, pero queremos que por alguna razón sea varchar:

ALTER TABLE libros modify Cantidad varchar(20);

 

Crear tablas en MySQL (2)

Bien, en la publicación anterior, al final, en el código aparecían dos conceptos: PRIMARY KEY y FOREIGN KEY… estos dos conceptos permiten RELACIONAR las tablas, para poder sacar un mayor provecho de las bases de datos. Veamos un ejemplo. En una biblioteca tenemos una tabla estudiantes, una tabla libros y una tabla préstamos; así, cuando un estudiante presta un libro este queda registrado en la tabla préstamos, la RELACIÓN entre las tablas permite que, al momento de registrar el préstamo, no sea necesario INGRESAR NUEVAMENTE TODOS LOS DATOS DEL ESTUDIANTE, se ingresa, por ejemplo únicamente su documento de identidad, así, cuando se realiza una consulta podemos tener TODOS LOS DATOS DEL ESTUDIANTE y TODOS LOS DATOS DEL LIBRO, pues las tablas están relacionadas.

Cuando se crea una tabla y se define un campo como PRIMARY KEY, este campo es el campo clave principal de la tabla, esto permite establecer relaciones de UNO A VARIOS, continuando con el ejemplo anterior, un estudiante puede prestar VARIOS LIBROS. En el caso de una empresa de transporte, por ejemplo, un carro está asignado solamente a un conductor, es decir una relación de UNO A UNO, en un hospital un médico puede tener varios pacientes y un paciente puede ser atendido por diversos médicos…es decir, tenemos una relación de VARIOS A VARIOS.

Vamos a crear una base de datos simple para gestionar una biblioteca:

1. Crear la tabla usuarios:

2. Crear la tabla libros:

3. Crear la tabla préstamos y relacionar las tablas:

La tabla préstamos requiere la información tanto del estudiante como del libro o de los libros que este presta. Para establecer la relación desde la tabla préstamos hacia la tabla libros y usuarios, se usa el término FOREIGN KEY, entre paréntesis el nombre del campo de la tabla actual, luego REFERENCES, el nombre de la otra tabla y entre paréntesis el nombre del campo.  Ambos campos deben tener la misma estructura, por ejemplo: ser dos varchar, o dos campos INT.

Crear tablas en MySQL (1)

La sentencia SQL usada para crear las bases de datos es CREATE DATABASE, una vez creada la base de datos se selecciona y luego se crean las tablas, así:

1. Creamos la base de datos:

La sentencia usada es CREATE, seguida del tipo de objeto que se quiere crear DATABASE (Base de datos), seguido del nombre de la base de datos (pruebas) finalizamos con ; y hacemos siempre clic en el icono ejecutar que aparece en la parte superior, después del icono de guardar.

2. Seleccionamos la base de datos:

Se usa la sentencia USE para seleccionar la base de datos sobre la cual se desea trabajar.

3. Creamos las tablas:

Las tablas se crean con la expresión CREATE TABLE… seguido del nombre de la misma, los nombres y tipos de campos, se pueden crear las tablas de a una o se pueden crear todas al mismo tiempo, a continuación un ejemplo:

En el ejemplo anterior podemos ver en color negro los nombres de los campos que hacen parte de la tabla: Id, tipo, usuario, nombres, apellidos, email. Además el tipo de dato asignado a cada uno de ellos: int (numérico), varchar (texto). La expresión auto_increment indica que es un campo con numeración incremental, es decir, que por cada registro el sistema aumentará un valor: 1, 2, 3, 4, 5, 6… la expresión primary key nos indica que este es el campo llave primaria, definición esta importante para la posterior relación entre las tablas. Los valores en color naranja que aparecen entre paréntesis indican la extensión máxima (capacidad) de cada uno de los campos, se mide en caracteres.

Es posible crear todas las tablas de una vez o crear las tablas de de a una.  A continuación un ejemplo de código para crear todas las tablas de una base de datos en un solo momento, esta vez en la aplicación MySQL-Front.

En una próxima entrada explicaré los conceptos de clave primaria (PRIMARY KEY) y clave secundaria (FOREIGN KEY).

Generalidades Bases de Datos – preparativos iniciales

Introducción a las bases de datos

Una base de datos es un conjunto de datos, generalmente relacionados entre si, aunque no siempre. Que se encuentran organizados, pueden ser consultados y actualizados. Las bases de datos están conformadas por tablas y estas a su vez por filas y columnas.

Ejemplos de bases de datos: en una biblioteca se tiene el registro de los libros existentes, usuarios, préstamos, entre otros. En un hospital se tiene listado de pacientes, médicos, historias clínicas, consultas, remisiones, etc. En una institución educativa se gestiona la información de docentes, estudiantes, asignación académica, valoraciones, etc. En el Banco se tiene la información de los clientes, saldos de cuentas, créditos, pagos, etc. Como podemos ver hoy en día la sociedad está soportada por grandes bases de datos.

Generalmente estas bases de datos son administradas a través de aplicaciones conocidas como Sistemas de Gestión de Bases de Datos o SGBD, algunos ejemplos de estas son: Oracle, MySQL, PostgreeSQL, entre otros.

En el ámbito del desarrollo de software generalmente se manejan diferentes lenguajes de programación que permiten la interacción con los SGBD, así por ejemplo pueden desarrollarse aplicaciones en PHP que interactúan con una base de datos en MySQL, en JAVA, Python, etc.

1. Instalar un servidor web

Para comenzar a explorar este ámbito, desde la web, es importante contar en el computador con un servidor web, existen diferentes opciones, para comenzar puede instalarse el WampServer: http://wampserver.com, después de instalar la aplicación es necesario iniciar el servidor, en el escritorio del computador aparece un icono similar a este:

Basta con hacer doble clic y esperar hasta que aparezca una W de color verde en la zona del reloj del sistema, en ese momento ya se puede comenzar. Una vez instalado iniciado el servidor tenemos dos opciones para interactuar con la base de datos:

Opción 1: a través del PHPMYADMIN, esta aplicación viene con el WampServer, para interactuar con esta aplicación debemos abrir el navegador web, digitar en la barra de direcciones localhost, aparecerá una pantalla similar a  esta:

En la parte inferior izquierda de la pantalla aparece la opción phpmyadmin, al hacer clic nos aparecerá una imagen similar a la siguiente. Desde allí ya podemos crear las bases de datos, tablas, ingresar la información, etc.

Opción 2: si deseamos interactuar con las bases de datos desde una aplicación de escritorio tenemos varias opciones, algunas de ellas son MySQL-Front o MySQL Workbench. La primera es una aplicación más sencilla, fácil de manejar pero con menos opciones. La segunda es una aplicación mucho más potente con más herramientas.

2. Instalar aplicación de escritorio para gestionar las Bases de Datos

Workbench es una herramienta visual para gestionar bases de datos bastante potentes. Para poder descargar la aplicación se puede ingresar a este enlace https://www.mysql.com/products/workbench/ hacer clic en la opción Download Now

Una vez descargado el archivo basta con dar doble clic y seguir las indicaciones para instalar.

 

PD: Imágenes tomadas de las diferentes aplicaciones y sitios web únicamente con fines educativos.