✒️ABAP / El lenguaje SQL y la sentencia SELECT Por Luciano Martinez
ABAP El lenguaje SQL y la sentencia SELECT

SQL
Es un lenguaje de consulta para comunicarse con una base de datos y realizar operaciones, es muy usado en ABAP y por muchas bases de datos relacionales.
Se pueden realizar operaciones de seleccion, insersion, actualizacion, administracion y eliminado de datos, tambien sirve para hacer calculos avanzados
Aunque muchos sistemas usan SQL la mayoria tiene sus propias extensiones
Las sentencias SQL se pueden organizar en tres grupos:
- Lenguaje de definicion de datos o DDL: se pueden definir diferentes objetos en la base de datos, se utiliza para definir esquemas, una base de datos, las tablas, restricciones, etc. Para definir estructuras se usan: CREATE, ALTER y DROP.
- Lenguaje de manipulacion de datos o DML: se pueden manipular los datos de diferentes objetos, en las tablas se pueden realizar inserciones, actualizaciones y borrado de datos. Para manipular los datos se usan: SELECT, INSERT, UPDATE, MODIFY, DELETE
- Lenguaje de control de datos o DCL: se puede dar o quitar permisos sobre los objetos para realizar tareas determinadas. Para controlar los permisos se usa: GRANT, REVOKE
Sentencia SELECT
Se usa para traer informacion de una base de datos, de una o mas tablas combinadas, filtrando informacion que queramos con condiciones, se pueden recuperar cero o mas filas de una o mas tablas de base de datos o vistas. Su sintaxis en ABAP es: SELECT <resultado> FROM <tabla> INTO <target> WHERE <condiciones>
resultado: se ingresan los campos que se desean recuperar
tabla: la tabla donde estan los datos
target: destino donde sera alojado el o los datos
condiciones: condiciones para filtrar la busqueda
Variantes de SELECT
SELECT * FROM z_tabla INTO TABLE ti_tabla:
Donde ti_tabla es una tabla interna del mismo tipo que z_tabla, se obtienen todos los registros de z_tabla. Si se encuentran registros sy-subrc sera 0, sino sera distinto de 0.
SELECT * FROM z_tabla APPENDING TABLE ti_tabla:
Para traer los registros pero conservando los de ti_tabla sin pisarlos, osea agregandolos al final de los registros que ya tiene.
SELECT campo1 campo2 FROM z_tabla INTO TABLE ti_tabla_aux
Para obtener solo los campos 1 y 2 de z_tabla y que se alojen en la tabla aux que solo tenga esos dos campos del mismo tipo, tendran que escribirse en el mismo orden que en la tabla de base de datos
SELECT SINGLE * FROM ztabla INTO wa_tabla WHERE campo NE espacios.
Para obtener el primer registro que cumpla la condicion de no tener espacios.
SELECT SINGLE campo FROM ztabla INTO variable WHERE campo NE espacios.
Para obtener el primer dato del campo especificado que cumpla con la condicion y guardarlo en una variable
SELECT campo1 campo2 FROM ztabla INTO CORRESPONDING FIELDS OF TABLE ti_tabla WHERE campo1 NE espacio AND campo2 EQ 'A'
Para guardar registros de una tabla que cumplan con las dos condiciones en otra tabla que no tiene la misma estructura
SELECT * FROM ztabla INTO TABLE ti_tabla WHERE nombre_ape EQ p_nomape AND estado_usu IN s_estado.
p_nomape es parametro y s_estado es selec-options, para que se muestre un registros con datos ingresados por el usuario. La clausula IN se utiliza para los select-options en las condiciones de un select
SELECT SINGLE MAX (campo) INTO variable FROM ztabla WHERE campo EQ 'dato'.
Para obtener el dato mas alto del campo que cumpla con la condicion
SELECT COUNT (*) INTO variable FROM ztabla WHERE campo EQ 'dato'.
Para obtener la cantidad de registros con una condicion especifica
SELECT * INTO TABLE ti_tabla FROM ztabla FOR ALL ENTRIES IN ti_tabla2 WHERE campo EQ ti_tabla2-campo.
Obtenemos todos los registros que existan en una tabla interna con datos.
SELECT * INTO ti_tabla FROM ztabla WHERE campo LIKE 'dato'.
Obtenemos todos los registros que cumplan con un patron en sus campos
 
 
 
Sobre el autor
Publicación académica de Luciano Martinez, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Inicial.
Luciano Martinez
Profesión: Consultor Abap - Argentina - Legajo: LR86R
✒️Autor de: 66 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Me capacito para desempeñar el rol de un consultor abap, además soy sql developer jr, como ambos lenguajes (sql y abap) se relacionan, hace que mi perfil sea más completo y se complemente.
Certificación Académica de Luciano Martinez
























