SQL – SELECCIONAR ÚLTIMO

SEQUEL , ampliamente conocido como SQL ( Structured Query Language ), es el lenguaje estándar más popular para trabajar en bases de datos. Es un lenguaje específico de dominio que se usa principalmente para realizar toneladas de operaciones que incluyen crear una base de datos, almacenar datos en forma de tablas, modificar, extraer y mucho más. Existen diferentes versiones de SQL como MYSQL, PostgreSQL, Oracle, SQL lite, etc.  

SQL se convirtió en la norma del American National Standards Institute (ANSI) en el año 1986 y al año siguiente, en 1987, se convirtió en la norma de la Organización Internacional de Normalización (ISO). Hoy es el mundo de Internet y la tecnología. Estamos rodeados de toneladas de datos. Entonces, para almacenar estos datos de forma segura y administrarlos, necesitamos una base de datos adecuada y, para administrar esta base de datos, necesitamos un lenguaje que es SQL. 

En este artículo, veremos cómo obtener la última entrada de cualquier registro en una tabla. Vamos a discutir cuatro formas diferentes de extraer la última entrada de cualquier tabla dada en una base de datos.

Entrada de muestra: Considere una tabla «Información del estudiante» que contiene los datos sobre los estudiantes inscritos en el » curso GeekforGeeks DSA «.

        Información del estudiante
IDENTIFICACIÓN Años Nombre del estudiante Sexo
1 22 Harry Masculino
2 23 Vishal Masculino
3 20 Snehal Femenino
4 25 RAM Masculino
5 24 hina Femenino

1. Crear una base de datos

CREATE DATABASE database_name;

2. Crear una tabla

CREATE TABLE Table_name(
col_1 TYPE col_1_constraint,
col_2 TYPE col_2 constraint
.....
);

col: Column name
TYPE: Data type whether an integer, variable character, etc.
col_constraint: Constraints in SQL like PRIMARY KEY, NOT NULL, UNIQUE, REFERENCES, etc.

3. Insertar en una tabla

INSERT INTO Table_name
VALUES(val_1, val_2, val_3, ..........);

val: Values in particular column.

4. Ver la tabla

SELECT * FROM Table_name

Método 1: Usar MS Access

Podemos usar el comando FIRST() para extraer la primera entrada de una columna en particular y LAST() para extraer la última entrada de una columna en particular en una tabla. Para obtener más información, visite First() y Last()Function en MS Access .

Sintaxis básica:

LAST(expression)

Por ejemplo, supongamos que queremos extraer el último nombre del estudiante de la tabla «Información del estudiante»

SELECT LAST(Student_name) AS Stud_Name 
FROM StudentInformation;

Producción:

Nombre del último estudiante

Como podemos ver, el nombre del último estudiante «Hina» se extrae usando la consulta anterior. Pero debe tenerse en cuenta que SELECT LAST o LAST (expresión) solo se admite en MS Access. Esta declaración no es compatible con MYSQL, Oracle, PostgreSQL, etc. Hay formas alternativas, como se explica a continuación, de realizar la operación anterior en otras versiones de SQL como MYSQL, Oracle, PostgreSQL, etc.

Método 2: Ordenando los datos

Podemos usar la instrucción ORDER BY y la cláusula LIMT para extraer los últimos datos. La idea básica es ordenar la tabla en orden descendente y luego limitaremos el número de filas a 1. De esta manera, obtendremos la salida como la última fila de la tabla. Y luego podemos seleccionar la entrada que queremos recuperar.

Sintaxis MYSQL:

SELECT col_name(s) FROM Table_Name
ORDER BY appr_col_name DESC
LIMIT 1;

col_name(s): The name of the column(s).
appr_col_name: Appropriate column name to perform ORDER BY.

Sintaxis de oráculo:

SELECT col_name(s) FROM Table_Name
ORDER BY appr_col_name DESC
WHERE ROWNUM <= 1;

col_name(s): The name of the column(s).
appr_col_name: Appropriate column name to perform ORDER BY.

Producción :

 Nombre del último estudiante

Es importante tener en cuenta que para realizar la clasificación, la columna debe elegirse correctamente . Por ejemplo, si elegimos » ORDER BY Student_name DESC «, ordenará alfabéticamente la tabla según los nombres. Entonces, la fila que contiene «Vishal» aparecerá en la parte superior, pero la fila que tiene «Vishal» como entrada no es la última fila de la tabla. Además, no podemos usar la columna «Edad» para realizar ORDEN POR como se muestra a continuación:

Ram no es el último nombre del estudiante

Vishal no es el nombre del último estudiante

Por lo tanto, es obligatorio utilizar el ID de columna o cualquier columna que sea única y que aumente secuencialmente con cada registro de la tabla.

Método 3: usando Subquery y AGGREGATE MAX()

 La subconsulta no es más que una consulta dentro de otra consulta que mantiene una relación padre-hijo. La consulta interna se ejecutará primero seguida de la consulta externa. Aquí, en este método, la idea básica es obtener la identificación máxima usando la función agregada MAX y luego seleccionar el nombre del estudiante asociado con esa identificación máxima. De esta forma, podemos extraer el nombre del último alumno de la tabla.

SELECT col_name(s) FROM Table_Name
WHERE appr_col_name = (
        SELECT MAX(appr_col_name)
        FROM Table_Name
);

col_name(s): The name of the column(s).
appr_col_name: Appropriate column name. For example ID.

Producción :

 Nombre del último estudiante

Método 4: Por enfoque comparativo o relativo

En este método también, vamos a utilizar una subconsulta. La idea básica es filtrar las filas y verificar que no exista ninguna fila que tenga valores de ID más altos que la fila que vamos a extraer. Esto ayudará a obtener la fila con la identificación máxima y, por lo tanto, podemos recuperar la última información. Es una consulta compleja y es un enfoque iterativo en el que vamos a utilizar la instrucción NOT EXISTS . Este método tardará más en ejecutarse si hay más registros en la tabla.

SELECT col_name(s) FROM Table_Name t1
WHERE NOT EXISTS(
    SELECT * FROM Table_Name t2
    WHERE t2.appr_col_name > t1.appr_col_name
);

col_name(s): The name of the column(s).
appr_col_name: Appropriate column name. For example ID.

Producción :

 Nombre del último estudiante

Publicación traducida automáticamente

Artículo escrito por rishabhchakrabortygfg y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *