En entradas anteriores se ha hablado del lenguaje estructurado de consultas ["Structured Query Language" ("SQL"), en inglés], el cual es un lenguaje específico del dominio utilizado en programación, diseñado para administrar, y recuperar información de sistemas de gestión de bases de datos relacionales.
El SQL consiste en un lenguaje de definición de datos, un lenguaje de manipulación de datos y un lenguaje de control de datos. Su alcance incluye la inserción de datos, consultas, actualizaciones y borrado, la creación y modificación de esquemas y el control de acceso a los datos. Por otra parte, el SQL también se describe como un lenguaje declarativo, puesto que incluye elementos procesales.
En la actualidad, este tipo de lenguaje es el lenguaje de base de datos más usado. De hecho, hace tiempo que pasó a ser el estándar del ANSI y de la ISO, siendo revisado para incluir más características desde entonces. No obstante, la mayoría de los códigos SQL no son completamente portables entre sistemas de bases de datos diferentes sin ajustes.
El SQL consiste en un lenguaje de definición de datos, un lenguaje de manipulación de datos y un lenguaje de control de datos. Su alcance incluye la inserción de datos, consultas, actualizaciones y borrado, la creación y modificación de esquemas y el control de acceso a los datos. Por otra parte, el SQL también se describe como un lenguaje declarativo, puesto que incluye elementos procesales.
En la actualidad, este tipo de lenguaje es el lenguaje de base de datos más usado. De hecho, hace tiempo que pasó a ser el estándar del ANSI y de la ISO, siendo revisado para incluir más características desde entonces. No obstante, la mayoría de los códigos SQL no son completamente portables entre sistemas de bases de datos diferentes sin ajustes.
La variable, en SQL, es el objeto que actúa como marcador de posición para una ubicación de memoria, y contiene un valor de datos único.
Generalmente, las variables permiten almacenar un valor y recuperarlo más adelante para emplearlo en otras sentencias.
La utilidad de las variables en la gestión de una base de datos, consiste en que almacenan valores para utilizarlos en otras consultas.
Generalmente, las variables permiten almacenar un valor y recuperarlo más adelante para emplearlo en otras sentencias.
La utilidad de las variables en la gestión de una base de datos, consiste en que almacenan valores para utilizarlos en otras consultas.
TIPOS DE VARIABLES
En los guiones del lenguaje estructurado de consultas se pueden emplear dos tipos de variables: locales y globales.
Variables locales
Las variables locales, o variables de usuario, son específicas de cada conexión y se liberan automáticamente al abandonar la misma. Dichas variables son creadas por el usuario y su sintaxis genérica suele ser @<nombre de la variable>; el nombre de la variable puede tener cualquier caracter.
Cada alcance de variable local tiene la restricción al lote o procedimiento actual dentro de cualquier sesión determinada.
Toda variable debe declararse para poder utilizarse. Aunque hay una sintaxis básica para ambas acciones en SQL, ésta puede variar según la base de datos relacional en la que se use (MySQL, SQL Server, Oracle, PostgreSQL...). La sintaxis básica es:
Cada alcance de variable local tiene la restricción al lote o procedimiento actual dentro de cualquier sesión determinada.
Toda variable debe declararse para poder utilizarse. Aunque hay una sintaxis básica para ambas acciones en SQL, ésta puede variar según la base de datos relacional en la que se use (MySQL, SQL Server, Oracle, PostgreSQL...). La sintaxis básica es:
DECLARE @<nombre de la variable1> <tipo de dato>, @<nombre de la variable2> <tipo de dato>, … ;
Una variable declarada existe dentro del entorno en que se declara; se debe declarar y emplear la variable en el mismo lote de sentencias, porque si se declara una variable y luego, en otro bloque de sentencias, se pretende usarla, dicha variable ya no existe. Por otra parte, a pesar de que una variable puede ser definida con cualquier tipo de dato, incluso de un tipo de dato definido por el usuario, no se podrá declarar con los tipos “text”, “ntext” e “image”.
Para almacenar un valor en una
variable se coloca el signo igual (=) entre la variable y el valor a
asignar (puede ser un comodín). En el caso de que se le asigne un
valor inicial, se puede utilizar SET (sintaxis: SET @<nombre de la
variable> =<valor>;), o BEGIN (sintaxis: BEGIN @<nombre
de la variable> := <valor>;); si, por el contrario, se le
asigna un valor resultado de una consulta, se suele emplear SELECT...
FROM...WHERE (sintaxis: SELECT @<nombre de la variable> =
<valor> FROM <nombre base de datos> WHERE <nombre de
columna>='<valor de celda>';). Cualquier variable a la que
no se le ha asignado un valor contiene "null".
Es posible ver el contenido de
una variable mediante el comando SELECT utilizándolo con la
siguiente sintaxis:
SELECT @<nombre de la
variable>
Variables globales
En términos informáticos generales, una variable global es una variable accesible en todos los ámbitos de un programa informático. No obstante, en el caso del lenguaje estructurado de consultas, la variable global es una variable del sistema que almacena información relacionada con la sesión en la base de datos.
Las variables globales tienen valores establecidos por el servidor de base de datos. El sistema mantiene la variable global, por lo que un usuario no puede declararla, ni modificar sus valores directamente.
La sintaxis de una variable global suele ser @@<NOMBRE DE VARIABLE>.
Al igual que sucedía con la variable local, se puede ver el valor de una variable global gracias al comando SELECT con la siguiente sintaxis:
Las variables globales tienen valores establecidos por el servidor de base de datos. El sistema mantiene la variable global, por lo que un usuario no puede declararla, ni modificar sus valores directamente.
La sintaxis de una variable global suele ser @@<NOMBRE DE VARIABLE>.
Al igual que sucedía con la variable local, se puede ver el valor de una variable global gracias al comando SELECT con la siguiente sintaxis:
SELECT @@<NOMBRE DE VARIABLE>
Además, en SQL integrado, se pueden seleccionar variables globales en una lista de variables del anfitrión.
Puede verse una lista de variables globales relevantes de SQL disponibles en la siguiente tabla:
Puede verse una lista de variables globales relevantes de SQL disponibles en la siguiente tabla:
Nombre | Significado |
@@dbts
|
Un valor de tipo TIMESTAMP que
representa el último valor generado utilizado para todas las
columnas definidas con DEFAULT TIMESTAMP.
|
@@error
|
Se utiliza comúnmente para
comprobar el estado de error (correcto o fallido) de la última
sentencia ejecutada. Contiene 0 si la transacción anterior tuvo
éxito; de lo contrario, contiene el último número de error
generado por el sistema. Una sentencia como IF @@error != 0 RETURN
provoca una salida si se produce un error. Cada sentencia SQL
restablece @@error, por lo que la comprobación de estado debe seguir
inmediatamente a la sentencia cuyo éxito está en duda.
|
@@fetch_status |
Contiene información de
estado resultante de la última declaración de búsqueda. Puede
contener los siguientes valores: "0" (la declaración de
búsqueda se completó exitosamente), "-1" (la declaración
de búsqueda generó un error), "-2" (no hay más datos en
el conjunto de resultados). Esta
función es la misma que @@sqlstatus, excepto que devuelve valores
diferentes. Es para compatibilidad con Microsoft SQL Server.
|
@@identity
|
Último valor insertado en
cualquier columna IDENTITY o DEFAULT AUTOINCREMENT mediante una
instrucción INSERT o SELECT... INTO.
|
@@isolation
|
Nivel de aislamiento actual.
Toma el valor del nivel activo.
|
@@procid
|
Identificador de procedimiento
almacenado del procedimiento que se está ejecutando actualmente.
|
@@rowcount |
Número de filas afectadas por
la última declaración. Su valor debe comprobarse inmediatamente
después de la declaración. Inserta,
actualiza y elimina el conjunto @@rowcount según el número de filas
afectadas. Con
cursores, @@rowcount representa el número acumulado de filas
devueltas desde el conjunto de resultados del cursor al cliente,
hasta la última solicitud de búsqueda. A
diferencia de Adaptive Server Enterprise (motor de bases de datos de
la compañía Sybase), @@rowcount no se restablece a cero mediante
ninguna declaración que no afecte a las filas, como una declaración
IF.
|
@@servername
|
Nombre del servidor de base de
datos actual.
|
@@sqlstatus
|
Contiene información de
estado resultante de la última declaración de búsqueda. Puede
contener los siguientes valores: "0" (la declaración de
búsqueda se completó exitosamente), "1" (la declaración
de búsqueda generó un error), "2" (no hay más datos en
el conjunto de resultados).
|
@@version
|
Número de versión de la
versión actual del servidor.
|
@@LANGUAGE | Devuelve el nombre del idioma en uso. |
@@SERVERNAME | Devuelve el nombre del servidor. |
@@SPID | Devuelve el identificador de proceso de servidor del proceso de usuario actual. |
@@TRANCOUNT | Número de transacciones activas, es decir, que han sido iniciadas con BEGIN... TRANSACTION. |
Aguardo que la presente entrada haya sido interesante para el lector. Si es así, espero que éste la comente y/o la comparta, por favor.
No hay comentarios:
Publicar un comentario
Deje aquí su comentario, si no puede comentar, pruebe a hacerlo desde otro navegador de red u otro equipo.