使用where子句对表中的数据筛选,结果为true的行会出现在结果集中
语法如下:
select * from 表名 where 条件
例:
select * from students where id=1
1
2
3
where后面支持多种运算符,进行条件的处理
比较运算符
逻辑运算符
模糊查询
范围查询
空判断
比较运算符
等于: =
大于: >
大于等于: >=
小于: <
小于等于: <=
不等于: != 或 <>
例1:查询编号大于3的学生
select * from students where id >3
例:查询编号不大于4的学生
select * from students where id <= 4
1
2
3
4
5
6
逻辑运算符
and
or
not
例:查询编号大于3的女同学
select * from students where id >3 and gender=0
1
2
3
模糊查询
like
%表示任意多个任意字符
_表示一个任意字符
例:查询姓黄的学生
select * from students where name like '黄%'
1
2
3
范围查询
in表示在一个非连续的范围内
空判断
注意:null与’'是不同的
判空is null
例:查询没有填写身高的学生
select * from students where height is null
判非空is not null
1
2
3
4
优先级
优先级由高到低的顺序为:小括号,not,比较运算符,逻辑运算符
and比or先运算,如果同时出现并希望先算or,需要结合()使用
————————————————
1、用sqlserver作为测试,创建学生、教师、班级三张表。每张表都有一个id,int类型的(自增长),作为每个表的主键。
2、添加测试数据,并创建班级与学生、教师与班级的中间表。insert into dbo.Student(Sname) values('张三'),插入多条,由于id自增长所以sid自动填充了。类似将教师和班级也添加上测试数据。
3、创建班级教师表Class_Teacher,班级学生表Class_Student。
4、然后将1和2 放到1班,3和4放到2班。5和6 不放(可以理解为刚入学没有分配班级)。然后将3个老师分配到3个班级insert into dbo.Class_Teacher values (1,1)insert into dbo.Class_Teacher values (2,2)insert into dbo.Class_Teacher values (3,3)。
5、这样,1班和2班各有两名同学,3班没有同学,有两个同学没有分配班级,每一个老师都分配了班级。现在要查询所有班级学生情况。
mysql只用一条sql语句查出一个表里不同条件对应的数据条数的步骤如下:
我们需要准备的材料分别是:电脑、sql查询器。
1、首先,打开sql查询器,连接上相应的数据库表,例如stu2表。
2、点击“查询”按钮,输入:
select count(*) from stu2 where sex=1 and age=2
union all
select count(*) from stu2 where sex=1 and age=5
union all
select count(*) from stu2 where sex=1 and age=10
3、点击“运行”按钮,此时能只通过一条sql高效查询结果。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)