SQL查询--选择运算(1)
/** 本贴使用MySQL数据库 **/
WHERE子句可以实现关系代数中的选择运算,用于查询满足选择条件的元组,常用的查询条件有:
- 1.比较运算:>,>=,<,<=,=,<>(或!=);
- 2.范围查询:BETWEEN...AND;
- 3.集合查询:IN;
- 4.空值查询:IS NULL;
- 5.字符串匹配查询:LIKE;
- 6.逻辑查询:AND,OR,NOT。
下面我们创建一个简单的“student”学生表用于详细说明这些查询。
1 create table student( 2 studentNo VARCHAR(10) NOT NULL , 3 studentName VARCHAR(20) NOT NULL , 4 sex char(2) NULL, 5 classNo int NULL, 6 CONSTRAINT studentPK PRIMARY KEY (studentNo) 7 )
接下来我们插入几条简单数据。
insert into student values ('001','小工','男','1'), ('002','小后','男','1'), ('021','小哄','男','2'), ('022','小红','女','1'), ('031','小民','女','2'), ('045','小明','女','1'), ('111','小海','男','1'), ('024','小哈','女','12')
1. 比较运算
1.1 >运算符,运行以下sql语句
select * from student where studentNo > 1
查询studentNo大于数值1的所有学生,显示结果如下
如果我使用的sql语句修改为
select * from student where studentNo > '1'
显示的结果为
总结:
studentNo被定义为varchar类型。前者为数值之间的比较,查询结果为所有studentNo数值大于1的数据;后者为字符串之间的比较,查询结果为所有studentNo字符串大于‘1’的数据。
以上是对字符类型的字段进行比较,接下来对整型类型的字段classNo进行比较,运行以下sql语句
select * from student where classNo > 2
查询结果为
修改sql语句为:
select * from student where classNo > '2'
所得到的查询结果为
总结:以上的两次查询结果一样,说明整型类型的字段之间的比较都是数值之间的比较,即是查询条件为大于某个字符串,也是进行数值之间的比较。
(Continue...)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步