Maison  >  Article  >  base de données  >  Compréhension avancée des requêtes MySQL et exemples d'utilisation

Compréhension avancée des requêtes MySQL et exemples d'utilisation

零下一度
零下一度original
2017-06-30 15:23:242336parcourir

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)

#Aller à l'ordinateur 5

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'

ORDER BY bornDate ASC

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`),AVG(`studentResult`) FROM `result` WHERE `exameDate` ='2016-02-17 ' GROUP BY `studentNo`;

6. Interroger les résultats des tests des étudiants spécifiés

#Sur l'ordinateur 6

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

SELECT `studentName` FROM student WHERE `studentNo` IN(SELECT `studentNo` FROM student WHERE studentNo NOT IN(SELECT `studentNo` FROM `result`

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

Deux façons d'implémenter une requête conjointe multi-tables :

①Jointure de table


②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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn