SQL server 文字查询 sql语句查询中文字段_聚合函数


以下图作为练习,在navicat创建数据库和表。


SQL server 文字查询 sql语句查询中文字段_字段_02


通过以上图片信息解读,我们需要建立三张表,分别是学生表student、课程表course和成绩表SC,在客户端navicat上进行操作。

1、student表的创建,包含字段:学号id、学生姓名name、班级class、性别gener


SQL server 文字查询 sql语句查询中文字段_asp sql查询字段 过滤空格_03


SQL server 文字查询 sql语句查询中文字段_SQL server 文字查询_04

选择主键约束此字段不能为空

2、course表的创建,包含字段:课程编号cid、课程名称cname、老师teacher


SQL server 文字查询 sql语句查询中文字段_asp sql查询字段 过滤空格_05


3、成绩表的创建,包含字段:学号sid、课程编号cid、成绩score


SQL server 文字查询 sql语句查询中文字段_asp sql查询字段 过滤空格_06


这时候三张表已经建立起来了,三张表通过外键联系起来,外键就是所谓相同的关键字。如下图红框与绿框分别为两表之间的外键,sc表为主表关联student和course表,student关联course表。


SQL server 文字查询 sql语句查询中文字段_SQL server 文字查询_07


在书写SQL语句时要正确写出语句的执行顺序,即SQL格式,涉及到数据表的增删改查,基本的包括判断符和逻辑连接符的正确使用。

A、查询姓‘王’的学生的个数

查询表用select * from 表名,select选择需要哪些字段,from表示来自于哪个表,查询个数需要用到聚合函数count;where是指根据什么条件。此题是在student表进行查询,那么就是:select count (*) from student where name like '王%';这个%表示任意字符,所有的符号需要在英文状态下执行。


SQL server 文字查询 sql语句查询中文字段_聚合函数_08


SQL server 文字查询 sql语句查询中文字段_asp sql查询字段 过滤空格_09

姓’王‘的学生个数为3

B、查询”数学“比”语文“成绩高的所有学生的学号

这里要用到的查询方式是多表联查,将有关系的多张表用join on 进行连接,select * from 表1 join 表2 on 表1.字段1 = 表二.字段2 where 表1.字段1 = 条件,当表名过于累赘导致SQL格式太长时可用as进行取别名,as也可直接用空格代替。


SQL server 文字查询 sql语句查询中文字段_SQL server 文字查询_10


这里用聚合函数的作用是为了不让以学生id分组后表显示不好看,除了count 不能用之外其它的几个聚合函数都可以用。

C、查询平均成绩大于90分的同学的学号和平均成绩

求平均分用到聚合函数avg,需要关联三张表,这里以student表中的id作为分组,查询得出平均分成绩在90分以上的有3位。


SQL server 文字查询 sql语句查询中文字段_SQL server 文字查询_11


最后拓展:聚合函数是在对数据进行统计时常常需要用到的,也就是sum、avg、max、min,count。


SQL server 文字查询 sql语句查询中文字段_聚合函数_12


对表的数据进行操作时,通常是增删改查四种操作,①当我们需要在表中新增内容时,sql命令是insert into 表名(字段1,字段2) values (值1,值2);

②删除sql命令:delate from 表名 where 字段 = 值;

③修改的sql语句:uplate 表名 set 字段1 = 值,字段2= 值 where 字段= 值;

④查询表的条件上面已经显示了,这些操作同样在CMD里适用。