作为程序员一定要保持良好的睡眠,才能好编程

sql面试题(学生表_课程表_成绩表_教师表)

发布时间:2018-03-18


看看MYsql试题:


 sql面试题(学生表_课程表_成绩表_教师表)


https://www.cnblogs.com/a-dou/articles/5489772.html
 
表架构

Student(S,Sname,Sage,Ssex) 学生表 
Course(C,Cname,T) 课程表 
SC(S,C,score) 成绩表 
Teacher(T,Tname) 教师表


drop table if exists course;
create table course(
	c int(4) default null primary key auto_increment,
	cname varchar(30) not null,
	t int(4) default null
)engine=innodb default charset=utf8;

INSERT INTO course(c,cname,t)VALUES ('1','语文','1');
INSERT INTO course(c,cname,t)VALUES ('2','数学','2');
INSERT INTO course(c,cname,t)VALUES ('3','英语','3');
INSERT INTO course(c,cname,t)VALUES ('4','物理','4');



drop table if exists sc;
create table sc(
	s int(4) ,
	c int(4) default null,
	score int(4) default null
)engine=innodb default charset=utf8;

insert into `sc` values ('1', '1', '56');
insert into `sc` values ('1', '2', '78');
insert into `sc` values ('1', '3', '67');
insert into `sc` values ('1', '4', '58');
insert into `sc` values ('2', '1', '79');
insert into `sc` values ('2', '2', '81');
insert into `sc` values ('2', '3', '92');
insert into `sc` values ('2', '4', '68');
insert into `sc` values ('3', '1', '91');
insert into `sc` values ('3', '2', '47');
insert into `sc` values ('3', '3', '88');
insert into `sc` values ('3', '4', '56');
insert into `sc` values ('4', '2', '88');
insert into `sc` values ('4', '3', '90');
insert into `sc` values ('4', '4', '93');
insert into `sc` values ('5', '1', '46');
insert into `sc` values ('5', '3', '78');
insert into `sc` values ('5', '4', '53');
insert into `sc` values ('6', '1', '35');
insert into `sc` values ('6', '2', '68');
insert into `sc` values ('6', '4', '71');


drop table if exists student;
create table student(
	s int(4),
	sname varchar(32) default null,
	sage int(4) default null,
	ssex varchar(8) default null
)engine=innodb default charset=utf8;
INSERT INTO `student` VALUES ('1', '刘一', '18', '男');
INSERT INTO `student` VALUES ('2', '钱二', '19', '女');
INSERT INTO `student` VALUES ('3', '张三', '17', '男');
INSERT INTO `student` VALUES ('4', '李四', '18', '女');
INSERT INTO `student` VALUES ('5', '王五', '17', '男');
INSERT INTO `student` VALUES ('6', '赵六', '19', '女');



   
drop table if exists `teacher`;
create table `teacher` (
  `t` int(11) default null,
  `tname` varchar(16) default null
) engine=myisam default charset=utf8;
 
-- ----------------------------
-- records of teacher
-- ----------------------------
insert into `teacher` values ('1', '叶平');
insert into `teacher` values ('2', '贺高');
insert into `teacher` values ('3', '杨艳');
insert into `teacher` values ('4', '周磊');



员工表:

+---------------+------------------+------+-----+---------+----------------+
| Field         | Type             | Null | Key | Default | Extra          |
+---------------+------------------+------+-----+---------+----------------+
| id            | int(11) unsigned | NO   | PRI | NULL    | auto_increment |
| name          | varchar(255)     | YES  |     | NULL    |                |
| salary        | int(10) unsigned | YES  |     | NULL    |                |
| department_id | int(11)          | YES  |     | NULL    |                |
+---------------+------------------+------+-----+---------+----------------+

+----+-------+--------+---------------+
| id | name  | salary | department_id |
+----+-------+--------+---------------+
|  1 | joe   |  70000 |             1 |
|  2 | henry |  80000 |             2 |
|  3 | sam   |  60000 |             2 |
|  4 | max   |  90000 |             1 |
+----+-------+--------+---------------+


部门表:

+-------+------------------+------+-----+---------+----------------+
| Field | Type             | Null | Key | Default | Extra          |
+-------+------------------+------+-----+---------+----------------+
| id    | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255)     | YES  |     | NULL    |                |
+-------+------------------+------+-----+---------+----------------+


+----+-------+
| id | name  |
+----+-------+
|  1 | It    |
|  2 | Sales |
+----+-------+



用sql查询语句找出每个部门工资最高的员工: 就是这个sql语句  使用了group by

select d.name,e.name,max(e.salary) from employee as e left join department as d on d.id=e.department_id  GROUP BY d.id;


+-------+-------+---------------+
| name  | name  | max(e.salary) |
+-------+-------+---------------+
| It    | joe   |         90000 |
| Sales | henry |         80000 |
+-------+-------+---------------+