A2 - Manual Sentencias en SQL
A2 - Manual Sentencias en SQL
A2 - Manual Sentencias en SQL
a2 Softway C.A.
a2 Softway C.A. Sentencias en SQL
INTRODUCCIÓN
En este Manual se introducirán conceptos básicos del lenguaje de consulta estructurado (SQL,
Structured Query Language), así como también los distintos usos y la manera de acceder a la Base de
Datos DBIsam (relacionado con el uso de sentencias en sql). Aquí se explica el lenguaje de definición
de datos (DDL, Data Definition Language); este se utiliza para definir y administrar objetos en bases
de datos tales como tablas y vistas; y el lenguaje de tratamiento de datos (DML, Data Manipulation
Language); el cual se utiliza para manipular los datos contenidos en los objetos de la base de datos.
Para ello se utilizan instrucciones tales como INSERT, SELECT, UPDATE y DELETE aquí se
incluyen ejemplos de cada uno. Además se aprenderá a utilizar las diferentes utilidades de SQL para
crear y administrar objetos en la base de datos así como también se aprenderá a crear sentencias de
comandos que contengan instrucciones en SQL.
SQL (Structured Query Language ó Lenguaje Estructurado de Consulta), es en si un lenguaje de
consulta y programación de bases de datos, utilizado para acceder a los datos y para consultar,
actualizar y gestionar sistemas de bases de datos relaciónales. Este es un lenguaje bastante sencillo y
de fácil manejo, es por que ello que la base de datos DBISAM incorpora esta extensión, obteniendo
potentes resultados.
Además SQL está compuesto por una serie de sentencias y de cláusulas muy reducidas en número,
pero muy potentes en efectividad.
El objetivo principal de SQL es la realización de consultas y cálculos con los datos de una o varias
tablas.
He aquí una serie de consejos (a veces normas), que hay que tener en cuenta a la hora de escribir
mandatos de SQL en DBIsam:
1.Un mandato en SQL se expresa en una cadena de caracteres o String.
Encerrado entre corchetes ([nombre]). Como norma general, se suelen escribir siempre entre
corchetes(aunque no es necesario; solo en caso cuyo nombre este separados por caracteres en
blanco[nombre tabla], esto permite diferenciar en la vista, las palabras clave de SQL con respecto a
los nombres de los campos o tablas de la base de datos).
2. Para especificar un determinado campo de una determinada tabla, se ha de escribir primero el
nombre de la tabla, un punto, y a continuación, el nombre del campo
(nombre_tabla.nombre_campo),esto solo hace cuando hay varias tablas implicadas en la sentencia.
3. Especificar una expresión de búsqueda, si ésta se refiere a una expresión de caracteres, éstos han
de encerrarse entre comillas simples ('valor_a_buscar') o dobles (“valor_a_buscar”), para campos
numéricos o booleanos esto no aplica.
El manual de sentencias en Sql se desarrollo con la finalidad de proporcionar todas los métodos y
normas necesarias para la correcta utilización de las herramientas que posee la base de Datos
DBISAM. Este manual proveerá de muchas facilidades al momento de desarrollar sentencias en esta
base de datos, ampliando y mejorando la utilidad del mismo, de una manera sencilla y rápida
Pág. 2
a2 Softway C.A. Sentencias en SQL
A continuación se dará una explicación detallada de cada uno de los pasos a seguir para la
elaboración de un Query en la base de datos.
Se debe abrir la base de datos (DBISAM), en la pestaña que dice “File” seleccionar de la lista el
renglón que dice “Options..” el cual abrirá una ventana que nos permitirá direccionar la aplicación
hacia la data sobre la cual se trabajara.
Este botón le
Aquí aparecerá
permitirá abrir el
reflejada la
directorio donde
dirección de la
podrá seleccionar la
data.
data a verificar.
Al presionar
este botón, se
cancelara el
cambio de
Al presionar el botón “OK”
directorio.
sé tomara en cuenta la
dirección especificada en el
directorio. Pág. 3
a2 Softway C.A. Sentencias en SQL
Una vez seleccionado el directorio de la base de datos se procede a trabajar con las tablas de la
misma
Se selecciona la opción "FILE" como se muestra en la siguiente pantalla:
Seleccionar la opción,
para mostrar la
ventana desplegable.
Pág. 4
a2 Softway C.A. Sentencias en SQL
Luego se desplegará una lista donde sé escogerá la opción que dice “Open Table Shared”:
Luego se desplegará una lista donde sé escogerá la opción que dice “Open Table Shared”:
Seleccionar la
opción para abrir la
ventana.
Seleccionar la tabla
sobre la cual se va a
trabajar.
Pág. 5
a2 Softway C.A. Sentencias en SQL
Si queremos ejecutar una sentencia en SQL solo basta seleccionar la opción que dice “New SQL
Query”, como se muestra a continuación:
Pág. 6
a2 Softway C.A. Sentencias en SQL
Una vez seleccionado la opción, se muestra la Vista de la pantalla donde se colocara la sentencia
Al presionar este
botón se ejecuta la
sentencia en SQL.
Al presionar este
botón se prepara la
sentencia para ser
ejecutada.
Aquí se escribe la
sentencia en SQL.
Una vez ejecutada la sentencia se muestra la información requerida en la misma, como se muestra a
continuación:
Pág. 7
a2 Softway C.A. Sentencias en SQL
Operadores
matemáticos:
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
<> Distinto
= Igual
SENTENCIAS EN SQL
Lista de operadores y ejemplos prácticos para realizar selecciones.
Hemos querido compilar a modo de tabla ciertos operadores que pueden resultar útiles en
determinados casos. Estos operadores serán utilizados después de la cláusula Where y pueden ser
combinados hábilmente mediante paréntesis para optimizar nuestra selección a muy altos niveles.
Comodines Operadores
* Sustituye a todos los campos lógicos
Sustituye a cualquier cosa o nada And
%
dentro de una cadena Or
Sustituye un solo carácter dentro Not
INSERT INTO _
de una cadena
Para añadir un nuevo registro se debe tomar en cuenta
la sintaxis y los datos a introducir en una tabla; los registros pueden ser introducidos a partir de
sentencias que emplean la instrucción Insert.
Pág. 8
a2 Softway C.A. Sentencias en SQL
Un ejemplo sencillo a partir de nuestra tabla modelo, es la introducción de una nueva línea en la tabla
Sconceptos donde se almacenaran los datos que se traen de otra tabla denominada Sconceptos1:
Otra forma es trasladar todos los valores de una tabla a otra por ejemplo:
Nota: los campos a introducir (de la tabla origen a la tabla destino)deben tener el mismo tipo de
datos, así como también el o los campos principales no deben repetirse; es decir no debe haber
duplicidad de datos, de lo contrario generara errores que imposibilitara la inclusión de los mismos.
UPDATE
Update es la instrucción que nos sirve para modificar nuestros registros, necesitamos especificar por
medio de Where cuáles son los registros en los que queremos hacer efectivas nuestras
modificaciones. Además, obviamente, tendremos que especificar cuáles son los nuevos valores de los
campos que deseamos actualizar. La sintaxis es de este tipo:
Un ejemplo aplicado:
Mediante esta sentencia se le va a cambiar la opción al departamento sobre el manejo de dólares en
sus productos, ahora en vez de bolívares manejaran dólares :
Aquí también hay que ser cuidadoso de no olvidarse de usar Where, de lo contrario, modificaríamos
todos los registros de nuestra tabla.
DELETE
Para borrar un registro nos servimos de la instrucción Delete. En este caso debemos especificar cual
o cuales son los registros que queremos borrar. Es por ello necesario establecer una selección, que se
llevara a cabo mediante la cláusula Where. La sintaxis es de este tipo:
Un ejemplo aplicado:
Mediante esta sentencia se va a borrar un cliente de la base de datos
Pág. 9
a2 Softway C.A. Sentencias en SQL
Como puede verse, los campos no numéricos o booleanos van a estar delimitados por
apostrofes(“dato” o ’dato’).
Hay que tener cuidado con esta instrucción ya que si no especificamos una condición con Where, lo
que estamos haciendo es borrar toda la tabla:
SELECT(Consultas de selección)
Consultas Básicas
La selección total o parcial de una tabla se lleva a cabo mediante la instrucción Select. En dicha
selección hay que especificar:
-Los campos que queremos seleccionar.
-La tabla en la que hacemos la selección.
La sintaxis es de este tipo:
Select campo1, campo2... From nombre_tabla
En un ejemplo aplicado podríamos hacer una selección del nombre y dirección de los clientes con
una instrucción de este tipo, utilizando la tabla Sclientes:
Si quisiese seleccionar todos los campos, es decir, toda la tabla, podríamos utilizar el comodín * del
siguiente modo:
LIKE
Resulta también muy útil el filtrar los registros mediante condiciones que vienen expresadas después
Pág. 10
a2 Softway C.A. Sentencias en SQL
de la cláusula Where. Si quisiese mostrar los clientes de una determinada Zona usaríamos una
expresión como esta:
Esto facilita la búsqueda en el caso de que solo recordemos las iniciales del nombre del cliente y el
comodín % permitirá encontrar las distintas combinaciones a partir de las iniciales de dicho nombre.
ORDER BY
Adicionalmente se puede especificar el orden en que se desean recuperar los registros de las tablas
mediante la cláusula ORDER BY Lista de Campos. En donde Lista de Campos representa los
campos a ordenar. Además, podríamos ordenar los resultados en función de uno o varios de sus
campos. Para este ultimo ejemplo los podríamos ordenar por nombre así:
DISTINCT
Omite los registros que contienen datos duplicados en los campos seleccionados. Para que los
valores de cada campo listado en la instrucción SELECT se incluyan en la consulta deben ser únicos.
Por ejemplo, varios clientes listados en la tabla Sclientes pueden tener el mismo nombre para un
contacto. Si dos registros contienen José López en el campo FC_CONTACTO, la siguiente
instrucción SQL devuelve un único registro:
Una opción interesante es la de efectuar selecciones sin coincidencia. Si por ejemplo queremos saber
en que Zona se encuentran nuestros clientes sin necesidad de que para ello aparezca varias veces la
misma Zona usaríamos una sentencia de esta clase:
Así evitaríamos ver repetido la Zona 0001 tantas veces como clientes(con nombre igual) se tengan en
esa Zona.
DESC
El operador clasifica los registros por orden inverso. Si por ejemplo quisiésemos ver nuestros
clientes ordenados por zonas, pero teniendo a las Zonas con mayor numeración en primer lugar, es
decir en orden descendente, escribiríamos algo así:
BETWEEN….AND
Este operador limita la búsqueda entre un rango establecido, por ejemplo si quisiéramos recoger en
una selección a los clientes de la tabla Sclientes cuyo nombre comienza por A y cuyo número de
Zona esta comprendido entre 00001 y 00008:
Pág. 11
a2 Softway C.A. Sentencias en SQL
Select * From Sclientes where Fc_descripcion like 'A%' And FC_Zona Between "00001"
And "00008"
IN
El operador In, permite hacer una búsqueda más extensa. Podemos utilizar el operador IN para
recuperar aquellos registros donde el valor del campo se corresponda con un valor de los incluidos
en una lista de valores. Si la expresión coincide con un valor de la lista, el operador IN devolverá
Verdadero; en cualquier otro caso, retornará Falso. La sintaxis del operador IN es la siguiente:
Un ejemplo practico:
De esta forma seleccionamos aquellos clientes que pertenezcan a esas tres Zonas.
NOT IN
Si anteponemos el operador lógico opcional NOT, lo que haremos será verificar lo contrario del
operador IN. Si deseamos seleccionar los Clientes que no pertenecen a las Zonas anteriormente
mencionadas, escribiremos:
IS NULL
Un valor NULL (nulo) es aquel que indica que campos faltan o que son desconocidos. Los valores
NULL se pueden especificar en campos cuya información se desconoce, así como en expresiones y
consultas. Puede utilizar el operador IS NULL para determinar si el valor de una expresión es igual a
un valor nulo. Dicho operador utiliza la siguiente sintaxis:
Por ejemplo, deseamos conocer aquellos registros de clientes donde no figura su numero de Zona,
escribiríamos la siguiente consulta SQL:
Select * From SClientes Where FC_Zona IS NULL
IS NOT NULL
Añadiendo el operador lógico opcional NOT, podemos comprobar lo contrario del operador IS
NULL. En este caso, la consulta devolverá los registros de clientes que sí tienen especificado su
Zona:
Al colocar el operador = tomara en cuenta el valor del campo al cual sé esta comparando, aun
cuando este acompañado del operador < o el operador >
Función Descripción
Sum(campo) Calcula la suma de los registros del campo especificado.
Avg(Campo) Calcula la media de los registros del campo especificado.
Nos proporciona el valor del numero de registros que han sido
Count(*)
seleccionados.
Max(Campo) Nos indica cual es el valor máximo del campo.
Min(Campo) Nos indica cual es el valor mínimo del campo.
SUM
Dado que el campo de la función no existe en la base de datos, sino que lo estamos generando
virtualmente, esto puede crear inconvenientes cuando estamos trabajando con nuestros scripts a la
hora de tratar su valor y su nombre de campo. Es por ello que el valor de la función ha de ser
recuperada a partir de un alias que nosotros especificaremos en la sentencia SQL a partir de la
instrucción AS. La Sentencia podría quedar así:
A partir de esta sentencia calculamos la suma de los valores de todas las operaciones realizadas y
almacenamos ese valor en un campo virtual llamado suma_total que podrá ser utilizado como
cualquier otro campo por nuestras paginas dinámicas.
Por supuesto, todo lo visto hasta ahora, puede ser aplicado en este tipo de funciones de modo que,
por ejemplo, podemos establecer condiciones con la cláusula Where construyendo sentencias como
esta:
Esto nos proporcionaría la suma de las operaciones cuyo tipo sea igual a “9” (Presupuestos).
AVG
La función Avg no permite establecer la media de los registros de un campo determinado
Por ejemplo:
Esta sentencia nos muestra la media del costo de los productos referenciados en una determinada
operación.
Otra propiedad interesante de estas funciones, es que permiten realizar operaciones con varios
campos dentro de un mismo paréntesis:
Esta sentencia da como resultado el precio medio al que se están vendiendo los productos, en una
determinada operación. Este resultado no tiene por qué coincidir con el del precio medio de los
productos presentes en el inventario, ya que, puede ser que la gente tenga tendencia a comprar los
productos caros o los baratos.
COUNT
La función count permite contar la cantidad de Items que hayan en un determinado campo y la
sintaxis a seguir es la siguiente:
En un ejemplo aplicado podemos observar la siguiente sentencia que nos permitirá contar la cantidad
de operaciones que se han realizado.
MAX
Para indicar el Valor máximo de un campo, utilizamos la función Max, la sintaxis es la siguiente:
MIN
Pág. 14
a2 Softway C.A. Sentencias en SQL
Para indicar el Valor mínimo de un campo, utilizamos la función Min, la sintaxis es la siguiente:
Un ejemplo aplicado se encuentra en la siguiente sentencia, la cual nos permite visualizar aquella
operación cuyo costo total es el menor.
La cláusula GROUP BY
La cláusula opcional GROUP BY generará un único registro mediante el agrupamiento de todos los
registros que tengan un valor idéntico en la lista de campos seleccionada. El registro creado contiene
un valor resumen como resultado de la función agregada que necesariamente tendrá que especificar
en la instrucción SELECT, tal como SUM o COUNT, ya que si no existe una función agregada, se
omitirán por completo los valores resumen. La sintaxis de la cláusula GROUP BY es la siguiente:
Deseamos conocer el número de facturas y su importe total agrupado por el tipo de documento, por
lo que este será el campo que deberemos de indicar en la cláusula GROUP BY, aunque no es
necesario que el campo se incluya en la instrucción SELECT:
La Cláusula HAVING
Esta cláusula se asemeja a la cláusula WHERE en el sentido de que determina los registros que se
seleccionarán, una vez que necesariamente hayan sido agrupados mediante la cláusula GROUP BY.
La cláusula HAVING es opcional y puede contener hasta 40 expresiones vinculadas por operadores
lógicos, como AND y OR. El siguiente ejemplo ampliarán el uso de las cláusulas GROUP BY y
HAVING.
Deseamos conocer la cantidad de operaciones que tenemos en cada tipo de documento, por lo que
este será el campo de agrupamiento pero cuyo monto total sean mayores a 100.000 Bs:
Un ejemplo aplicado:
La cláusula WHERE
La cláusula WHERE se utiliza para especificar qué registros de las tablas indicados en la cláusula
Pág. 15
a2 Softway C.A. Sentencias en SQL
FROM cumplen con las condiciones enumeradas, y por tanto, se deberán de incluir en el resultado
devuelto por la instrucción SELECT. Si no se especifica una cláusula WHERE, la consulta devolverá
todos los registros existentes en la tabla, por ejemplo:
Pero al utilizar la cláusula Where se puede obtener todos los registros cuyo tipo sea igual a ”13” ( que
corresponde a una Nota de entrega).
Por ejemplo:
Las posibilidades como vemos son numerosas y pueden resultar prácticas. Todo queda ahora a
disposición de nuestras ocurrencias e imaginación.
Pág. 16