在面试和实际操作中,sql的查询是最重要的。本文开始进行sql查询练习,首先需要数据准备,创建数据表并插入数据。
本文的数据表是根据B站视频课程得来,并且主要参考评论区香草味的橙子整理的mysql笔记,文末也会再次放出引用链接。数据表主要包括:
- 学生表 student
- 课程表 course
- 教师表 teacher
- 成绩表 score
下面进行创建和插入。
1.学生表
创建
create table student(
s_no varchar(20) primary key comment '学生学号',
s_name varchar(20) not null comment '学生姓名 不能为空',
s_sex varchar(10) not null comment '学生性别',
s_birthday datetime comment '学生生日',
s_class varchar(30) comment '学生所在班级'
);
插入数据
INSERT INTO student VALUES('101','曾华','男','1977-09-01','95033');
INSERT INTO student VALUES('102','匡明','男','1975-10-02','95031');
INSERT INTO student VALUES('103','王丽','女','1976-01-23','95033');
INSERT INTO student VALUES('104','李军','男','1976-02-20','95033');
INSERT INTO student VALUES('105','王芳','女','1975-02-10','95031');
INSERT INTO student VALUES('106','陆军','男','1974-06-03','95031');
INSERT INTO student VALUES('107','王尼玛','男','1976-02-20','95033');
INSERT INTO student VALUES('108','张全蛋','男','1975-02-10','95031');
INSERT INTO student VALUES('109','赵铁柱','男','1974-06-03','95031');
2.课程表
创建
create table course(
c_no varchar(20) primary key comment '课程号',
c_name varchar(30) not null comment '课程名称',
t_no varchar(20) not null comment '教师号 外键关联teacher',
foreign key(t_no) references teacher(t_no)
);
插入数据
INSERT INTO course VALUES('3-105','计算机导论','825');
INSERT INTO course VALUES('3-245','操作系统','804');
INSERT INTO course VALUES('6-166','数字电路','856');
INSERT INTO course VALUES('9-888','高等数学','831');
3.教师表
创建
CREATE TABLE teacher(
t_no VARCHAR(20) PRIMARY KEY COMMENT'教师编号',
t_name VARCHAR(20) NOT NULL COMMENT'教师姓名',
t_sex VARCHAR(20) NOT NULL COMMENT'教师性别',
t_birthday DATETIME COMMENT'教师生日',
t_rof VARCHAR(20) NOT NULL COMMENT'教师职称',
t_depart VARCHAR(20) NOT NULL COMMENT'教师所在的部门'
);
插入数据
INSERT INTO teacher VALUES('804','李诚','男','1958-12-02','副教授','计算机系');
INSERT INTO teacher VALUES('856','张旭','男','1969-03-12','讲师','电子工程系');
INSERT INTO teacher VALUES('825','王萍','女','1972-05-05','助教','计算机系');
INSERT INTO teacher VALUES('831','刘冰','女','1977-08-14','助教','电子工程系');
在这里有一个需要注意的点,要在course表之前建立teacher表,因为FOREIGN KEY(t_no) references teacher(t_no),根据teacher设置了外键。
4.成绩表
创建
CREATE TABLE score (
s_no VARCHAR(20) NOT NULL COMMENT'成绩表的编号 依赖学生学号',
c_no VARCHAR(20) NOT NULL COMMENT'课程号 依赖于课程表中的c_id',
sc_degree decimal,
foreign key(s_no) references student(s_no),
foreign key(c_no) references course(c_no),
PRIMARY KEY(s_no,c_no)
);
插入数据
INSERT INTO score VALUES('103','3-245','86');
INSERT INTO score VALUES('105','3-245','75');
INSERT INTO score VALUES('109','3-245','68');
INSERT INTO score VALUES('103','3-105','92');
INSERT INTO score VALUES('105','3-105','88');
INSERT INTO score VALUES('109','3-105','76');
INSERT INTO score VALUES('103','6-166','85');
INSERT INTO score VALUES('105','6-166','79');
INSERT INTO score VALUES('109','6-166','81');
INSERT INTO score VALUES('101','3-105','90');
INSERT INTO score VALUES('102','3-105','91');
INSERT INTO score VALUES('104','3-105','89');
INSERT INTO score VALUES('101','9-888','92');
可以看一下插入数据之后表的结构。
参考
https://www.bilibili.com/video/BV1Vt411z7wy?p=42
B站大佬 香草味橙子 整理的mysql笔记