作业一
-- 创建 mytest 数据库
-- 显示当前所有数据库
-- 显示当前使用数据库
-- 使用 mytest
-- 展示该数据库所有表
-- 创建 Teacher 表 且拥有字段:教师编号tid(主键) 姓名name 年龄age(默认30) 性别gender(男,女)
-- 查看 Teacher 表结构
-- 创建 Course 表 且拥有字段:课程编号cid(主键) 课程名称cname 教师编号tid
-- 查看 course 表结构
-- 修改 teacher 表的 姓名字段 name 为 tname
-- 查看 teacher 表数据
-- 为 teacher 表插入数据
-- 为 course 表插入数据
-- 查看 course 表数据
-- 求 teacher 表的 女性总数
-- 查询 course 表中 tid 为 3 的个数
-- 查询 teacher 表中 tid 为 3 的老师姓名
-- 查询 老师年龄在 26-30 的 姓名
-- 查询 名字为 j 开头的 老师信息
可参考表结构:
teacher表
course表
可参考表数据:
teacher表
course表
作业二
-- 查询老师男女总数
-- 查询老师男女总数大于2的具体姓名,年龄
-- 查询老师的 年龄 在18-30岁的男性 年龄进行升序,当年龄相同时,按照id降序。
-- 取出2-3条数据
-- 查询 各老师 所带的课程
-- 查询最大年龄男老师 的 姓名
第一题答案
-- 创建 mytest 数据库
CREATE DATABASE mytest;
-- 显示当前所有数据库
SHOW DATABASES;
-- 显示当前使用数据库
SELECT DATABASE();
-- 使用 mytest
USE mytest;
-- 展示该数据库所有表
SHOW TABLES;
-- 创建 Teacher 表 且拥有字段:教师编号tid(主键) 姓名name 年龄age(默认30) 性别gender(男,女)
CREATE TABLE Teacher(
tid INT PRIMARY KEY,
NAME VARCHAR(20),
age INT DEFAULT 30,
gender ENUM('男','女')
);
-- 查看 Teacher 表结构
DESC teacher;
-- 创建 Course 表 且拥有字段:课程编号cid(主键) 课程名称cname 教师编号tid
CREATE TABLE Course(
cid INT PRIMARY KEY,
cname VARCHAR(20),
tid INT
);
-- 查看 course 表结构
DESC course;
-- 修改 teacher 表的 姓名字段 name 为 tname
ALTER TABLE teacher CHANGE NAME tname VARCHAR(20);
-- 查看 teacher 表数据
SELECT * FROM teacher;
-- 为 teacher 表插入数据
INSERT INTO teacher VALUE (101,'Jeff',21,'1'),(102,'Amy',18,'2'),(103,'mark',30,'1');
-- 为 course 表插入数据
INSERT INTO course VALUE (111,'数学',112),(211,'英语',212),(311,'语文',313);
-- 查看 course 表数据
SELECT * FROM course;
-- 求 teacher 表的 女性总数
SELECT COUNT(*) FROM teacher WHERE gender=2;
-- 查询 course 表中 tid 为 3 的个数
SELECT COUNT(*) FROM course WHERE tid=3;
-- 查询 teacher 表中 tid 为 3 的老师姓名
SELECT tname FROM teacher WHERE tid=3;
-- 查询 老师年龄在 26-30 的 姓名
SELECT tname FROM teacher WHERE age BETWEEN 23 AND 30;
-- 查询 名字为 j 开头的 老师信息
SELECT * FROM teacher WHERE tname LIKE 'j%';
第二题答案
-- 查询老师男女总数
SELECT COUNT(*) FROM teacher WHERE gender BETWEEN 1 AND 2;
-- 查询老师男女总数大于2的具体姓名,年龄
SELECT gender,GROUP_CONCAT(tNAME,':',age) FROM teacher GROUP BY gender HAVING COUNT(*)>2;
`mytest`-- 查询老师的 年龄 在18-30岁的男性 年龄进行升序,当年龄相同时,按照id降序。
-- 取出2-3条数据
SELECT * FROM teacher LIMIT 0,3;
-- 查询 各老师 所带的课程
SELECT t.tid,t.tname,c.cname FROM teacher t LEFT JOIN course c ON t.tid=c.tid;
-- 查询最大年龄男老师 的 姓名
SELECT tname FROM teacher WHERE age=(SELECT MAX(age) FROM teacher WHERE gender=1);