#查询平均成绩大于等于90的学号、课程成绩; SELECT 学号,课程成绩 FROM `学生` WHERE 课程成绩>='90'; #查询选修了课程名为“信息系统”的学生的学号姓名; SELECT 学号,姓名 FROM `学生`,`课程` WHERE `学生`.`课程号`=`课程`.`课程号` AND `课程`.`课程名`='信息系统'; #(2)嵌套: SELECT 学号,姓名 FROM `学生` WHERE `课程号` IN (SELECT `课程号` FROM `课程` WHERE 课程名='信息系统'); #创建视图 IG_view CREATE VIEW IG_view (学号,姓名,课程号,课程成绩) AS SELECT 学号,姓名,课程号,课程成绩 FROM 学生,学校 WHERE `学生`.`系编号`=`学校`.`系编号` AND `系名`='计算机系'; #统计每门课程选修人数,输出课程号和人数,结果按人数降序 SELECT 课程号,COUNT(学号) FROM `学生` GROUP BY 课程号 # HAVING COUNT(学号)>='3' ORDER BY COUNT(学号) DESC,`课程号` ; #授权用户u1对学生表(姓名)、课程表,有查询、修改权限,并给其他用户授权(密码:123) CREATE USER u1 @'host' IDENTIFIED BY '123'; # SHOW GRANTS FOR 'u1'@'HOST'; GRANT SELECT,UPDATE ON TABLE 课程 TO u1@'HOST'; GRANT SELECT(姓名),UPDATE(姓名) ON TABLE 学生 TO u1@'HOST'; /* Show triggers; #查看某个触发器的内容: SHOW CREATE TRIGGER update_cno; drop trigger update_cno; */ # 设置触发器 # 1.修改课程中课程号时,学生表中可以自动修改 CREATE TRIGGER update_cno after update on 课程 for each row begin UPDATE 学生 SET 课程号=new.`课程号` WHERE 课程号=old.课程号 ; end; #创建触发器,在插入或修改学生信息时,如果年龄低于18岁,自动修改为18岁 CREATE TRIGGER update_age BEFORE UPDATE on 学生 for each row begin IF(new.年龄<'18') THEN SET new.`年龄`='18'; END IF; end; CREATE TRIGGER insert_age BEFORE INSERT on 学生 for each row begin IF(new.年龄<'18') THEN SET new.`年龄`='18'; END IF; end;