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)

大家都在看

  • 2022-08-19 PreparedStatement

    PreparedStatement接口是 Statement的子接口,它表示一条预编译过的SQL语句 什么是SQL注入 SQL注入是利用某些系统没有对用户输入的数据进行充分的检查,…

    数据库 2023年5月24日
    0104
  • jdbc-实现用户登录业务(解决sql注入问题)

    package com.cqust; import java.sql.*;import java.util.HashMap;import java.util.Map;import …

    数据库 2023年5月24日
    071
  • Springboot学习笔记(一)—— 安装

    springboot越来越流行了,相比较于springMVC,springboot采用了一种约定大于配置的理念,可以一键安装,一键运行,一键部署,内置tomcat,省去了一大堆配置…

    数据库 2023年6月9日
    0104
  • MySQL完整版详解

    一、数据库的操作 1.创建数据库 若在可视化软件上创建数据库,参考如下图 如果要创建的数据库不存在,则创建成功 create database if not exists west…

    数据库 2023年6月16日
    069
  • Java并发编程-线程池

    重点内容 线程池的使⽤ 创建线程池 提交任务 关闭线程池 线程池的原理 合理配置线程池 线程池的监控 1.线程池的创建 new ThreadPoolExecutor(corePoo…

    数据库 2023年6月6日
    096
  • DASCTF 熟悉的猫

    压缩包需要密码,不是伪加密,爆破也爆不出来,下面的kdbx文件搜了一下可以用keepass ;打开,但是居然还是需要密码 那这个只能是弱口令或者爆破了,但是纯手工肯定不可取,找了很…

    数据库 2023年6月11日
    082
  • 获取单选按钮组的选中值

    1 var radioGroup = new Ext.form.RadioGroup({ 2 width: 130, 3 id: ‘selected’, 4 layout: ‘fo…

    数据库 2023年6月9日
    082
  • Python 垃圾回收总结

    前言 最近在阅读《垃圾回收的算法与实现》,里面将讲到了一些常用的垃圾回收(Garbage Collect)算法,如:标记-清除、引用计数、分代回收等等。后面讲到了 Python 的…

    数据库 2023年6月6日
    0111
  • Git自学

    Linux git # 查看是否安装git sudo apt-get install git # Ubuntu/Debian自动安装Git Windows 配置用户信息 git c…

    数据库 2023年6月11日
    076
  • Java学习-第一部分-第三阶段-项目实战:多用户即时通讯系统

    service ClientConnectServerThread package com.hspedu.qqclient.service; import com.hspedu.q…

    数据库 2023年6月11日
    083
  • Linux磁盘分区和挂载

    磁盘分区和挂载 挂载概念 在linux操作系统中,挂载是一个非常重要的功能,使用非常频繁。 它指将一个设备(通常是存储设备)挂接到一个已存在的目录上。需要理解的是,linux操作系…

    数据库 2023年6月16日
    087
  • TypeScript语言基础

    一、什么是TypeScript 编程语言包括动态类型语言和静态类型语言。动态类型语言是指在程序运行阶段才检查变量数据类型的语言,在定义变量时不需要指定变量的数据类型,通常在编译时不…

    数据库 2023年6月14日
    097
  • RadonDB MySQL Kubernetes 2.2.0 发布!

    摘要 RadonDB MySQL Kubernetes v2.2.0 于近日发布!该版本开始支持 MySQL 8.0,备份功能优化,并全面提升高可用稳定性。社区同步发起&#8221…

    数据库 2023年5月24日
    0107
  • 五分钟搞懂POM设计模式

    大家好,我是测试蔡坨坨。 今天,我们来聊聊Web UI自动化测试中的POM设计模式。 前期,我们学会了使用Python+Selenium编写Web UI自动化测试线性脚本 线性脚本…

    数据库 2023年6月11日
    0118
  • Java代码中System.currentTimeMillis()方法具有什么功能呢?

    转自:http://java265.com/JavaCourse/202111/1749.html 下文笔者讲述System.currentTimeMillis()方法的具体功能,…

    数据库 2023年6月11日
    0103
  • 史上最全Mysql规范

    1 整体规约 1)【强制】数据库所有对象必须要有注释,包括:表、字段、索引等,并且要保持最新; 1)【强制】默认使用utf8字符集,无乱码风险,除一些需要存储特殊符号的字段,可以采…

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