1、创建一个数据库表tblEmployee,用于模拟and、or条件create table tblEmployee( Id VARCHAR2(50) not null, EmpCode VARCHAR2(50), EmpName VARCHAR2(100), Address varchar2(100), Salary NUMBER);
2、往测试表中插入测试记录,插入记录之后,记得点击Commit按钮,将数据写入数据库。如果不Commit,当前会话是可以查到数据的,但是,其他用户是查询不到这些数据的insert into tblEmployee(Id, Empcode, Empname, Address, Salary) values(sys_guid(), 'Emp001', '员工1', '广州', 10000);insert into tblEmployee(Id, Empcode, Empname, Address, Salary) values(sys_guid(), 'Emp002', '员工2', '上海', 20000);insert into tblEmployee(Id, Empcode, Empname, Address, Salary) values(sys_guid(), 'Emp003', '员工3', '深圳', 30000);insert into tblEmployee(Id, Empcode, Empname, Address, Salary) values(sys_guid(), 'Emp004', '员工4', '北京', 40000);insert into tblEmployee(Id, Empcode, Empname, Address, Salary) values(sys_guid(), 'Emp005', '员工5', '武汉', 5000);
3、查询当前测试表中的所有数据,这个时候是不需要使用select * from tblEmployee
4、and条件:查询地址在上海,名字=员工2的记录。从运行结果可以看出,and条件的意思是,同时满足,只有当and前后的条件都满足的记录才会查询出来select * from tblEmployee where address = '上海' and empname = '员工2';
5、or条件:查询地址在北京,或者名字=员工1的记录。从运行结果可以看出,or条件的意思是或者,只要满足or前后的任意一个就查询出来select * from tblEmployee where address = '北京' or empname = '员工1';
6、and、or同时使用,比如,查询地址在上海,名字=员工2的记录,或者名字=员工1的记录。从运行结果可以看出,当and、or条件一起使用的时候,默认会将相邻and条件合并成一个条件,最后再or条件select * from tblEmployee where address = '上海' and empname = '员工2' or empname = '员工1';也就是说,上面这个sql其实最终是按照下面这样执行的select * from tblEmployee where (address = '上海' and empname = '员工2') or empname = '员工1';
7、使用括号的条件,对于上一步的条件,如果想要查询地址在上海,名字是员工1或者员工2的结果,就需要使用到括号了。从运行效果可以看出,sql语句会将括号内的条件当做一个条件来处理select * from tblEmployee where address = '上海' and (empname = '员工2' or empname = '员工1');