Marcofbb Noticias y Artículos Webmasters



Publicidad marcored

MySQL - Introducción SQL

  • 12/03/2011
  • 3:14 pm
  • marcofbb

El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structured query language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en éstas. Una de sus características es el manejo del álgebra y el cálculo relacional permitiendo efectuar consultas con el fin de recuperar -de una forma sencilla- información de interés de una base de datos, así como también hacer cambios sobre ella.

Fuente: Wikipedia

Ejemplo a usar

Para todos las clases vamos a utilizar siempre el mismo ejemplo, con lo mismo items, ect. para que vean la diferencia y aprendan más rápido.

El ejemplo que vamos a dar es una agenda de contactos, imaginense para cada persona vamos a guardar su nombre, telefono, direccion, foto (opcional). Entonses vamos a crear una tabla llamada personas en la cual tendra 5 campos:

  • id: es el identificador de cada persona cual será un número entero.
  • nombre: es el campo donde se guarda el nombre de la persona.
  • telefono: este campo guarda el telefono de la persona.
  • direccion: acá se van a guardar la direccion.
  • foto: en este campo se va a guardar el nombre de la foto de la persona.

Crear tablas

Para crear la tabla en la Base de Datos utilizamos CREATE TABLE, donde se expicifica cada campo, tambien indicando el tipo de dato que vamos a almacenar en los campos. Entre los principales tipos de datos disponibles tenemos:

  • int: que permite guardar números enteros.
  • float: permite almacenar datos decimales.
  • date: para guardar fechas, el formato de la fecha es aaaa-mm-dd.
  • datetime: es para guardar fecha y hora, el formato es aaaa-mm-dd hh:mm:ss.
  • time: para almacenar la hora, el formato de la hora es hh:mm:ss.
  • char(n): almacena una cadena de texto de longitud fija n (De 0 a 255 caracteres).
  • varchar(n): para cadenas de tamaño variable de hasta n caracteres (De 0 a 255).
  • text es un campo para almacenar textos de hasta 65535 caracteres.

Para nuestro ejemplo crearíamos la tabla con 5 campos, donde el primero de ellos será el identificador de la persona que será un entero que ser irá auto-incrementando.

CREATE TABLE personas (
   id INT(11) NOT NULL AUTO_INCREMENT,
   nombre VARCHAR(180),
   telefono INT(10),
   direccion VARCHAR(180),
   foto VARCHAR(280)
)

Notese que por cada campo definimos el tipo de dato que puede almacenar. Los campos nombre y dirección aceptan textos de hasta 180 caracteres mientras que el campo foto solo acepta 280 caracteres como máximo.

Insertar datos

Para insertar datos en las tablas haremos uso de la sentencia INSERT INTO, para ello podemos indicar los campos con sus respectivos valores, esto respetando los tipos de datos aceptados.

Para nuestra tabla recién creada, insertaremos registros de la siguiente forma:

INSERT INTO personas (nombre, telefono, direccion, foto)
VALUES ('Marco', 51205120, 'calle falsa 123', 'marco.png')

Como se aprecia no es necesario incluir el dato para el id por el del tipo AUTO_INCREMENT lo cual significa que se creará automáticamente y con un valor incrementado en 1 al anterior registro.

Si estamos insertando todos los valores de una tabla, podemos sacar los nombres de los campos si mantenemos el mismo orden en el que fueron creados los campos.

INSERT INTO personas
VALUES ('Marco', 51205120, 'calle falsa 123', 'marco.png')

También se pueden insertar solo algunos campos de la tabla y no necesariamente en el orden en que fueron creados los campos en donde si debemos indicar los nombres de los campos, por ejemplo:

INSERT INTO personas (nombre, telefono)
VALUES ('Marco', 51205120)

Editar datos

Para editar, actualizar registro de una tabla se utiliza UPDATE, donde indicamos la tabla donde se harán los cambios, los campos a reemplazar con sus respectivos valores asi como la condición que se debe cumplir para realizar el cambio de los datos.

Para hacer uso de estas condiciones, MySQL provee de funciones de comparación como:

  • = para comparar si dos valores son iguales.
  • <> para comparar si dos valores son diferentes.
  • != para comparar si dos valores son diferentes. Igual al operador <>.
  • <= compara si un dato es menor o igual a otro.
  • < verifica si el datos es menor a otro.
  • => para compara si el datos es mayor o igual a otro.
  • > prueba si el datos es mayor a otro.
  • IS NULL devuelve verdadero si el campo es nulo.
  • IS NOT NULL verdadero si el campo no es nulo.

Adicionalmente se pueden utilizar las funciones booleanas como NOT, AND, OR y XOR.

Continuando con nuestro ejemplo, suponiendo que tenemos registrada una persona con el identificador 57, podríamos actualizar los datos de la siguiente forma:

UPDATE personas
SET nombre = 'Pepe', direccion = 'Avenida siempre viva 1647'
WHERE id = 57

También podríamos asignar una imagen por defecto a todas las empresas que no tengan logo, para ello haríamos:

UPDATE personas
SET foto = 'nofoto.png'
WHERE foto IS NULL

Eliminar datos con SQL

Para eliminar una tabla de MySQL utilizamos DELETE FROM, solo hay que indicar con la clausara WHERE las entradas que queremos eliminar.

En nuestro ejemplo eliminaremos todas las personas que tengan el campo del nombre vacio o nulo.

DELETE FROM personas
WHERE nombre IS NULL OR nombre = ''

Consultar datos con SQL

Para consultar datos (extraer datos) de una tabla se utiliza SELECT indicando los campos que deseamos extraer y el nombre de la tabla que utilizaremos.

Para nuestra tabla de ejemplo si deseamos consultar todas nombres y direcciones de las empresas:

SELECT nombre, direccion FROM personas

Se pueden utilizar alias para los campos extraídos, por ejemplo:

SELECT nombre AS 'Nombre', direccion AS 'Dirección' FROM personas

Si deseamos extraer todos los campos podemos utilizar el caracter *.

SELECT * FROM personas

Filtrando los resultados

Podemos aplicar condiciones a nuestras consultas con la directiva WHERE.

Para extraer la personas con identificador 57 la consulta sería:

SELECT * FROM personas WHERE id = 57

Si deseamos mostrar todas las empresas que tengan registradas su dirección:

SELECT * FROM personas WHERE direccion IS NOT NULL

Tambiém podriamos consultar todas las empresas cuyo nombre empiece con la letra A.

SELECT * FROM personas WHERE nombre LIKE 'A%'

Ordenando los resultados

Para el ordenamiento de los resultados se utiliza ORDER BY, este define por que campo se hará el ordenamiento así como si será en forma ascendente (ASC) o descendente (DESC).

Si utilizamos nuestra tabla de ejemplo podríamos listar todas las empresas en orden alfabetico:

SELECT * FROM personas ORDER BY nombre ASC

Contando los resultados

Es posible contar los registros utilizando COUNT, esto unido al filtro de datos es útil para hacer conteos de datos.

Si deseamos conocer cuantas empresa registradas tenemos:

SELECT COUNT(*) FROM personas

Podríamos conocer cuantas empresas tienen registradas direcciones vacías:

SELECT COUNT(*) FROM personas WHERE direccion = ''

Limitando los resultados

MySQL permite limitar la cantidad de resultados utilizando la palabra LIMIT, esta sentencia es muy flexible pues permite definir a partir de que registro y la cantidad de datos devueltos.

Si deseamos visualir las 5 ultimas empresas registradas en nuestra tabla tendríamos:

SELECT * FROM empresa ORDER BY id DESC LIMIT 5

Si estamos mostrando los resultados ordenados alfabeticamente en grupos de 10, tendríamos:

/* Para mostrar los primero 10 resultados */
SELECT * FROM empresa ORDER BY nombre ASC LIMIT LIMIT 0, 10
/* Para mostrar los siguientes 10 resultados */
SELECT * FROM empresa ORDER BY nombre ASC LIMIT LIMIT 10, 10

Ahora ya podemos crear, editar, eliminar y consultar los datos utilizando condiciones con la posibilidad de filtrar, ordenar y limitar los resultados.

Clase basada en el tutorial de unijimpe

Hilo donde están todos los artículos para aprender PHP

Share

¿Necesitas ayuda? o ¿Asesoramiento webmaster? Registrate en nuestro foro de consultas

Posts Relacionados

Total de Comentarios: 9

Avatar
12/03/2011
3:15 pm

[...] Clase 1: Primeros pasos en PHP Clase 2: Variables y Constantes Clase 3: Estructura condicional (if/elseif/else) Clase 4: Tipos de bucles (while, Do while, for y foreach) Clase 5: Envío de datos de un formulario Clase 6: Vectores, Array, Arreglos en PHP Clase 7: Funciones en PHP Clase 8: Base de Datos Clase 9: MySQL – Crear conexión Clase 10: MySQL – Introducción SQL [...]

Avatar
16/03/2011
1:44 am

[...] En esta clase te voy a mostrar como insertar datos en una base de datos, como ejemplo e creado una agenda en la cual la dividi en fragmentos, insertar datos, buscar datos, ver datos y editar datos. Si no entienden esto, ver la clase anterior Crear conexion y Introduccion Sql [...]

Avatar
26/03/2011
6:34 pm

[...] Para editar los datos guardados en nuestras tablas utilizamos la sentencia UPDATE explicada en Introduccion a SQL. [...]

Avatar
none
19/05/2012
11:43 pm

y donde pongo esto

INSERT INTO personas (nombre, telefono, direccion, foto)

Avatar
nacho
18/08/2012
2:04 pm

no me deja crear la tabla personas, me aparece esto:
#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key

Avatar
18/08/2012
3:24 pm

Nacho, el código contiene errores, esta solo a modo vista, el código correctamente escrito seria así

CREATE TABLE `personas` (
`id` int(8) NOT NULL auto_increment,
`nombre` varchar(180) default NULL,
`telefono` int(10) default NULL,
`direccion` varchar(180) default NULL,
`foto` varchar(280) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0;

Avatar
nacho
19/08/2012
1:58 pm

Gracias!

Avatar
nacho
23/03/2013
3:20 pm

que diferencia hay entre NULL, NOT NULL y default NULL?

Avatar
Marcofbb
23/03/2013
4:43 pm

Null es que puede estar estar vacío
Not null es que no tiene que estar vacío
Default null es que sí no se ingresa datos queda en valor null


Enviar Comentario

(*)

(*)