Considere una tabla ESTUDIANTE que tiene el siguiente esquema:
STUDENT (Student_id, Student_Name, Address, Marks)
Student_id es la columna principal de la tabla STUDENT. Primero creemos la estructura de la tabla con el comando CREAR en SQL:
CREATE TABLE STUDENT (STUDENT_ID NUMBER (4), STUDENT_NAME VARCHAR2 (20), ADDRESS VARCHAR2 (20), MARKS NUMBER (3), PRIMARY KEY (STUDENT_ID));
Ahora, inserte valores en la tabla usando el comando INSERT INTO en SQL:
INSERT INTO STUDENT VALUES (100, ‘PUJA’, ’NOIDA’, 10); INSERT INTO STUDENT VALUES (101, ‘SUDO’, ’PUNE’, 30); INSERT INTO STUDENT VALUES (102, ‘BHALU’, ’NASHIK’, 40); INSERT INTO STUDENT VALUES (103, ‘CHETENA’, ’NOIDA’, 20); INSERT INTO STUDENT VALUES (104, ‘MOMO’, ’NOIDA’, 40);
Ahora muestre el contenido de la tabla ESTUDIANTE:
SELECT * FROM STUDENT;
Student_id Student_Name Address Marks ------------------------------------------------ 100 PUJA NOIDA 10 101 SUDO PUNE 30 102 BHALU NASHIK 40 103 CHETENA NOIDA 20 104 MOMO NOIDA 40
Consulta-1: Imprima las calificaciones y el número de estudiantes que tienen calificaciones superiores a las calificaciones promedio de los estudiantes de la ciudad de NOIDA. Explicación: para obtener las calificaciones promedio de los estudiantes de la ciudad de NOIDA, usamos esta consulta:
SELECT AVG(MARKS) FROM STUDENT WHERE ADDRESS =’NOIDA’
Usamos esta subconsulta anterior usando la cláusula GROUP BY y HAVING:
SELECT MARKS, COUNT (DISTINCT STUDENT_ID) FROM STUDENT GROUP BY MARKS HAVING MARKS > (SELECT AVG(MARKS) FROM STUDENT WHERE ADDRESS = ’NOIDA’ );
En la consulta anterior usamos GROUP BY MARKS significa que agrupa las filas con las mismas marcas y también usamos SELECT MARKS, COUNT(DISTINCT STUDENT_ID) que imprime las marcas de cada grupo y el recuento de filas de los grupos respectivos, es decir,
MARKS COUNT 10 1 20 1 30 1 40 2
Después de eso, usamos HAVING MARKS > (SELECT AVG(MARKS) FROM STUDENT WHERE ADDRESS =’NOIDA’), que se usa para filtrar el resultado con la condición de que las calificaciones deben ser mayores que las calificaciones promedio del estudiante de la ciudad de Noida, es decir, más de
(10+20+40) / 3 = 23.3
Producción:
MARKS COUNT (DISTINCT STUDENT_ID) 30 1 40 2
Consulta-2: Muestre los nombres y direcciones de los estudiantes cuya segunda letra del nombre es U. Explicación: Para hacer coincidir el patrón del campo STUDENT_NAME, usamos el operador de comparación de strings LIKE con dos caracteres reservados % y _ . % reemplaza un número arbitrario de caracteres y ‘_’ reemplaza un único carácter arbitrario. Aquí, necesitamos comparar la segunda letra de STUDENT_NAME, por lo que usamos el patrón ‘_U%’.
SELECT Student_Name, Address FROM STUDENT WHERE STUDENT_NAME LIKE ‘_U%’
Producción:
STUDENT_NAME ADDRESS PUJA NOIDA SUDO PUNE
Consulta-3: Imprima los detalles del estudiante que obtiene las calificaciones más altas (si hay más de un estudiante que obtiene las calificaciones más altas, las más altas serán de acuerdo con el orden alfabético de sus nombres). Explicación: Para obtener las calificaciones más altas del campo MARCAS, usamos el comando MAX, es decir,
SELECT MAX(MARKS) FROM STUDENT;
Usamos la subconsulta anterior que devuelve ’40’ y se usará con el comando WHERE. Para organizar según el orden alfabético del campo STUDENT_NAME, usamos la cláusula ORDER BY y para obtener la fila superior, se usará LIMIT 1. Combinando todo esto:
SELECT * FROM STUDENT WHERE MARKS = (SELECT MAX (MARKS) FROM STUDENT) ORDER BY STUDENT_NAME LIMIT 1;
Producción:
Student_id Student_Name Address Marks 102 BHALU NASHIK 40
Consulta-4: Cambiar el nombre y la dirección del estudiante con ID 103 a RITA y DELHI respectivamente. Explicación: Para cambiar el valor de cualquier atributo, usaremos el comando ACTUALIZAR con la cláusula SET para especificar sus nuevos valores.
UPDATE STUDENT SET STUDENT_NAME = ’RITA’, ADDRESS=’DELHI’ WHERE STUDENT_ID=103 ;
Producción:
1 row updated
Para ver los cambios que usaremos,
SELECT * FROM STUDENT;
Producción:
Student_id Student_Name Address Marks 100 PUJA NOIDA 10 101 SUDO PUNE 30 102 BHALU NASHIK 40 103 RITA DELHI 20 104 MOMO NOIDA 40
Consulta-5: ELIMINAR los detalles de la tabla ESTUDIANTE que obtienen la calificación más baja. Explicación: Para encontrar la nota más baja que usaremos,
SELECT MIN(MARKS) FROM STUDENT;
Devolverá ’10’ como las marcas más bajas. Para eliminar filas, usaremos el comando DELETE con el comando WHERE para especificar la condición.
DELETE FROM STUDENT WHERE MARKS = (SELECT MIN(MARKS) FROM STUDENT);
Producción:
1 row affected
Para ver los cambios que usaremos,
SELECT * FROM STUDENT;
Producción:
Student_id Student_Name Address Marks 101 SUDO PUNE 30 102 BHALU NASHIK 40 103 RITA DELHI 20 104 MOMO NOIDA 40
Publicación traducida automáticamente
Artículo escrito por SUDIPTADANDAPAT y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA