博客
关于我
MySQL学习-MySQL条件查询
阅读量:789 次
发布时间:2023-02-12

本文共 3752 字,大约阅读时间需要 12 分钟。

MySQL条件查询

操作的表

以下是操作的表结构:

EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7369 SMITH CLERK 7902 1980-12-17 800.00 NULL 20
7499 ALLEN SALESMAN 7698 1981-02-20 1600.00 300 30
7521 WARD SALESMAN 7698 1981-02-22 1250.00 500 30
7566 JONES MANAGER 7839 1981-04-02 2975.00 NULL 20
7654 MARTIN SALESMAN 7698 1981-09-28 1250.00 1400 30
7698 BLAKE MANAGER 7839 1981-05-01 2850.00 NULL 30
7782 CLARK MANAGER 7839 1981-06-09 2450.00 NULL 10
7788 SCOTT ANALYST 7566 1987-04-19 3000.00 NULL 20
7839 KING PRESIDENT NULL 1981-11-17 5000.00 NULL 10
7844 TURNER SALESMAN 7698 1981-09-08 1500.00 0.00 30
7876 ADAMS CLERK 7788 1987-05-23 1100.00 NULL 20
7900 JAMES CLERK 7698 1981-12-03 950.00 NULL 30
7902 FORD ANALYST 7566 1981-12-03 3000.00 NULL 20
7934 MILLER CLERK 7782 1982-01-23 1300.00 NULL 10

每个字段的字段名分别为:员工编号、员工姓名、员工职位、员工上级领导编号、员工雇佣日期,员工薪水、员工津贴、员工部门编号。


条件查询概述

语法格式

SELECT column_name, column_name ... FROM table_name WHERE condition;

执行顺序:先from,然后where,最后select

示例

  • 查询工资等于5000的员工姓名:

    SELECT ename, sal FROM emp WHERE sal = 5000;

    结果如下:| ename | sal ||---------|-------|| KING | 5000.00 |

  • 查询SMITH的工资:

    SELECT sal FROM emp WHERE ename = 'SMITH';

    结果如下:| sal ||-------|| 800.00 |

  • 找出工资高于3000的员工:

    SELECT ename, sal FROM emp WHERE sal > 3000;

    结果如下:| ename | sal ||---------|--------|| KING | 5000.00 |

  • 找出工资在1100和3000之间的员工(包括1100和3000):

    SELECT ename, sal FROM emp WHERE sal BETWEEN 1100 AND 3000;

    结果如下:| ename | sal ||---------|--------|| JONES | 2975.00 || WARD | 1250.00 || MARTIN | 1250.00 || BLAKE | 2850.00 || SCOTT | 3000.00 || ALLEN | 1600.00 || FORD | 3000.00 |

  • 找出哪些人津贴为NULL:

    SELECT ename, sal, comm FROM emp WHERE comm IS NULL;

    结果如下:| ename | sal | comm ||---------|--------|-------|| SMITH | 800.00 | NULL || JONES | 2975.00 | NULL || BLAKE | 2850.00 | NULL || CLARK | 2450.00 | NULL || SCOTT | 3000.00 | NULL || KING | 5000.00 | NULL || ADAMS | 1100.00 | NULL || JAMES | 950.00 | NULL || FORD | 3000.00 | NULL || MILLER | 1300.00 | NULL |

  • 找出哪些人津贴不为NULL:

    SELECT ename, sal, comm FROM emp WHERE comm IS NOT NULL;

    结果如下:| ename | sal | comm ||---------|--------|-------|| ALLEN | 1600.00 | 300.00 || WARD | 1250.00 | 500.00 || MARTIN | 1250.00 | 1400.00 || TURNER | 1500.00 | 0.00 |

  • 找出工作岗位是MANAGER和SALESMAN的员工:

    SELECT ename, job FROM emp WHERE job = 'MANAGER' OR job = 'SALESMAN';

    结果如下:| ename | job ||---------|----------|| JONES | MANAGER || WARD | SALESMAN || MARTIN | SALESMAN || BLAKE | MANAGER || CLARK | MANAGER || TURNER | SALESMAN |

  • 找出薪资大于1000的并且部门编号是20或30部门的员工:

    SELECT ename, sal, deptno FROM emp WHERE sal > 1000 AND (deptno = '20' OR deptno = '30');

    结果如下:| ename | sal | deptno ||---------|--------|--------|| ALLEN | 1600.00 | 30 || WARD | 1250.00 | 30 || JONES | 2975.00 | 20 || MARTIN | 1250.00 | 30 || BLAKE | 2850.00 | 30 || SCOTT | 3000.00 | 20 || FORD | 3000.00 | 20 |

  • 找出工作岗位是MANAGER或SALESMAN的员工(使用IN关键字):

    SELECT ename, job FROM emp WHERE job IN ('MANAGER', 'SALESMAN');

    结果如下:| ename | job ||---------|----------|| JONES | MANAGER || WARD | SALESMAN || MARTIN | SALESMAN || BLAKE | MANAGER || CLARK | MANAGER || TURNER | SALESMAN |

  • 找出工资在800和5000之间的员工:

    SELECT ename, sal FROM emp WHERE sal IN (800, 5000);

    结果如下:| ename | sal ||---------|--------|| SMITH | 800.00 || KING | 5000.00 |


  • 模糊查询(LIKE)

    示例

  • 找出名字中含有O的员工:

    SELECT ename FROM emp WHERE ename LIKE '%O%';

    结果如下:| ename ||---------|| JONES || SCOTT || FORD |

  • 找出第二个字母是A的员工:

    SELECT ename FROM emp WHERE ename LIKE '_A%';

    结果如下:| ename ||---------|| WARD || MARTIN || JAMES |

  • 找出名字中有下划线的员工:

    SELECT name FROM t_user WHERE name LIKE '%_%';

    结果如下:| name ||----------|| WANG_WU |

  • 找出名字中最后一个字母是T的员工:

    SELECT ename FROM emp WHERE ename LIKE '%T';

    结果如下:| ename ||---------|| SCOTT |


  • 注意事项

  • BETWEENIN关键字在使用时必须遵循左小右大的原则。
  • IS NULLIS NOT NULL用于判断字段是否为NULL
  • ANDOR的优先级由括号决定,括号外的AND优先于括号内的OR
  • LIKE用于模糊查询,%表示任意多个字符,_表示任意一个字符。
  • 转载地址:http://orbfk.baihongyu.com/

    你可能感兴趣的文章
    MySQL子查询
    查看>>
    Mysql字段、索引操作
    查看>>
    mysql字段的细节(查询自定义的字段[意义-行列转置];UNION ALL;case-when)
    查看>>
    mysql字段类型不一致导致的索引失效
    查看>>
    mysql字段类型介绍
    查看>>
    mysql字段解析逗号分割_MySQL逗号分割字段的行列转换技巧
    查看>>
    MySQL字符集与排序规则
    查看>>
    MySQL字符集乱码
    查看>>
    mysql字符集设置
    查看>>
    mysql存储IP地址的数据类型
    查看>>
    mysql存储中文 但是读取乱码_mysql存储中文乱码
    查看>>
    MySQL存储引擎
    查看>>
    MySQL存储引擎
    查看>>
    MySQL存储引擎--MYSIAM和INNODB引擎区别
    查看>>
    Mysql存储引擎(1):存储引擎体系结构和介绍
    查看>>
    Mysql存储引擎(2):存储引擎特点
    查看>>
    MySQL存储引擎--MyISAM与InnoDB区别
    查看>>
    mysql存储总结
    查看>>
    mysql存储登录_php调用mysql存储过程会员登录验证实例分析
    查看>>
    MySql存储过程中limit传参
    查看>>