1.单表查询
1.基础查询
1.查询所有列
SELECT * FROM stu;
2.查询指定列
SELECT sid, sname, age FROM stu;
3.条件查询
SELECT sid, sname, age FROM stu where sid = 3;
2.条件查询介绍
1.运算符及关键字
WHERE子句中可以使用如下运算符及关键字:
=、!=、<>、<、<=、>、>=;
BETWEEN…AND;
IN(set);
IS NULL;
AND;
OR;
NOT;
2. AND
查询性别为女,并且年龄小于50的记录
SELECT * FROM stu
WHERE gender='female' AND age<50;
3.OR
查询学号为S_1001,或者姓名为liSi的记录
SELECT * FROM stu
WHERE sid ='S_1001' OR sname='liSi';
4.IN和Exits
查询学号为S_1001,S_1002,S_1003的记录
SELECT * FROM stu
WHERE sid IN ('S_1001','S_1002','S_1003');
注意:sid可以是 sid,也可以是(sid,sname)多个
两者区别:
in 和 exists的区别: 如果子查询得出的结果集记录较少,主查询中的表较大且又有索引时应该用in, 反之如果外层的主查询记录较少,子查询中的表大,又有索引时使用exists
注意:所以无论那个表大,用not exists都比not in要快,因为not exists可以用到索引
5.between and
SELECT * FROM stu
WHERE sid between 1 and 2
操作符 BETWEEN … AND