1. ワード部分
①制約制約②外部キー③参照参照
④サブクエリサブクエリ⑤内部内部⑥結合接続
2. テーブルを変更するSQL文のキーワード
1. テーブル名を変更するRENAMEフィールドを変更します
2. 指定された行数でクエリ結果セットを返すことができるキーワードはどれですか
はい
3. 演習部分
1. table を作成し、テーブルに対する変更操作を実装します
#コンピューター上 1
USE test;CREATE TABLE person(
number INT(4) AUTO_INCREMENT PRIMARY KEY,`name` VARCHAR(50) NOT NULL,
sex CHAR( 2) ,BRONDATE DATETIME
);
alter table person rename tb_person;
alTer table tb_person drap `bordate`; SQL ステートメントを mySchool データベースとして使用します
で結果テーブルに制約を追加します。
#コンピューター上 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. コンピューター上の生徒テーブル、科目テーブル、成績テーブルにデータを追加します
USE myschool;
INSERT INTO `subject` (`subjectName`, `classHour`, `gradeID `) VALUES('HTML', '160', '1'),
('Java OOP', '230', '2');
4. 生徒表と科目表データを変更します
#コンピューター上 4.
myschool を使用;INSERT INTO `myschool`.`result` (`studentNo`, `subjectNo`, `exameDate`, `studentResult`) VALUES ('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'),
('1008', '1', '2014-8-8', '13'),
('1009', ' 1 ', '2014-8-8', '89');UPDATE 学生 SET eamil='stu200000@163.com',loginPwd='000' WHERE StudentNo='20000';
UPDATE `件名` 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. 学生情報のクエリ (2016 年 2 月 17 日の上位 5 人の学生の学生 ID とスコアをクエリ)
#コンピュータ上で 5
SELECT `studentNo`,`studentResult` FROM `結果` WHERE `exameDate`<'2016-2-17' ORDER BY StudentResult DESC LIMIT 5;
SELECT studentsName,(YEAR(NOW())-YEAR(bornDate)) AS age,bornDate,phone FROM Student
WHERE sex='女'
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
SELECT MAX(`studentResult`),MIN(`studentResult`) FROM result
WHERE `exameDate`=(SELECT `exameDate` FROM `result` ORDER BY ExameDate DESC LIMIT 1) AND
#select max(exameDate) from result
7. 特定の学期に提供されるコースをクエリします
#コンピューターにアクセスします 7
SELECT subjectName FROM `subject`
WHERE subjectNo IN(SELECT subjectNo FROM `subject`
WHERE GradeId=(SELECT GradeId FROM Grade WHERE GradeName='S1'));
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 BYexameDate DESC LIMIT 1)));
V. 概要部分
複数テーブル結合クエリを実装する 2 つの方法:
①テーブル接続
②サブクエリ
以上がMySQL の高度なクエリの理解と使用例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。