前言:select语句通俗易懂,但是每当它遇到冤家—条件判断、and、or、条件匹配的时候,就稍微绕点了,此处阁下是如何做的?不妨远程观战博主如何?
(1)学生信息表stu
create table stu (s_id varchar(3), s_name varchar(4),
s_sex varchar(1),s_age int,s_bothday varchar(11));
insert into stu values
("001","李华","男",23,'1996-8-16'),
("002","王二","男",24,'1997-3-16'),
("003","赵敏","女",23,'1990-5-26'),
("004","张莹莹","女",22,'1995-2-16'),
("005","朱亚军","男",25,'1999-8-16'),
("006","马科","男",28,'1993-12-16');
(2)学生成绩表scores
create table scores(s_id varchar(3),
c_id varchar(2),score int);
insert into scores values
("001","01",135),
("005","01",120),
("003","01",110),
("002","01",90),
("005","02",140),
("001","02",125.5),
("004","02",100),
("006","02",90),
("002","03",102),
("005","03",100.6),
("001","03",100),
("003","03",95.6),
("004","03",83),
("003","02",80),
("006","03",79.5);
此处依然采用例子的形式讲解
题目一:查找学生编号不为001和002的学生信息
分析:只需要筛选出学生编号不为001或者002即可,代码为:
select * from stu where s_id not in (001,002); #方法一
select * from stu where s_id != 001 and s_id !=002; #方法二
select * from stu where s_id not between 1 and 2; #方法三
select * from stu where (s_id=001)+(s_id=002)=0; #方法四
select * from stu where (s_id !=001)*(s_id !=002); #方法五
# 003 赵敏 女 23 1990-5-26
# 004 张莹莹 女 22 1995-2-16
# 005 朱亚军 男 25 1999-8-16
# 006 马科 男 28 1993-12-16
这里,in表示在里面;not in 表示不在里面;not between 1 and 2 表示不在第一条和第二条记录里面;(s_id=001)+(s_id=002)=0表示消除001和002两条记录;(s_id !=001)*(s_id !=002)表示和and同意。
题目二:查询学生编号为001或者002的课程编号为01的成绩信息
select * from scores where s_id in (001,002) and c_id=01; #方法一
select * from scores where (s_id =001 or s_id=002) and c_id =01; #方法二
# 001 01 135
# 002 01 90
这里,in (001,002) and c_id=01表示s_id是001或者002的同时c_id为01,还是那句话in(001,002)表示要么是001,要么是002,没有哪个s_id即是001又是002;(s_id =001 or s_id=002) and c_id =01表示s_id为001或者002的同时c_id=01。
题目三:查询名字中含有“亚”字的学生信息
select * from stu where s_name like '%亚%'; #法一
# 005 朱亚军 男 25 1999-8-16
select * from stu where s_name like '_亚_'; #法二
# 005 朱亚军 男 25 1999-8-16
题目四:查询名字中含有“华”字的学生信息
select * from stu where s_name like '%华%';
# 001 李华 男 23 1996-8-16
select * from stu where s_name like '_华_';
# 不会输出结果,没有匹配到
这里,’%华%‘是匹配出名字里面带有’华’的名字,只要带有‘华’字,就匹配出来。而’-华-'是必须‘华’字旁边都存在字符,否则没法匹配。
记得小学时候,我有一女同学叫晶晶,她特别羡慕我们班主任老师,特别喜欢与崇拜他,于是就暗恋这个老师,有一天她终於鼓起勇气,跟老师表白,老师一直开导他,说他这样不对等等,可是晶晶当时很倔强,就是不听,还说什麽爱情是不分年龄之类的话,最后老师受不了了。就说:“我不要小孩子啦!”,这时候只见晶晶露出一脸满足的笑容,说:“老师.我一定会很小心很小心的!?”。但是现在人晶晶呢住我们这栋楼,事实证明她当时很大意,因为和我们哪个班主任老师没成…就是这么个情况。
博友们好,今天到这里就结束啦每篇文章都有最后的文末彩蛋–轻松一刻哟感谢观看,我是Jetuser-data[学习更多MySQL知识请加关注]
链接: [https://blog.csdn.net/L1542334210]
CSND:L1542334210
祝大家工作顺利!阖家欢乐!