今天的几道高级sql查询真的挺难的,感觉好像视频里讲过,当时也没有练,已经淡化了很多,sql还是要多练习啊!确实逻辑性挺强的。
SELECT studentResult,studentNO FROM result WHERE result.`subjectNo`=(SELECT subjectNo FROM `subject`) SELECT studentResult FROM result WHERE result.subjectNo = (SELECT subjectNo FROM SUBJECT WHERE subjectName='java') WHERE NOT EXISTS(SELECT studentResult FROM result<60) AND (SELECT (AVG(studentResult)+5) FROM result) SELECT studentResult FROM result WHERE result.subjectNo = (SELECT subjectNo FROM SUBJECT WHERE subjectName='java')>=60 SELECT subjectNo FROM `subject` WHERE subjectName = 's1' SELECT subjectNo FROM `subject` WHERE subjectName = 's2' WHERE EXISTS(SELECT subjectNo FROM `subject` WHERE subjectName = 's1' ) AND SELECT studentNo 学号,subjectNo 科目编号,studentResult 学员成绩,examDate 考试时间 FROM result WHERE subjectNO =(SELECT subjectNo FROM `subject` WHERE subjectName = 's2' ) SELECT studentNo 学号, studentResult 分数 FROM result WHERE EXISTS () AND subjectNo= SELECT studentName 学生姓名, gradeId CREATE TABLE IF NOT EXISTS grade( GradeID INT(11) NOT NULL, GradeName VARCHAR(50) DEFAULT NULL, PRIMARY KEY ('GradeID') ) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='年级表' CREATE TABLE CREATE TABLE `grade` ( `GradeID` INT(11) NOT NULL, `GradeName` VARCHAR(50) DEFAULT NULL, PRIMARY KEY (`GradeID`) ) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='年级表' INSERT INTO grade VALUES ('1','一年级'),('2','二年级'),('3','三年级'),('4','四年级') SELECT studentName 学生姓名 FROM student SELECT GradeName 年级名称 FROM grade WHERE GradeId IN (SELECT gradeId FROM student) SELECT subjectName 课程名称 FROM `subject` WHERE gradeID IN (SELECT gradeId FROM student) SELECT examDate 考试日期 FROM result SELECT studentResult 考试成绩 FROM result WHERE examDate= (SELECT MAX(examDate) FROM result) SELECT gradeId 年级编号,sex 性别,COUNT(sex) 个数 FROM student GROUP BY 年级编号,sex CREATE DATABASE IF NOT EXISTS t11 USE t11 CREATE TABLE IF NOT EXISTS sys_user ( uid INT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '客户编号', uName VARCHAR(50) NOT NULL COMMENT '客户姓名', uPassWord VARCHAR(50) COMMENT '客户密码' )COMMENT='客户信息表' CREATE TABLE IF NOT EXISTS hos_district( did INT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '区县编号', dName VARCHAR(50) NOT NULL COMMENT '区县名称' )COMMENT='区县信息表' CREATE TABLE IF NOT EXISTS hos_street( sid INT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '街道编号', sName VARCHAR(50) NOT NULL COMMENT '街道名称', sDid INT(20) NOT NULL COMMENT '区县编号', FOREIGN KEY(sDid) REFERENCES hos_district(did) )COMMENT='街道信息表' CREATE TABLE IF NOT EXISTS hos_type( hTid INT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '房屋类型编号', htName VARCHAR(50) NOT NULL COMMENT '房屋类型名称' )COMMENT='房屋类型表' CREATE TABLE IF NOT EXISTS hos_house( hMid INT(20) PRIMARY KEY AUTO_INCREMENT COMMENT '出租房屋编号', uid INT(20) NOT NULL COMMENT '客户编号', sid INT(20) NOT NULL COMMENT '街道编号', hTid INT(20) NOT NULL COMMENT '房屋类型编号', price DECIMAL(5,2) DEFAULT 0 NOT NULL COMMENT '每月租金', topic VARCHAR(50) NOT NULL COMMENT '标题', contents VARCHAR(50) NOT NULL COMMENT '描述', FOREIGN KEY(uid) REFERENCES sys_user(uid), FOREIGN KEY(sid) REFERENCES hos_street(sid), FOREIGN KEY(hTid) REFERENCES hos_type(hTid) )COMMENT='出租房屋信息表' INSERT INTO hos_district VALUES ('2','万泉庄'),('3','中关村'),('4','东单'),('5','西单'),('6','苏州街'),('7','西四') UPDATE hos_district SET dName='东城区' WHERE did =1 UPDATE hos_district SET dName='海淀区' WHERE did =2 UPDATE hos_district SET dName='西城区' WHERE did=3 UPDATE hos_district SET dName='朝阳区' WHERE did=4 DELETE FROM hos_district WHERE did=5 DELETE FROM hos_district WHERE did=6 DELETE FROM hos_district WHERE did=7 INSERT INTO hos_street VALUES('1','东四','1'),('2','万泉庄','2'),('3','中关村','2'),('4','东单','1'),('5','西单','3'),('6','苏州街','2'),('7','西四','3') INSERT INTO hos_type VALUES('1','一室一厅'),('2','一室一卫'),('3','两室一厅'),('4','两室一卫') INSERT INTO sys_user VALUES('1','张建','1234'),('2','张冬雪','1234'),('3','张三','1234'),('4','王鑫','1234'),('5','李剑','1234'),('6','蒋以然','1234'),('7','李四','1234') INSERT INTO hos_house VALUES('1','1','3','2','2600.00','中关村','中关村一条街'),('2','2','2','2','1500.00','万泉庄附近','万泉庄附近一条街'),('3','2','2','2','2700.00','东单','东单很多美食') ALTER TABLE hos_house SET price -- 1 查询张三发布的所有出租房屋信息,并显示房屋分布的街道和区县 -- 提示:结果数据来源于出租房屋信息表、客户信息表、区县信息表、街道信息表 -- 提示:使用连接查询和子查询两种方式关联夺标数据实现 SELECT dName 区县, sName 街道, htName 户型, price 价格, topic 标题, contents 描述 -- 2 根据户型和房屋所在区县和街道,为至少有两个街道有出租房屋的区县 -- 制作出房屋清单 -- 提示:显示用Having子句筛选出街道数量大于1的区县 -- 3 按季度统计出本年各区县街道各种户型房屋出租数量 -- 输出2016年从1月1日起至今的全部出租房屋数量、 -- 各区县出租房屋数量及各街道、户型出租房屋数量 练习代码