昨天朋友发来一个面试题,心血来潮自己写了下,废话不多说,直接上图和答案
这里是2张表,A表=studenta,学号=student,name=姓名,年龄=age
B表=scoreb 流水号=id ,课程=course,学号=student,分数=score
1.查询成绩大于80分,显示字段:学科,姓名,年龄,分数;
SELECT
a.NAME,
a.age,
b.course,
b.score
FROM
studenta a
INNER JOIN scoreb b ON a.student = b.student
WHERE
b.score > 80
2.查询至少2门以上成绩大于80分的学员,显示字段,学号,姓名;
SELECT
a.student,
a.`name`
FROM
studenta a
JOIN scoreb b ON a.student = b.student
WHERE
b.score > 80
GROUP BY
a.student,
a.NAME
HAVING
COUNT( DISTINCT b.course ) >= 2;
3.学员表增加一个字段性别,并初始化已有学员的性别;
-- 步骤1:修改表结构,向表a中添加性别字段
ALTER TABLE studenta
ADD COLUMN sex VARCHAR(10);
-- 步骤2:更新已有数据,初始化性别信息
-- 假设学号为1的同学性别为男性,学号为2的同学性别为女性
UPDATE studenta SET sex = '男' WHERE student = 1;
UPDATE studenta SET sex = '女' WHERE student = 2;
-- 根据实际情况依次类推
4.5.6比较简单我就不往下写了