1、数据库的存储过程:
存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集,它存储在数据库中,一次编译后永久有效,通过用户指定存储过程的名字和参数来执行它。
存储过程和函数的区别:
- 一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强
- 对于存储过程来说可以返回参数,而函数只能返回值或者表对象
- 存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用
存储过程的优点:
- 执行速度更快-在数据库中保存的存储过程语句都是编译过的
- 允许模块化程序设计
- 提高系统安全性-防止SQL注入
2、not in 和not exists:
如果查询语句使用了not in 那么内外表都会进行全表扫描,没有用到索引
not exists的子查询依然能用到表上的索引。所以无论表大小,用not exists都比not in 要快。
3、编写SQL语句:
学生表:
课程表:
成绩表: