Publicado el 1 comentario

SQL básico. El lenguaje SQL.

En el tema anterior vimos como se organiza una base de datos relacional, pero ¿cómo creamos las tablas o entidades? ¿Cómo mantenemos la información contenidas en las tablas? Es aquí donde entra el lenguaje SQL.

¿Que es el lenguaje SQL?

SQL son las siglas de Lenguaje Estructurado de Consultas en inglés (Structured Query Language). Es un lenguaje o conjunto de instrucciones y/o sentencias, que nos permiten tanto organizar nuestra base de datos relacional como dar mantenimiento a la información contenida en ella.

Toda base de datos relacional cuenta con el lenguaje SQL. Este lenguaje a su ves se divide en instrucciones para organizar la base de datos e instrucciones para manipular los datos.

El conjunto de instrucciones que sirven para organizar la base de datos reciben el nombre de “Lenguaje de Definición de Datos” (DDL por sus siglas en inglés) y son las encargadas principalmente de mantener la estructura de la Base de Datos, de los objetos contenidos en ella: tablas, vistas, restricciones, indices, etc..

Mientras que el conjunto de instrucciones SQL para manipular los datos, recibe el nombre de “Lenguaje de Manipulación de Datos” (DML por sus siglas en inglés), y sirve para mantener y extraer la información de la tablas o entidades: consultar, borrar, cambiar o agregar datos o registros.

Lenguaje de definición de datos (DDL).

Como vimos anteriormente, es la parte de SQL que se encarga de mantener u organizar los objetos de nuestra base de datos relacional. Los comandos o instrucciones más comunes son:

CREATE. Este comando sirve para crear los distintos objetos dentro de la base de datos ya sean tablas, vistas, procedimientos almacenados, etc.

ALTER. Este comando sirve para modificar los objetos que ya existen en la base de datos.

DROP. Esta instrucción es usada para borrar algún objeto existente en nuestra base de datos.

TRUNCATE. Este comando sólo aplica a los objetos tipo tabla y sirve para borrar sólo su contenido.

No todos los motores de base de datos relacionales implementan todos estos comandos SQL pero por lo general son comunes en el lenguaje SQL de todas las bases de datos. La forma de escribirlos, es decir, su sintaxis, varía de acuerdo al objeto de la base de datos a que haga referencia.

Lenguaje de manipulación de datos (DML).

Esta parte del lenguaje SQL se encarga de mantener la información en la tablas de la base de datos relacional, consultando, agregando, borrando y modificando datos. Los comandos más comunes son:

SELECT. Nos permite extraer o consultar los datos de las tablas.

INSERT. Añade nuevas filas o registros de datos a una tabla.

UPDATE. Modifica el valor de una o varias columnas o campos de uno o varios registros o filas.

DELETE. Borra una o varias filas o registros de una tabla.

Estos comandos por lo general se encuentran en todo lenguaje SQL de una base de datos relacional. Su sintaxis o forma de escribirlos puede varias de un motor de base de datos a otro.

En temas posteriores veremos con más detalle el uso de estos comandos, tanto de definición de datos como los de manipulación de datos. Para verlos en la práctica, vamos a usar un motor de base de datos liviano llamado SQLite. Una breve explicación de que es SQLite y la instalación del cliente gráfico “DB Browser for SQLite” lo veremos en la siguiente sección.

¡Saludos!

IR A LA PAGINA DEL CURSO.

Publicado el Dejar un comentario

SQL básico. Introducción a las bases de datos relacionales.

A partir de esta fecha, empezaré a publicar entradas en el blog dedicadas especialmente a enseñar el lenguaje SQL que utilizan los motores de bases de datos relacionales. El primer grupo de entradas tendrá como título “SQL básico” y la descripción del tema a tratar. En este primer grupo veremos lo básico del lenguaje SQL. Más adelante y si el tiempo y la vida lo permiten, iré incluyendo grupos de temas un poco más avanzados del mismo lenguaje.

Esto viene a petición de unos colegas interesados en aprender este lenguaje para organizar su información electrónica en sus respectivos trabajos. Espero les sea útil tanto a ellos como al resto del público. Comenzaremos con conceptos muy breves de la teoría de las bases de datos.

¿Qué es una base de datos?

Una base de datos, en su definición más simple, sería un lugar donde guardamos información de forma clasificada y ordenada para en determinado momento obtener o extraer información de ella en forma fácil y rápida. Un archivero o conjunto de archiveros donde guardamos en forma ordenada y clasificada nuestros oficios o facturas es un ejemplo de una base de datos.

Con la llegada de las computadoras esas bases de datos dejaron de ser sólo papales y la información se volvió digital o electrónica. Se crearon varias formas de almacenar la información en formato digital, y es ahí donde aparecieron las bases de datos relacionales.

¿Qué es una base de datos relacional?

Con el tiempo las computadoras permitieron almacenar un gran volumen de información en poco espacio y permitieron analizar la información de forma más rápida y eficiente. Al inicio la información se comenzó a almacenar en las computadoras en forma de documentos de texto u hojas de cálculo que se organizaban por nombre en carpetas y subcarpetas.

Posteriormente se crearon los sistemas de bases de datos llamadas relacionales. Estos sistemas organizan la información en tablas, algo similar a los sistemas de hojas de cálculo (por ejemplo las de Excel). Las tablas están compuestas por columnas, también llamados campos y filas, también llamados registros. Dichas tablas también reciben el nombre de entidades. A diferencia de los sistemas de hojas de cálculo, las tablas se pueden relacionar con otras y conviven en un solo espacio, es por eso que reciben el nombre de relacionales esta bases de datos.

Organizando la información en una base de datos relacional.

Imaginemos que necesitamos ingresar los datos generales de todos los empleados de nuestra empresa a un sistema de base de datos relacional:

Crearíamos una tabla o entidad llamada EMPLEADO. A ésta tabla le agregaríamos las columnas o campos que representarían los datos generales que queremos almacenar del empleado. A cada columna le asignaríamos un nombre de acuerdo al dato general del empleado que va a contener, por ejemplo: CURP, NOMBRE, APELLIDO_PATERNO, APELLIDO_MATERNO, FECHA_NACIMIENTO, RFC, etc.

Enseguida agregaríamos los datos de cada uno de los empleados. El conjunto de datos de un empleado en particular representaría una fila o registro en la tabla o entidad EMPLEADO. Es decir, la tabla EMPLEADO tendría tantas filas o registros como empleados tengamos en nuestra empresa.

Gráficamente la tabla o entidad EMPLEADOS se vería como algo así:

En la imagen anterior, nuestra tabla EMPLEADO estaría compuesta por seis columnas o campos y contendría 2 registros o filas.

¿Pero cómo se crean las tablas y como se agregan , borran y modifican los registros que contienen? Bueno, es ahí donde entra el lenguaje SQL que lo explicaré en la siguiente sección.

¡Hasta la próxima!

IR A LA PAGINA DEL CURSO.

Publicado el Dejar un comentario

Obtener sesiones bloqueantes a través de consulta SQL en Oracle

Para obtener o saber si hay sesiones que estén ocasionando algún bloqueo en una base de datos Oracle 10g ejecutamos la siguiente consulta con un usuario con privilegios de administrador. En mi caso la estoy haciendo con el usuario SYS de Oracle:

SELECT
   blocking_session as "Id de la sesión bloqueante", sid as "Identificador de la sesión", 
   serial# "Numero de serie de la sesión", seconds_in_wait as "Segundos en espera"
FROM
   v$session
WHERE
   blocking_session is not NULL
ORDER BY
   blocking_session;

La columna “Id de la sesión bloqueante” nos mostrará el identificador de la sesión bloqueante. Esta columna, junto con el valor del “Número de serie de la sesión”, nos servirán para “matar” dicha sesión con el comando sql ALTER SYSTEM KILL SESSION.

¡Hasta pronto!