lunes, 10 de octubre de 2011

03.- Principios de SQL y sintaxis básica

Por lo tanto SQL es un lenguaje de consulta estándar diseñado para operar en bases de datos. Como se ha explicado actúa en MySQL, pero también puede operar en otras bases de datos como Oracle, DB2, SQL server, PostgreSQL, etc. Qué operaciones permite llevar a cabo:
  • Ejecutar consultas y recuperar datos
  • Efectuar procesos de recuperación de información
  • Insertar, actualizar y eliminar registros
  • Crear nuevas bases de datos, tablas y campos
  • Establecer permisos de administración para los usuarios
  • Crear distintas vistas de una base de datos

Aprendiendo la sintaxis básica
En este curso nos centraremos en los métodos de recuperación por medio de SQL. Pero para ello es necesario aprender una sintaxis básica con la que se explican los principios de consulta SQL. En la siguiente tabla1 se observan una serie de palabras reservadas o cláusulas (coloreadas en rojo) que corresponden al selector de campos (SELECT), al selector de tablas (FROM) y a la cláusula condicional (WHERE).

SELECT campos FROM tabla WHERE condición
 Tabla1. Sintáxis de consulta básica

Siempre que se desea obtener datos o resultados de una consulta SQL se requiere un selector de los campos que son objetivo de la búsqueda, seleccionar la tabla en la que se desea buscar la información y establecer las condiciones oportunas que deben cumplir los resultados. Véase el siguiente ejemplo de la tabla2:

SELECT isbn FROM catalogo WHERE autor LIKE '%bryson%'
 Tabla2. Ejemplo de consulta de todos los isbn del catálogo de libros cuyo autor sea bryson

Este ejemplo se puede traducir de la siguiente forma: Selecciona el campo isbn de todos los registros de la tabla catálogo que cumplan la condición de que dentro del campo autor se contenga el término bryson. Obsérvese que el término de consulta esta rodeado de porcentajes. Esos caracteres también denominados truncamientos actúan sobre la consulta para indicar que la cadena bryson puede tener cadenas de texto que le precedan y que le sigan, como por ejemplo bill bryson natural de.

Crear una base de datos
Para crear una base de datos solo es necesario recordar la fórmula (CREATE DATABASE + nombre de la base de datos), véase tabla3. El nombre de la base de datos es recomendable que se escriba siempre en minúsculas, sin caracteres extraños, símbolos o acentos. Tampoco debería preceder al nombre ningún número. Por otro lado los espacios en el nombre deben ser sustituidos por guiones bajos (_) o guiones medios (-). Finalmente es recomendable el uso de nombres sencillos que puedan ser fácilmente recordados.

CREATE DATABASE biblioteca
 Tabla3. Crear una base de datos denominada "biblioteca"

Crear una tabla con campos
La creación de una tabla en mysql implica también el diseño de su estructura de campos y con ello definir sus características. Resulta vital la forma en que se diseñan las tablas para así poder efectuar una mejor recuperación y utilizar funciones específicamente diseñadas para tal propósito, es el caso de las consultas de tipo FULLTEXT. Cuando se diseña la tabla, se deben establecer el tipo de campos que la componen en función al tipo de información que albergarán y a su extensión, por otro lado su set de codificación o set de caracteres que se utilizará, véase tabla4.

CREATE TABLE users (
id          INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id),
name        VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
surname     VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
allvisits   LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
lastvisit   VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
lastsession VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
online      VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
level       VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
username    VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
password    VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
trash       VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
snumber     VARCHAR(2) CHARACTER SET utf8 COLLATE utf8_general_ci,
email       VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci
) CHARACTER SET utf8 COLLATE utf8_general_ci
 Tabla4. Crear una tabla denominada "users"

Insertar un nuevo registro en la tabla
Crear un nuevo registro en la tabla anterior se lleva a cabo con la sentencia de la tabla5. Obsérvese la sintaxis (INSERT INTO + nombre de tabla afectada + SET + nombre del campo = 'datos', nombre del campo = 'datos', nombre del campo = 'datos'...) Esta forma de insertar datos permite al operador de MySQL tener un mayor control sobre la información que inserta en el registro, pues no esta obligado a introducir todos los datos de todos los campos si no lo desea. Es posible introducir sólo la información de los campos que se reseñen.

INSERT INTO users SET name='nombre', surname='apellidos', allvisits='registro de todas las visitas', lastvisits='última visita', lastsession='última sesión', online='estado', level='nivel de acceso', username='nombre de usuario', password='contraseña', trash='código de encriptación', snumber='código de seguridad', email='correo electrónico'
 Tabla5. Ejemplo de inserción de un registro completo en la tabla

Modificar y actualizar un registro de la tabla
Se utiliza la sintaxis (UPDATE + nombre de tabla afectada + SET + nombre del campo = 'nuevo dato', nombre del campo = 'nuevo dato', nombre del campo = 'nuevo dato' + WHERE + condición) Al igual que en el caso anterior de la inserción, no se está obligado a repetir todos los campos de la estructura que conforma la tabla de MySQL. Es suficiente reseñando sólo aquellos campos del registro en el que se van a suceder los cambios con nuevos datos. Finalmente se requiere la condición de la consulta de actualización, es decir, qué registro es el que se desea actualizar. En el caso de la tabla6, es sobre un registro en concreto, por lo que es necesario expresar que el identificador del usuario sea igual al que establezcamos.

UPDATE users SET name = 'nuevo nombre', surname = 'nuevos apellidos' WHERE id = 'identificador del registro'
 Tabla6. Ejemplo de modificación y actualización de un registro de una tabla

Eliminar un registro de la tabla
Para eliminar un registro de una tabla se emplea la sintaxis (DELETE FROM + nombre de tabla afectada + WHERE + condición), véase tabla7. Al igual que en el caso de la modificación y actualización de una tabla es preciso determinar la condición bajo la que se eliminará los registros o registro concreto. Una vez más señalando el número de identificación es suficiente para indicar a MySQL cómo proceder.

DELETE FROM items WHERE id = 'identificador del registro'
 Tabla7. Borrar un registro de una tabla

1 comentario:

Nota: solo los miembros de este blog pueden publicar comentarios.