![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP El lenguaje SQL y la sentencia SELECT
ABAP El lenguaje SQL y la sentencia SELECT
![ABAP El lenguaje SQL y la sentencia SELECT ABAP El lenguaje SQL y la sentencia SELECT](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/251.jpg)
- El lenguaje SQL y la sentencia SELECT
- Para acceder y manipular los datos que se encuentran almacenados en las tablas de la base de datos centralizada de SAP vamos a utilizar el lenguaje sql.
- Sql: sus siglas significan lenguaje de consulta estructurado. Es un lenguaje de consulta, usado como interfaz para comunicarse con bases de datos y realizar operaciones de acceso y manipulación de la información almacenada. Lenguaje sencillo de consulta, que permite realizar operaciones de selección, inserción, actualización y borrado de datos, así como operaciones administrativas sobre la base de datos
- Tiene la capacidad de hacer cálculos avanzados y álgebra. Utilizado en la mayoría de las empresas que almacenan datos en una base de datos.
- Algunos sistemas de gestión de base de datos comunes que utilizan sql son: Oracle SAP HANA, mysql, Microsoft sql server, Microsoft Access, ingres etcétera.
- Podemos decir que las sentencias de lenguaje sql pueden ser clasificadas en tres grupos que son los siguientes:
- Lenguaje de definición de datos:DDL. Gracias a Este lenguaje podemos definir los diferentes objetos que tenemos en nuestra base de datos. Se utiliza para definir estructuras como el esquema, la base de datos, las tablas de la base de datos las restricciones etcétera. Para definir las estructuras disponibles de tres sentencias: create (Se utiliza para crear una base de datos, tablas base de datos, vistas, etcétera.), alter (se utiliza para modificar la estructura de la base de datos, por ejemplo Añadir o borrar columnas de una tabla), DROP (con esta sentencia podemos eliminar los objetos de la estructura, por ejemplo un índice o una secuencia ).
- Lenguaje de manipulación de datos, dml: gracias a Este lenguaje podemos manipular los datos de los diferentes objetos que disponemos en nuestra base de datos, sobre todo, en las tablas, donde podemos realizar inserciones, actualizaciones y borrado de datos, además de poder también extraer estos datos. El dml permite a los usuarios introducir datos para posteriormente realizar tareas de consultas o modificación de los datos que contienen las bases de datos. Las sentencias que se utilizan para manipular los datos son las siguientes: Select (esta sentencia se utiliza para realizar consultas sobre los datos), INSERT( Insertar los valores en una tabla base de datos), UPDATE (se utiliza para modificar los valores de uno o varios registros), MODIFY (también se utiliza para modificar los valores de uno o varios registros), DELETE ( se utiliza para eliminar las filas de una tabla base de datos)
- Lenguaje de control de datos, dcl: gracias a Este lenguaje podemos dar de o quitar de permisos sobre los objetos a los usuarios que se conectan a la base de datos. Estos comandos permiten al administrador de sistema gestor de base de datos, controlar el acceso a los objetos, es decir, podemos otorgar o denegar permisos a uno más rodios para realizar determinadas tareas. Los comandos para controlar los permisos son los siguientes: GRANT (otorgar permisos), REVOKE (elimina los permisos que previamente se han concedido)
La Sentencia SELECT
- Se utiliza para recuperar información en sql, es decir, permite obtener registros de la base de datos, de una o varias tablas combinadas. Además permite hacer filtrados de la información, para obtener únicamente los registros que cumplen ciertas condiciones. Una sentencia Select recupera cero o más vidas de una o más tablas de base de datos o vistas de base de datos.
- La sentencia Select tiene la siguiente sintaxis en Abap:
SELECT <resultado> En resultado se colocan los campos que se desean recuperar
FROM <tabla> Es la tabla base de datos de donde se sacan los datos
INTO<target> Destino donde serán alojados los datos.
WHERE <condiciones> Condiciones de la búsqueda
- SELECT * INTO TABLE se obtiene todos los registros de la tabla
- Evitar el uso * cuando solo se requiera obtener algunos campos de la tabla Origen.
- si no se encuentran registros la variable del sistema SY-SUBRC será distinto de cero.
- SELECT* APPENDING TABLE (conservar el contenido de la tabla interna)
- Es recomendable hacer un refresh de la tabla interna en donde se almacenarán los datos antes de realizar la selección de los mismos. En caso de utilizar una variable una estructura entonces deberemos ejecutar un Clear.
- SELECT campo1 (consultar el campo DNI de todos los registros)
- Siempre después de un SELECT se debe preguntar por el SY_SOBRE para saber cómo proseguir.
- Si la variable, estructura o tabla interna de destino en donde se verán almacenados los datos que se recuperen de la ejecución de la sentencia Select no coinciden el formato con los datos recuperados Entonces se produce un error, que dependiendo del caso puede ser de sintaxis o en tiempo de ejecución es decir un dump.
- SELECT SINGLE * de un sólo campo almacenado en una variable
- SELECT INTO CORRESPONDING FIELDS OF TABLE: si quisiéramos obtener de una tabla a base de datos los registros que cumplen una condición pero decíamos guardarlos en una tabla interna que no tiene la misma estructura que la tabla base de datos Entonces tenemos que usar la cláusula into corresponding fields of table. Realiza la comparación de los campos teniendo en cuenta los tipos de los campos de cada tabla y la posición de cada uno de ellos es decir por ejemplo si en la posición 1 se encuentra un campo de tipo char de cuatro posiciones entonces en la misma posición de la otra tabla también debe existir un campo de tipo charge de cuatro posiciones para que la comparación sea correcta.
- SELECT ... WHERE IN (La cláusula IN se utiliza para los select-options en las condiciones de un select)
- SELECT MAX cuando se quiere hallar el registro con el campo especificado de mayor valor numérico.
- SELECT COUNT se utiliza junto con la sentencia SELECT cuando se quiere obtener la cantidad de registros de una tabla SAP.
- SELECT FOR ALL ENTRIES IN: si quisiéramos obtener de una tabla todos los registros que existen en una tabla interna cargada con datos, entonces debemos utilizar la cláusula FOR ALL ENTRIES IN que nos permite especificar condiciones de tiempo de ejecución.
- SELECT ... LIKE si quisiéramos obtener todos los registros que cumplan con un patrón de texto en algunos de sus campos, debemos utilizar la cláusula like
- SELECT... INNER JOIN Tenemos la posibilidad de realizar un SELECT a más de una tabla base de datos, lo que se conoce con el nombre JOIN.
- INNER JOIN entre dos tablas base de datos a y b entregará el resultado de la intersección de los conjuntos a y b punto en otras palabras la parte interna, Es decir de registros en común entre ambas tablas base de datos según la condición de conexión entre ambas punto También tenemos disponible en abap la cláusula LEFT OUTER JOIN entre dos tablas base de datos a y b en donde obtendremos como resultado de unión entre las tablas a y b más la parte de información exterior de la tabla base de datos a, es de la tabla base de datos que se encuentra a la izquierda en la unión.
 
 
 
Sobre el autor
Publicación académica de Alejandra Daniela Naranjo Belmonte, en su ámbito de estudios para la Carrera Consultor ABAP.
Alejandra Daniela Naranjo Belmonte
Profesión: Analista/desarrollador de Software - Mexico - Legajo: ON48V
✒️Autor de: 63 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Alejandra Naranjo