Maison > Article > base de données > Compréhension avancée des requêtes MySQL et exemples d'utilisation
1. Partie Word
①contraintes de contrainte ②clé étrangère étrangère ③référence de référence
④sous-requête sous-requête ⑤interne interne ⑥connexion de connexion
2. Quels sont les mots-clés pour modifier les instructions SQL de table
RENAME Modifier le nom de la table CHANGE Modifier les champs
2. Quel mot-clé peut renvoyer l'ensemble de résultats de la requête en fonction du nombre de lignes spécifié
LIMITE
3. Les jointures de table peuvent-elles être remplacées par des sous-requêtes ?
Oui
3. Partie exercice
1. Opération de modification de la table de requête
# Ordinateur 1
USE test;CREATE TABLE personne(
numéro INT(4) AUTO_INCREMENT PRIMARY KEY,
`name` VARCHAR(50) NOT NULL ,
sex CHAR(2),
bornDate DATETIME
);
ALTER TABLE personne RENAME tb_person;
ALTER TABLE tb_person DROP `bornDate`;
ALTER TABLE tb_person ADD bornDate DATETIME ;
ALTER TABLE tb_person CHANGE number id BIGINT;
2. Utilisez des instructions SQL pour ajouter des contraintes à la table de résultats dans la base de données myschool
#Lab 2
USE myschool;ALTER TABLE result ADD CONSTRAINT re PRIMARY KEY result(`studentNo`,`subjectNo`,`exameDate`);
ALTER TABLE result ADD CONSTRAINT fk_result_student FOREIGN KEY (studentNo) REFERENCES student (studentNo);
3. Ajoutez des données au tableau des élèves, au tableau des matières et au tableau des notes
#Sur l'ordinateur 3
UTILISER monécole ;INSÉRER DANS `subject` (`subjectName`, `classHour`, ` gradeID`) VALUES
('HTML', '160', '1'),
('Java OOP', '230', '2');
4. table et table des sujets Données
#Sur l'ordinateur 4
USE myschool;INSERT INTO `myschool`.`result` (`studentNo`, `subjectNo`, `exameDate`, `studentResult` ) VALEURS ('1002', '1', '2014-8-8', '78'),
('1003', '2', '2017-7-7', '98'),
('1004', '1', '2015-8-8', '78'),
('1005', '2', '2013-8-8', '78'),
('1006', '1', '2017-8-8', '66'),
('1007', '1', '2014-8-8', '55'),
('1008', '1', '2014-8-8', '13'),
('1009', '1', '2014-8-8', '89'); 🎜>UPDATE student SET eamil='stu200000@163.com',loginPwd='000' WHERE studentNo='20000';
UPDATE `subject` SET `classHour`=`classHour`-10 WHERE `classHour`> 200 AND `subjectNo` =1;
DROP TABLE IF EXISTS student_grade1;
CREATE TABLE student_grade1(SELECT `studentName`,`sex`,`bornDate`,`phone` FROM student WHERE `gradeID`=1);
5. Interroger les informations sur les étudiants (interroger les identifiants et les scores des cinq meilleurs étudiants au 17 février 2016)
SELECT `studentNo`,` studentResult` FROM `result` WHERE `exameDate`<'2016-2-17' ORDER BY studentResult DESC LIMIT 5;
SELECT studentName,(YEAR(NOW())-YEAR(bornDate)) AS age ,bornDate,phone FROM student
WHERE sex='female'
LIMIT 1,6;
SELECT YEAR(bornDate) AS nian,COUNT(studentNo) AS num FROM student GROUP BY bornDate HAVING COUNT (studentNo)>=2;
SELECT MAX(`studentResult` ),MIN(`studentResult`) FROM résultat
WHERE `exameDate`=(SELECT `exameDate` FROM `result` ORDER BY exameDate DESC LIMIT 1) AND`subjectNo`=(SELECT `subjectNo` FROM `subject ` WHERE `subjectName`='Logic Java' ; sujet`
WHERE subjectNo IN(SELECT subjectNo FROM `subject`
WHERE gradeId=(SELECT gradeId FROM grade WHERE gradeName='S1'));
8. Interroger la dernière absence à l'examen pour un cours Liste des étudiants ayant passé l'examen
#Sur l'ordinateur 8
WHERE `subjectNo`=(SELECT `subjectNo` FROM `subject` WHERE `subjectName`='HTML') AND
`exameDate`=(SELECT `exameDate` FROM `result` WHERE subjectNo=(SELECT `subjectNo` FROM `subject` WHERE `subjectName`='HTML')ORDER BY exameDate DESC LIMIT 1)));
5. part
②Sous-requête
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!