作者:小5聊基础
简介:一只喜欢全栈方向的程序员,欢迎咨询,尽绵薄之力答疑解惑
编程原则:Write Less Do More
- 主要知识点列表
编号 | 语言或插件 | 知识点 | 说明 |
---|---|---|---|
1 | sql server | create table | 关键词,创建表 |
2 | sql server | indentity | 自增长函数 |
3 | sql server | primary key | 设置主键标识 |
4 | sql server | len() | 统计长度 |
5 | sql server | rand() | 随机函数,0~1之间的值 |
6 | sql server | substring() | 截取字符串,substring('',1,1) |
7 | sql server | convert() | 数据类型转换,convert(int,'') |
8 | sql server | left join | 做关联,以左边表为主,会出现3 * 5=15条记录的情况,需要合理使用好on条件 |
9 | sql server | avg() | 求平均值 |
【查询练习要求】
1)列出存在86分以上成绩的学生姓名以及课程编号
2)列出“C语言”成绩比平均成绩低的同学
【表设计和分析】
1)通过上面的要求,可以简单设计出如下5张表,暂时省略班级表
2)所属系表
系编号、系名称
- 创建表
create table system_table
(
system_id int identity(1,1) primary key,
system_name nvarchar(50)
)
- 模拟数据
--假设学校有如下系数据:商学系、管理系、计算机系、建筑系、艺术系,5个系记录
insert into system_table(system_name)
values('商学系'),('管理系'),('计算机系'),('建筑系'),('艺术系')
3)课程表
系编号、课程编号、课程名称
create table course_table
(
course_id int identity(1,1) primary key,
course_name nvarchar(50),
system_id int
)
- 模拟数据
--这个时候的数据就不一样了,会有关联表,不同得系会有不同得课程
--此处就只模拟计算机系下面的3课程,C语言、软件工程、数据库
insert into course_table(course_name,system_id)
values('C语言',3),('软件工程',3),('数据库',3)
3)教师表
系编号、课程编号、教师编号、教师名称
create table teacher_table
(
teacher_id int identity(1,1) primary key,
teacher_name nvarchar(50),
course_id int,
system_id int
)
- 模拟数据
--同样有关联关系,此处模拟3条记录,张三、李四、王五
insert into teacher_table(teacher_name,course_id,system_id)
values('张三',1,3),('李四',2,3),('王五',3,3)