Estructura y contenido inicial de la tabla
Contiene tres tablas de Estudiante, Curso y SC (tabla de información del estudiante, tabla de información del curso y tabla de resultados de selección de curso respectivamente)
1.1 Estructura de la tabla de estudiantes
1.2 Estructura de la mesa del curso
1.3 Estructura de la tabla SC
2.1 Contenido del estudiante
2.2 Contenido del curso
SELECT * FROM Course ORDER BY cast(Cno as int);
2.3 Contenido SC
Insertar datos
INSERT INTO Student VALUES('201212126','WANGHUA','MALE',18,'CS');
borrar datos
DELETE FROM Course WHERE Cno = '11';
actualizar datos
UPDATE Course SET Cno = '8' WHERE Cno = '11';
Encontrar datos
1. Consulta de tabla única
SELECT Sno, Sname FROM Student;
SELECT Sname, 2021-Sage FROM Student;
SELECT Sname NAME,
'Year of Birth:' BIRTH,
2021-Sage BIRTHDAY,
LOWER(Sdept) DEPARTMENT
FROM Student;
SELECT Sno FROM SC;
SELECT DISTINCT Sno FROM SC;
SELECT Sname FROM Student WHERE Sdept = 'CS';
SELECT Sname, Sage FROM Student WHERE Sage<20;
SELECCIONE Sname, Sdept, Sage DEL Estudiante DONDE Sage (NO) ENTRE 19 Y 20;
SELECT Sname, Sdept, Sage FROM Student WHERE Sage BETWEEN 19 AND 20;
(NO)
SELECT Sname, Ssex FROM Student WHERE Sdept IN('CS','IS');
Comodín de consulta
aproximada: _%
SELECT * FROM Student WHERE Sno LIKE '201212121';
SELECT * FROM Course WHERE Cno = '2';
SELECT * FROM Course WHERE Cno LIKE '2';
SELECT * FROM Course WHERE Cno LIKE '2%';
SELECT Sname FROM Student WHERE Sname LIKE 'LIU%';
SELECT Sname FROM Student WHERE Sname LIKE '___CHEN%';
INSERT INTO Course VALUES('9','DBADESIGN','',4);
SELECT * FROM Course WHERE Cname LIKE 'DB_DESIGN%';
SELECT * FROM Course WHERE Cname LIKE 'DB\_DESIGN%' ESCAPE'\';
Función agregada
Número total de estudiantes
SELECT COUNT(*) FROM Student;
Calificación promedio de la electiva 1
SELECT AVG(Grade) FROM SC WHERE Cno = '1';
Créditos totales del estudiante para cursos electivos 201212121
SELECT SUM(Ccredit) FROM SC,Course
WHERE Sno = '201212121' AND SC.Cno = Course.Cno;
AGRUPAR POR
Cada número de curso y el número correspondiente de cursos
SELECT Cno, COUNT(Sno) FROM SC GROUP BY Cno;
Consulta de enlace
La situación de cada alumno y sus asignaturas optativas
SELECT Student.*, SC.* FROM Student,SC WHERE Student.Sno = SC.Sno;
Conexión natural
SELECT Student.Sno, Sname, Ssex, Sage, Sdept, Cno, Grade
FROM Student, SC WHERE Student.Sno = SC.Sno;
Identificación de estudiante y nombre de los estudiantes que toman el curso No. 2 y tienen puntajes por debajo de 90 puntos
SELECT Student.Sno, Sname FROM Student, SC
WHERE Student.Sno = SC.Sno AND SC.Cno = '2' AND SC.Grade<=90;
Auto-conexión
Consulta los prerrequisitos de cada curso (comparación)
SELECT FIRST.Cno,SECOND.Cpno FROM Course FIRST, Course SECOND
WHERE FIRST.Cpno = SECOND.Cno;
SELECT Cno,Cpno FROM Course WHERE Cpno = Cno;
SELECT FIRST.Cno,FIRST.Cpno FROM Course FIRST,Course
WHERE FIRST.Cpno = FIRST.Cno;
Unión externa
SELECT Student.Sno, Sname, Sname, Ssex, Sage, Sdept,Cno,Grade
FROM Student LEFT OUTER JOIN SC ON (Student.Sno = SC.Sno);
Unión de varias mesas
Consultar la identificación, el nombre, los cursos electivos y las calificaciones de cada estudiante.
SELECT Student.Sno, Sname, Cname, Grade FROM Student,SC,Course
WHERE Student.Sno = SC.Sno AND SC.Cno = Course.Cno;
Consulta anidada
El nombre del estudiante que seleccionó el curso 2
SELECT Sname FROM Student WHERE Sno IN
(SELECT Sno FROM SC WHERE Cno = '2');
El número del curso de cada alumno que supera la nota media de su propio curso electivo.
SELECT Sno, Cno FROM SC x
WHERE Grade >=(SELECT AVG(Grade) FROM SC y WHERE y.Sno = x.Sno);
Consulta de colección
Estudiantes de informática y estudiantes menores de 19 años
SELECT * FROM Student WHERE Sdept = 'CS'
UNION SELECT * FROM Student WHERE Sage<=19;
La intersección de estudiantes de ciencias de la computación y 19 años o menos
SELECT * FROM Student WHERE Sdept = 'CS'
INTERSECT SELECT * FROM Student WHERE Sage<=19;
La diferencia entre un estudiante del Departamento de Informática y Tecnología y un estudiante menor de 19 años
SELECT * FROM Student WHERE Sdept = 'CS'
EXCEPT SELECT * FROM Student WHERE Sage<=19;
Consulta basada en tabla derivada
Averigüe el número de curso de cada estudiante que supera su propio promedio de cursos electivos.
SELECT Sno, Cno
FROM SC, (SELECT Sno, Avg(Grade) FROM SC GROUP BY Sno)
AS Avg_sc(avg_sno,avg_grade)
WHERE SC.Sno = Avg_sc.avg_sno AND SC.Grade >= Avg_sc.avg_grade;