脚本宝典收集整理的这篇文章主要介绍了可视化软件navicat,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
多表查询的思路总共就两种:
白嫖两个表
获取jason所在的部门名称
相当于是我们日常生活中解决问题的方式(一步步解决)
将一条SQL语句的查询结果加括号当做另外一条SQL语句的查询条件
先获取jason的部门编号
将结果加括号作为查询条件
先将多张表拼接到一起,形成一张大表,然后基于单表查询获取数据
连表操作有四个关键字:
获取jason的部门编号
会将所有的数据全部对应一遍,效率低下
一条SQL语句的查询结果,我们也可以看成是一张虚拟表
如果一条SQL语句中涉及到多张表的字段名称编写,建议使用表名前缀做区分
学会了连表操作之后,可以将N多张表拼接到一起(将两张表拼接之后的结果起别名当做一张表使用,然后再去跟另外一张表拼接)
Navicat可以充当很多数据库软件的客户端,提供了图形化界面能够让我们更加快速的操作数据库
使用navicat编写SQL,如果自动补全语句,那么关键字都会变大写
SQL语句注释语法:快捷键与pycharm中的一致
-- SELECT
-- course.cname,
-- teacher.tname
-- FROM
-- course
-- INNER JOIN teacher ON course.teacher_id = teacher.tid;
-- SELECT
-- student.sname,
-- t1.avg_num
-- FROM
-- student
-- INNER JOIN ( SELECT student_id, avg( num ) AS avg_num FROM score GROUP BY score.student_id HAVING avg_num > 80 ) AS t1 ON student.sid = t1.student_id;
此题有两种思路:第一种是正向查询,第二种是反向查询(先查所有报了李平老师课程的学生id 之后取反即可)
-- SELECT
-- sname
-- FROM
-- student
-- WHERE
-- sid NOT IN ( SELECT DISTINCT student_id FROM score WHERE course_id IN ( SELECT cid FROM course WHERE teacher_id = ( SELECT tid FROM teacher WHERE tname = '李平老师' ) ) )
-- SELECT
-- sname
-- FROM
-- student
-- WHERE
-- sid IN (
-- SELECT -
- student_id
-- FROM
-- score
-- WHERE
-- course_id IN ( SELECT cid FROM course WHERE cname IN ( '物理', '体育' ) )
-- GROUP BY
-- student_id
-- HAVING
-- count( course_id ) = 1
-- )
SELECT student.sname, class.caption FROM class INNER JOIN student ON class.cid = student.class_id WHERE student.sid IN ( SELECT student_id FROM score WHERE num < 60 GROUP BY student_id HAVING count( course_id ) >= 2 );
以上是脚本宝典为你收集整理的可视化软件navicat全部内容,希望文章能够帮你解决可视化软件navicat所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。