Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SQL ConceptosBasicos
SQL ConceptosBasicos
El siguiente tutorial tiene por objetivo explicar las principales sentencias utilizadas en MySQL para
la creación y lectura de bases de datos.
¿Qué es SQL?
SQL: Structured Query Language. Es un lenguaje estructurado para poder acceder a una base de
datos. Dicho acceso puede ser de lectura o escritura, dependiendo de la sintaxis de la misma.
SQL es el lenguaje utilizado en MySQL, así como en otros gestores de Bases de Datos como SQL
Server.
Para poder mostrar el uso de sentencias básicas de SQL en MYSQL, utilizaremos un ejemplo de
una base de datos de una escuela. Para ello, abrimos MySQL desde la línea de comandos:
Notas:
– Todos los ejemplos fueron realizados en Ubuntu 9.04, pero gracias a que MySQL es
multiplataforma, la ejecución y resultados será la misma para todos los sistemas operativos
que soporten MySQL.
– La nomenclatura a utilizar será la siguiente:
1. Titulos en verde: Sentencias de lectura de datos.
2. Titulos en azul: Sentencias de escritura de datos.
Principales sentencias de SQL.
SHOW DATABASES;
Muestra las bases de datos existentes en MySQL:
Podemos apreciar que existen 4 bases de datos en este equipo. Las tablas que ya incluye MySQL
por default son “information_schema” y “mysql”. Las otras 2, “floreria” y “hotel” fueron creadas
por el usuario.
IMPORTANTE: Observa que las sentencias terminan con punto y coma. Existen algunas
sentencias que no lo necesitan, pero para no confundirnos, terminaremos todas las sentencias de
esta forma.
CREATE DATABASE (nombre de la base de datos);
Crea una nueva base de datos con el nombre especificado:
Podemos observar que la sentencia se ejecutó correctamente. Para comprobar que nuestra base
de datos “escuela” existe, podemos ejecutar “show databases” explicada en la sección anterior.
DROP DATABASE (nombre de la base de datos);
Elimina una base de datos cuyo nombre es el especificado:
Podemos observar que la sentencia se ejecutó correctamente. Para comprobar que nuestra base
de datos “escuela” fue removida, podemos ejecutar nuevamente “show databases”.
USE (nombre de la base de datos);
Indica a MySQL que utilice la base de datos cuyo nombre es el especificado. Todas las operaciones
que se le indiquen a MySQL se realizarán sobre dicha base de datos de ahora en adelante:
Observa que tuvimos que crear la base de datos “escuela” de nuevo porque la habíamos removido
anteriormente.
Al ejecutar dicho comando, MySQL nos indica que la base de datos actual ha cambiado por la que
nosotros hemos elegido.
SHOW TABLES;
Muestra las tablas existentes en la base de datos actual:
Al ejecutar ésta sentencia, vemos que MySQL nos indica “Empty set”, ya que no hemos creado
nunguna tabla para la base de datos “escuela”. Veamos como creamos tablas.
CREATE TABLE (nombre de la tabla) (descripción de los campos);
Crea una nueva tabla dentro de las base de datos actual. Dentro de la sentencia, se especifica el
nombre que tendrá la tabla y sus campos correspondientes. Para nuestro ejemplo, crearemos 2
tablas:
– “alumnos”, la cual contendrá los campos “nombre”, “grado” y “grupo”.
– “materias”, la cual contendrá “nombre” y “grado”.
Antes de continuar, veamos algunos tipos de datos que maneja MySQL para los campos de las
tablas.
int(n).
Tipo de datos que maneja números enteros. Dentro del paréntesis, podemos especificar el número
máximo de dígitos que puede tener nuestro valor entero. Por ejemplo, int(4) nos dice que el
número máximo de dígitos puede ser 4, por lo que no aceptaría valores como 12345, 34789, etc.
varchar(n)
Tipo de datos que maneja caracteres. Dentro del paréntesis, podemos especificar el número
máximo de caracteres que pueden ser utilizados en dicho campo. Por ejemplo, varchar(10) indica
que el número máximo de caracteres puede ser de 10.
Para crear nuestras tablas, debemos decidir los tipos de datos para nuestros campos:
– “alumnos”: nombre:alfabético; grado: numérico; grupo: alfabético:
– “materias”, nombre: alfabético; grado: numérico.
Hecho esto, procedamos a crear nuestras tablas. Hagamos primero la tabla “alumnos”:
Drawing 6: Creación de la tabla "alumnos".
Como podrán observar, hemos dividido la sentencia en varias líneas. MySQL permite esto para
hacer más legible la escritura de la misma. Para poder hacerlo, simplemente damos “Enter”. La
sentencia no se ejecutará porque MySQL sabe que la sentencia está incompleta, por lo que seguirá
solicitando datos al usuario.
Para definir los campos, escribimos primero el nombre del campo y luego el tipo de valor para
dicho campo. En nuestro ejemplo, definimos que “nombre“ será alfabético de 100 caracteres como
máximo, “grado” será numérico de 2 dígitos y “grupo” será alfabético de 1 caracter. Cada
declaración de campo está separada por comas.
Para crear la tabla “materias”, utilizamos la misma sintaxis:
create table materias( nombre varchar(100), grado int(2) );
De nuevo, pueden dividir la sentencia a su gusto para mejorar la legibilidad del mismo. Para
comprobar que las tablas fueron creadas, ejecutamos “show tables”.
DESCRIBE (nombre de la tabla);
Muestra una descripción general de los campos de la tabla indicada:
Como podrán ver, lo primero que debemos especificar es la tabla donde vamos a insertar el
registro. Posteriormente, le decimos a MySQL los campos en donde se insertarán los datos.
Finalmente, de acuerdo al orden de los campos especificados anteriormente, le decimos a MySQL
los datos a insertar. En nuestro ejemplo, insertamos dentro de la tabla “alumnos” el siguiente
registro:
– nombre: “Alejandro Garcia Granados”
– grado: 6
– grupo : “A”.
Cuando escribimos datos alfabéticos, debemos escribirlos entre comillas dobles o simples.
Prueba insertando un registro en la tabla “materias“.
SELECT * FROM (nombre de la tabla);
Muestra todos los registros de la tabla especificada:
El resultado muestra cada campo en una columna diferente. En nuestro ejemplo, únicamente
tenmos un registro, pero esto nos sirve para comprobar que los datos se insertaron correctamente.
SELECT (campos de la tabla separados por comas) FROM (nombre de la
tabla);
Muestra todos los registros de la tabla especificada, pero en esta ocasión, solo se muestran los
campos que se escriben dentro de la sentencia:
Drawing 10: Visualización de campos específicos de todos los registros de una tabla.
El resultado es semejante al ejemplo anterior, pero podemos ver que únicamente se muestran los
campos que nosotros hemos solicitado.