以下图作为练习,在navicat创建数据库和表。
通过以上图片信息解读,我们需要建立三张表,分别是学生表student、课程表course和成绩表SC,在客户端navicat上进行操作。
1、student表的创建,包含字段:学号id、学生姓名name、班级class、性别gener
选择主键约束此字段不能为空
2、course表的创建,包含字段:课程编号cid、课程名称cname、老师teacher
3、成绩表的创建,包含字段:学号sid、课程编号cid、成绩score
这时候三张表已经建立起来了,三张表通过外键联系起来,外键就是所谓相同的关键字。如下图红框与绿框分别为两表之间的外键,sc表为主表关联student和course表,student关联course表。
在书写SQL语句时要正确写出语句的执行顺序,即SQL格式,涉及到数据表的增删改查,基本的包括判断符和逻辑连接符的正确使用。
A、查询姓‘王’的学生的个数;
查询表用select * from 表名,select选择需要哪些字段,from表示来自于哪个表,查询个数需要用到聚合函数count;where是指根据什么条件。此题是在student表进行查询,那么就是:select count (*) from student where name like '王%';这个%表示任意字符,所有的符号需要在英文状态下执行。
姓’王‘的学生个数为3
B、查询”数学“比”语文“成绩高的所有学生的学号;
这里要用到的查询方式是多表联查,将有关系的多张表用join on 进行连接,select * from 表1 join 表2 on 表1.字段1 = 表二.字段2 where 表1.字段1 = 条件,当表名过于累赘导致SQL格式太长时可用as进行取别名,as也可直接用空格代替。
这里用聚合函数的作用是为了不让以学生id分组后表显示不好看,除了count 不能用之外其它的几个聚合函数都可以用。
C、查询平均成绩大于90分的同学的学号和平均成绩
求平均分用到聚合函数avg,需要关联三张表,这里以student表中的id作为分组,查询得出平均分成绩在90分以上的有3位。
最后拓展:聚合函数是在对数据进行统计时常常需要用到的,也就是sum、avg、max、min,count。
对表的数据进行操作时,通常是增删改查四种操作,①当我们需要在表中新增内容时,sql命令是insert into 表名(字段1,字段2) values (值1,值2);
②删除sql命令:delate from 表名 where 字段 = 值;
③修改的sql语句:uplate 表名 set 字段1 = 值,字段2= 值 where 字段= 值;
④查询表的条件上面已经显示了,这些操作同样在CMD里适用。