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