MySQL——基础查询与条件查询

基础查询

/*
    语法:
    select 查询列表
    from 表名;

    类似于:System.out.println(打印东西);

    1、查询列表可以是:表中的字段、常量值、表达式、函数
    2、查询的结果是一个虚拟的表格
*/

USE myemployees;
SELECT last_name FROM employees;
SELECT last_name,salary,email FROM employees;
SELECT * FROM employees;
SELECT 100;
SELECT john;
SELECT 100%98;
SELECT VERSION();   #查看mysql版本

1)便于理解
2)如果要查询的字段有重名,使用别名可以区分开

#方式一(AS):
SELECT 100%98 AS 结果;
SELECT last_name AS 姓,first_name AS 名 FROM employees;
#方式二(直接起):
SELECT last_name 姓,first_name 名 FROM employees;
#方式三(特殊):
SELECT salary AS "OUT put" FROM employees;

使用DISTINCT关键字。

#案例:查询员工表中涉及到的所有部门编号
SELECT DISTINCT department_id FROM employees;

java中的加号:①运算符 ②拼接符(拼接字符串)
mysql中的加号:仅仅作为运算符(若运算一方为字符型,则mysql试图将其转为数值型,转换成功则运算;不成功则将字符型数值转为0。若其中一方为null,则结果一定为null)

#案例:查询员工名和姓链接成一个字段,并显示为 姓名
#字符串拼接使用CONCAT()函数
SELECT CONCAT(last_name,first_name) AS 姓名 FROM employees;

条件查询

/*
    语法:
        select
            查询列表
        from
            表名
        where
            筛选条件;
    特点:
        1、按条件表达式筛选
            条件运算符:<  >  =  !=  <>  >=
#案例1:查询员工工资大于12000的信息
SELECT
    *
FROM
    employees
WHERE
    salary>12000;
#案例2:查询部门编号不等于90号的员工名和部门编号
SELECT
    last_name,
    department_id
FROM
    employees
WHERE
    department_id<>90;
#案例1:查询工资在10000到20000之间的员工名、工资以及奖金
SELECT
    last_name,
    salary,
    commission_pct
FROM
    employees
WHERE
    salary>10000&&salary
#案例2:查询部门编号不在90到110之间,或者工资高于15000的员工信息
SELECT
    *
FROM
    employees
WHERE
    !(department_id>=90&&department_id15000;
/*
    like(特点:一般和通配符搭配使用【%任意多个字符;_任意单个字符;】)
    between and
    in
    is null
    is not null
*/

1)like的使用
特点:一般和通配符搭配使用【%任意多个字符;_任意单个字符】

#案例1:查询员工中包含字符a的员工信息
SELECT
    *
FROM
    employees
WHERE
    last_name LIKE '%a%';
#案例2:查询员工名中第三个字符为n,第五个字符为l的员工名和工资
SELECT
    last_name,
    salary
FROM
    employees
WHERE
    last_name LIKE '__n_l%';
#案例3:查询员工名中第二个字符为_的员工名
SELECT
    last_name
FROM
    employees
WHERE
    last_name LIKE '_\_%';

​ 2)between and的使用
特点:①提高语句简洁度 ②包含临界值 ③两个临界值有序

#案例:查询员工编号在100到120之间的员工信息
SELECT
    *
FROM
    employees
WHERE
    employee_id BETWEEN 100 AND 120;

3)in的使用
含义:判断某字段的值是否属于in列表中的某一项
特点:①使用in提高了语句简洁度 ②in列表的值类型必须一致 ③不支持通配符

#案例:查询员工的工种编号是 IT_PROT、AD_VP、AD_PRES的一个员工名和工种编号
SELECT
    last_name,
    job_id
FROM
    employees
WHERE
    job_id IN ('IT_PROT','AD_VP','AD_PRES');

4)is null的使用
= 或 <>不能用于判断null值
is null 或 is not null 可以判断null值

#案例1:查询没有奖金的员工名和奖金率
SELECT
    last_name,
    commission_pct
FROM
    employees
WHERE
    commission_pct IS NULL;
#案例2:查询有奖金的员工名和奖金率
SELECT
    last_name,
    commission_pct
FROM
    employees
WHERE
    commission_pct IS NOT NULL;

5)安全等于 <=><!--=-->

#案例1:查询没有奖金的员工名和奖金率
SELECT
    last_name,
    commission_pct
FROM
    employees
WHERE
    commission_pct  NULL;

对比is null与

Original: https://www.cnblogs.com/pengpi/p/15540819.html
Author: 默π
Title: MySQL——基础查询与条件查询

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/508050/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • mysql拆分字符串做条件查询

    mysql拆分字符串作为查询条件 有个群友问一个问题 这表的ancestors列存放的是所有的祖先节点,以 ,分隔 例如我查询dept_id为103的所有祖先节点,现在我只有一个d…

    数据库 2023年5月24日
    079
  • MySQL设计表结构

    时间datetime 创建时间不能自动更新,更新时间需要自动更新 CURRENT_TIMESTAMP:创建时,会用当前时间自动填充该字段值 CURRENT_TIMESTAMP ON…

    数据库 2023年6月9日
    094
  • windows bat

    windows bat windows bat netsh2-ipv4 新建文件夹 Windows 10 右下角时间显示时分秒 windows route 检测到以管理员权限运行 …

    数据库 2023年6月9日
    0105
  • mybatis批量操作

    List类型 Mapper.java public int updateAccount(List<orderjob> orderJobs);</orderjob&…

    数据库 2023年6月16日
    095
  • MySQL实战45讲 6,7,8

    06 | 全局锁和表锁 :给表加个字段怎么有这么多阻碍? Connection连接与Session会话 通俗来讲,会话(Session)是通信双⽅从开始通信到通信结束期间的⼀个上下…

    数据库 2023年6月16日
    086
  • ShardingSphere 云上实践:开箱即用的 ShardingSphere-Proxy 集群

    本次 Apache ShardingSphere 5.1.2 版本更新为大家带来了三大全新功能,其中之一即为使用 ShardingSphere-Proxy chart 在云环境中快…

    数据库 2023年6月16日
    089
  • Linux 系统安装RocketMQ

    准备工作 1.去官网下载一个安装包 1.解压 unzip rocketmq-all-4.9.0-bin-release.zip -d /download/compress/ 2.进…

    数据库 2023年6月6日
    090
  • MySQL 期末试题

    当时我们期末的其中一套卷子, 好像有两套但是我当时懒得弄第二套. 就认真把第一套整了XD 一 单项选择题1.当隔离级别设置为read committed时,可以避免 。(2分)丢失…

    数据库 2023年6月11日
    078
  • [spring]spring的bean自动装配机制

    是spring满足bean依赖的一种方式 spring会在上下文中自动寻找,并自动给bean装配属性 spring的装配方式: (1)手动装配 在people类中依赖了cat和do…

    数据库 2023年6月16日
    086
  • Linux 学习笔记2(未完待续)

    Linux 学习笔记2 学习Linux的原因 Linux刚面世时并没有图形界面,所有操作全靠命令完成,如磁盘操作、文件读写、目录操作、进程管理、文件权限; 在职场中,大量的服务器维…

    数据库 2023年6月14日
    078
  • Redis缓存相关的几个问题

    1 缓存穿透 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,进而给数据库带来…

    数据库 2023年6月14日
    077
  • idea提交代码到get

    1、从get上拉下来的代码就有一个master,在写代码的时候可以拉一个分支,分支名称随意 2、更新master 如上截图选择master checkout切换到master分支 …

    数据库 2023年6月9日
    0103
  • Python第二十四天 binascii模块

    Python第二十四天 binascii模块 binascii用来进行进制和字符串之间的转换 hex(512) # 10进制转16进制 ‘0x200’int…

    数据库 2023年6月9日
    0100
  • 数据库相关工作流程与工具

    在工作过程中分享数据库相关工作的过程: [En] Share the process of database-related work during the work proces…

    数据库 2023年5月24日
    0104
  • springboot~elasticsearch对nested集合类型的字段进行不等于的检索

    对于es的数据类型来说,如果它是一个复杂类型,而我们需要把复杂类型进行检索,那么应该定义成 nested类型,而对于它的检索,如果是非集合数据,它与其它类型没有分别;而如果你的ne…

    数据库 2023年6月6日
    099
  • 配置中心Nacos(服务发现)

    服务演变之路 单体应用架构 在刚开始的时候,企业的用户量、数据量规模都⽐较⼩,项⽬所有的功能模块都放在⼀个⼯程中编码、编译、打包并且部署在⼀个Tomcat容器中的架构模式就是单体应…

    数据库 2023年6月9日
    0117
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球