SQL语句中 in和or的区别
SQL语句中 in和or的区别为:操作不同、适合不同、执行效率不同。
一、操作不同
1、in:in是把父查询表和子查询表作hash连接。
2、or:or是对父查询表作loop循环,每次loop循环再对子查询表进行查询。
二、适合不同
1、in:in适合用于子查询表数据比父查询表数据多的情况。
2、or:or适合用于子查询表数据比父查询表数据少的情况。
三、执行效率不同
1、in:在没有索引的情况下,随着in后面的数据量越多,in的执行效率不会有太大的下降。
2、or:在没有索引的情况下,随着or后面的数据量越多,or的执行效率会有明显的下降。
sql的where语句中,and 和 or能不能同时使用
是可以同时使用的。但要看业务要求
使用的场景举例:查询表中2000年和2002年出生的男同学select * from 学生表 where 性别='男' and (出生年份=2000 or 出生年份=2002)
其实or可以用SQL中的In来替代,这样书写会更方便例如上面的举例用In来写:select * from 学生表 where 性别='男' and 出生年份 In (2000,2002)
SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。