文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL数据库06——条件查询(WHERE)

2023-10-28 07:07

关注

MySQL条件查询,主要是对数据库里面的数据按照一定条件进行筛选,主要依靠的是WHERE语句进行。

先来了解一下基础的条件运算。


关系运算符

逻辑运算符 

 逻辑运算符优先级:NOT>AND>OR,关系运算符>逻辑运算符

SQL特殊运算符

 


WHERE子句用法

想要从数据表中查找来自内蒙古的所有学生,则可以编写如下带有WHERE子句的SELECT语句。

SELECT * FROM  student  WHERE   origin='内蒙古自治区';

 

 查询数值数据

从course表中,查询所有3学分的课程信息。

SELECT * FROM course WHERE   credit=3;

从course表中,查询所有学分不小于3的课程的课名和课号。 

SELECT   course AS 课名, ID AS 课号   FROM     course   WHERE    credit>=3;

 从score表中,查询总成绩大于等于90的学生学号和这门课的课号。

SELECT s_id AS 学号, c_id AS 课号, result1*0.7+result2*0.3 AS 总成绩 FROM   scoreWHERE  result1*0.7+result2*0.3>=90

 注意:上面WHERE子句中的条件表达式不可以写为如下形式:总成绩>=90

因为WHERE子句在SELECT子句之前执行,所以在WHERE子句执行时还并没有执行给计算字段(result1*0.7+result2*0.3)取别名的操作

 查询字符数据

从student表中,查询名叫“张三”的学生。

SELECT   *FROM     studentWHERE   name='张三'

 

 

 从student表中,查询非计科系的所有学生。

SELECT   *FROM     studentWHERE    institute<>'计算机学院'

 

从course表中,查询课号ID大于“003”的课程信息。

SELECT   *FROM     courseWHERE    ID>'003'

 

 (字符串比较大小,其实是在比较每个字符的ASCII码值,ASCII码大的字符为大。人们经常使用的字符里数字字符“0”的ASCII码是48,“1”的ASCII码是49等,以此类推向后递增;大写英文字母“A”的ASCII码是65,“B”的ASCII码是66等,以此类推向后递增;小写英文字母“a”的ASCII码是97,“b”的ASCII码是98等,以此类推向后递增。因此,每个排列的后面的字符都比前面的要大。汉字比较大小时比较的是拼音,例如,“张”比“王”大,因为“z”大于“w”。下面看一个汉字比较的例子汉字比较的例子。)

SELECT   *从student表中,查询姓名按拼音排在“马六”后的所有学生的姓名,来源地和所属院系。

SELECT   name AS 姓名, origin AS 来源地, institute AS 所属院系 FROM   student WHERE  CONVERT(name USING GBK)>CONVERT('马六' USING GBK);

 

查询日期数据

从student表中,查询1998年1月1日之后出生的学生姓名、联系方式和所属院系。

SELECT   name AS 姓名, contact1 AS 联系方式1, contact2 AS 联系方式2, institute AS 所属院系FROM     studentWHERE    birthday>'1998-1-1';

按范围查询数据

从score表中,查询考试成绩result1字段在70~80分之间的所有学生的学号和这门课程的课号和考试成绩。

SELECT   s_id AS 学号, c_id AS 课号, result1 AS 考试成绩FROM     score  WHERE    result1  BETWEEN 70 AND 80;

从student表中,查询1997年1月1日~1999年1月1日之间出生的学生姓名、出生日期和所属院系。

SELECT   name AS 姓名, birthday AS 出生日期, institute AS 所属院系FROM     studentWHERE    birthday BETWEEN '1997/01/01'  AND  '1999/01/01';

 

查询空值

从student表中,查询联系方式2字段“contact2”为空的所有学生的信息。

SELECT   *FROM     studentWHERE    contact2  IS NULL;

 

从student表中,查询联系方式2字段“contact2”不空的学生姓名,所有联系方式和所属院系。

SELECT   name AS 姓名, contact1 AS 联系方式1, contact2 AS 联系方式2, institute AS 所属院系FROM     studentWHERE    contact2   IS NOT NULL;

 


排序条件查询结果

从student表中,查询联系方式2字段“contact2”不空的学生学号、姓名、所有联系方式和所属院系。并且按学号升序进行排序。

SELECT   ID AS 学号, name AS 姓名, contact1 AS 联系方式1, contact2 AS 联系方式2, institute AS 所属院系FROM     student  WHERE    contact2   IS NOT NULLORDER BY  ID;

(注意:如果SELECT语句中有ORDER BY子句,则必须将其放在WHERE子句之后)

查询n条记录

 从student表中,查询生日最大的前5名学生的姓名和联系方式1。

主要是LIMIF 关键字的这个用法

SELECT  name AS 姓名, contact1 AS 联系方式1, birthday AS 出生日期  FROM    studentORDER BY birthday  LIMIT 5;

 

 

来源地址:https://blog.csdn.net/weixin_46277779/article/details/128970708

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯