Ajout, suppression, modification et requête SQL (par exemple, les étudiants, les cours et les tables de sélection de cours)

Structure et contenu de la table initiale

Contient trois tableaux d'étudiant, de cours et de SC (tableau d'informations sur l'étudiant, tableau d'informations sur le cours et tableau de résultats de sélection de cours respectivement)

1.1 Structure de la table des élèves

Insérez la description de l'image ici

1.2 Structure de la table des cours

Insérez la description de l'image ici

1.3 Structure de la table SC

Insérez la description de l'image ici

2.1 Contenu étudiant

Insérez la description de l'image ici

2.2 Contenu du cours

Insérez la description de l'image ici

SELECT * FROM Course ORDER BY cast(Cno as int);

2.3 Contenu SC

Insérez la description de l'image ici

Insérer des données

INSERT INTO Student VALUES('201212126','WANGHUA','MALE',18,'CS');

Suprimmer les données

DELETE FROM Course WHERE Cno = '11';

mettre à jour les données

UPDATE Course SET Cno = '8' WHERE Cno = '11';

Trouver des données

1. Requête de table unique

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;

CHOISISSEZ Sname, Sdept, Sage FROM Student WHERE Sage (NOT) ENTRE 19 ET 20;

SELECT Sname, Sdept, Sage FROM Student WHERE Sage BETWEEN 19 AND 20;

(NE PAS)

SELECT Sname, Ssex FROM Student WHERE Sdept IN('CS','IS');

Caractère
générique de requête floue : _%

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'\';

Fonction d'agrégation

Nombre total d'étudiants

SELECT COUNT(*) FROM Student;

Note moyenne pour le choix 1

SELECT AVG(Grade) FROM SC WHERE Cno = '1';

Crédits totaux de l'étudiant pour 201212121 cours au choix

SELECT SUM(Ccredit) FROM SC,Course 
WHERE Sno = '201212121' AND SC.Cno = Course.Cno;

PAR GROUPE

Chaque numéro de cours et le nombre de cours correspondant

SELECT Cno, COUNT(Sno) FROM SC GROUP BY Cno;

Requête de lien

La situation de chaque étudiant et ses cours au choix

SELECT Student.*, SC.* FROM Student,SC WHERE  Student.Sno = SC.Sno;

Connexion naturelle

SELECT Student.Sno, Sname, Ssex, Sage, Sdept, Cno, Grade
FROM Student, SC WHERE Student.Sno = SC.Sno;

Carte d'étudiant et nom des étudiants qui suivent le cours n ° 2 et qui ont des scores inférieurs à 90 points

SELECT Student.Sno, Sname FROM Student, SC 
WHERE Student.Sno = SC.Sno AND SC.Cno = '2' AND SC.Grade<=90;

Auto-connexion

Interroger les prérequis de chaque cours (comparaison)

 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;

Jointure externe

SELECT Student.Sno, Sname, Sname, Ssex, Sage, Sdept,Cno,Grade 
FROM Student LEFT OUTER JOIN SC ON (Student.Sno = SC.Sno); 

Jointure multi-table

Interrogez la carte d'étudiant, le nom, les cours optionnels et les notes de chaque élève

SELECT Student.Sno, Sname, Cname, Grade FROM Student,SC,Course
 WHERE Student.Sno = SC.Sno AND SC.Cno = Course.Cno;

Requête imbriquée

Le nom de l'étudiant qui a sélectionné le cours 2

SELECT Sname FROM Student WHERE Sno IN 
(SELECT Sno FROM SC WHERE Cno = '2');

Le numéro du cours pour chaque étudiant qui dépasse la note moyenne de son propre cours au choix

SELECT Sno, Cno FROM SC x 
WHERE Grade >=(SELECT AVG(Grade) FROM SC y WHERE y.Sno = x.Sno);

Requête de collection

Étudiants en informatique et étudiants de moins de 19 ans

SELECT * FROM Student WHERE Sdept = 'CS' 
UNION SELECT * FROM Student WHERE Sage<=19;

L'intersection des étudiants en informatique et de 19 ans ou moins

SELECT * FROM Student WHERE Sdept = 'CS' 
INTERSECT SELECT * FROM Student WHERE Sage<=19;

La différence entre un étudiant du département d'informatique et de technologie et un étudiant de moins de 19 ans

SELECT * FROM Student WHERE Sdept = 'CS' 
EXCEPT SELECT * FROM Student WHERE Sage<=19;

Requête basée sur une table dérivée

Découvrez le numéro de cours de chaque étudiant qui dépasse sa propre moyenne de cours au choix

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;

Je suppose que tu aimes

Origine blog.csdn.net/qq_42348424/article/details/115295385
conseillé
Classement