sql语句万能写法
select 表名.字段1,字段2,…字段n from 表1,表2,表3
where 关联条件1 and/or 过滤条件1 and/or 过滤条件2
group by 字段1,字段2
having 分组后过滤条件1 and/or 过滤条件2
order by 字段名1 asc/desc ,字段名2 asc/desc
去重复:distinct
常见避坑点?
1、熟练并能够手写出关键字
2、熟练使用sql语句编写的基本思路及写法
dos窗口启动mysql命令:net start mysql
一线大厂常见sql面试考点
1、三表进行关联,需要几个关联条件(n个表有几个关联条件?)
三表进行关联,需要2个关联条件,n个表有(n-1)个关联条件
2、数据统计与分组
常见统计函数:
求最大值:max(字段名)
求最小值:min(字段名)
统计和:sum(字段名)
统计总数:count(字段名)
平局值:avg(字段名/表达式)
重点:
1、熟悉常见的统计函数
2、什么情况下遇到group by
3、在select后面,group by后面有的字段,select后面才可以有,除了统计函数
3、子查询
什么是子查询:通过一对()的sql,先执行子查询,再去执行主查询
子查询分为两种:单行子查询和多行子查询
子查询作为sql语句的条件的一部分或者作为表使用
考题:
1、统计每个学生的总成绩(由于学生可能有重复的名字),并且总成绩不小于270,显示字段:学生id,姓名,总成绩
select id,sname sum(score) from student,score
where student.id=score.sid
group by student.id ,sname
having sum(score)>270
统计函数不能写到where后面
在select后面,group by后面有的字段,select后面才可以有,除了统计函数
2、查询单科最好成绩的学员信息,显示:学生id,学生姓名,科目,成绩
select id,sname,coursename ,score from score,student,course,(select cid,max(score)gscore from score group by cid)t
where student.id=score.sid and course.courseid=