首页 > 数据库 >MySQL查询(一)

MySQL查询(一)

时间:2023-02-22 09:33:37浏览次数:40  
标签:last name employees 查询 SELECT MySQL select

MySQL查询(一)

1. 基础查询

  • SELECT 查询列表 FROM 表名;
    
    • 查询列表:可以是表中的字段、常量值、表达式、函数

    • 查询结果是一个虚拟的表格,并没有保存下来

  • 查询表中的单个字段

    • SELECT last_name FROM employees; #查询employees表格中的字段last_name
      
  • 查询表中的多个字段

    • SELECT last-name,salary,email FROM employees; #查询employees表格中的字段last-name,salary,email
      
  • 查询表中的所有字段

    • SELECT * FROM employees; #查询employees表格中的所有字段
      
  • 查询常量值

    • SELECT 100; #查询100
      SELECT 'john'; #查询john
      
  • 查询表达式

    • SELECT 100%3;
      
  • 查询函数

    • SELECT VERSION(); #查询版本
      
  • 为字段起别名

    ​ 两种方式:

    • SELECT 100%3 AS 结果;
      SELECT last_name AS 姓,first_name AS 名 FROM employees;
      
    • SELECT last_name 姓,first_name 名 FROM employees;
      
    • 若别名中间有空格,可以用双引号括起来

    • 别名可以便于理解;如果要查询的字段有重名的情况,可以使用别名区分

  • 去重

    例如查询员工表中涉及到的所有部门编号

    • SELECT DISTINCT department_id FROM employees;
      
  • +的作用

    • mysql中的+号只有一个功能,就是运算符,不能连接字符串。如果两个操作数有一个是字符型,则试图将字符转化为数值进行加法运算,若转换不成功,则将字符型转化为0。若只要有一方是null,则结果肯定是null

    • 若要查询员工名和姓连接成一个字段,中间用空格隔开,并显示为姓名:

      SELECT CONCAT(last_name,' ',first_name) AS 姓名 FROM employees;
      
  • ifnull(要进行判断的数据,若为空给它赋的值)

    • select ifnull(commission_pct,0) as 奖金率,commission_pct from employees;
      

2. 条件查询

  • 条件查询的语法

    SELECT 
            查询列表
    FROM
            表名
    WHERE
            筛选条件;
    
  • 分类

    • 按条件表达式筛选

      条件运算符:> < = != <> >= <=

      select * from employees where salary>12000;
      select last_name,department_id from employees where department_id<>90;
      
    • 按逻辑表达式筛选

      逻辑运算符:&& || ! 或者用and or not

      select last_name,salary,commission_pct from employees where salary>=10000 and salary<=20000;   #查询工资不低于1万不超过2万的员工的名字、工资、奖金率
      select * from employees where department_id<90 or department_id>110 or salary>15000;
      
    • 模糊查询

      模糊查询通常与通配符一起使用。

      ​ %:可以表示任意多个字符,包括0个字符

      ​ _:表示一个字符

      若遇到字符串中包含通配符,可以使用转义符\

      like

      select * from employees where last_name like '%a%';  #查找名字中包含字符a的所有员工信息
      select * from employees where last_name like '__a_s%';  #查询名字中第3个字符是a,第5个字符是s的所有员工信息
      select last_name from employees where last_name like '_\_%';  #查询名字中第二个字符是'_'的所有员工名
      

      between and

      select * from employees where employee_id between 100 and 120;  #查询员工编号在100与120之间的所有员工信息,包含临界值,两个临界值不能颠倒顺序
      

      in

      select last_name,job_id from employees where job_id in ('AD_PRES','IT_PROG','PU_MAN');   #查找工种编号是列表中的三个工种的所有员工名字和工种编号
      

      is null

      select last_name,commission_pct from employees where commission_pct is null;   #查找奖金率为空的所有员工的员工名和奖金率
      

      <=>安全等于

      select last_name,commission_pct from employees where commission_pct <=> null;  #查找奖金率为空的所有员工的员工名和奖金率
      select last_name,salary from employees where salary <=> 12000;  #查找工资为12000的所有员工的名字和工资
      

3. 排序查询

  • 排序查询的基本语法:

    select 查询列表
    from 表
    [where 筛选条件]
    order by 排序列表 [asc 或 desc]
    

    默认升序

  • 示例

    按字段排序:

    select * from employees order by salary desc;  #查询员工信息,按工资降序排序
    

    增加筛选条件,按字段排序:

    select * from employees where department_id>=90 order by hiredate;  #查询部门编号大于等于90的员工信息,按入职日期先后排序
    

    按表达式或别名排序:

    select *,salary*12*(1+ifnull(commission_pct,0)) 年薪 from employees order by salary*12*(1+ifnull(commission_pct,0)) desc;  #按年薪高低显示员工信息和年薪
    select *,salary*12*(1+ifnull(commission_pct,0)) 年薪 from employees order by 年薪 desc;
    

    按函数排序:

    select length(last_name) 字节长度,last_name,salary from employees order by length(last_name) desc;  #按姓名长度显示员工名字和工资
    

    按多个字段排序:

    select * from employees order by salary asc,employee_id desc;  #先按工资升序,若工资一样,再按员工编号降序
    

标签:last,name,employees,查询,SELECT,MySQL,select
From: https://www.cnblogs.com/DYDNyang/p/17143198.html

相关文章

  • DNS协议 是什么?DNS 完整的查询过程?
    一、是什么DNS(DomainNamesSystem),域名系统,是互联网一项服务,是进行域名和与之相对应的IP地址进行转换的服务器简单来讲,DNS相当于一个翻译官,负责将域名翻译成ip地址IP......
  • pymysql通过DBUtils实现连接池技术
    DBUtils是一套Python数据库连接池包,并允许对非线程安全的数据库接口进行线程安全包装。一、安装pipinstallDBUtils二、导入模块#针对不同版本,可能导入方式存......
  • MySQL8.0 0 安装后,使用CMD无法启动mysql服务
    首先,先把mysql的bin路径添加到系统环境变量     第一步:在MySQL的安装文件的bin目录   例如: D:\mysql\bin   中新建一个my.ini的文件,复制进代码[my......
  • mysql之半同步
    ##################安装半同步插件:mysql>installpluginrpl_semi_sync_mastersoname'semisync_master.so';mysql>installpluginrpl_semi_sync_slavesoname'semi......
  • IDEA+java swing+MySQL配置
    1、建立一个java项目(不是空项目)2、创建GUIForm(减少代码压力)生成代码出现了这个窗体此时说明swing已经可用了3、连接MySQL......
  • mysql之中间件Cetus
    #################https://www.bookstack.cn/books/Cetus               ############################## ......
  • MySQL 导出 表结构,执行 .sql 文件导入结构或者数据
    1、MySQL导出不同类型的表结构1.1导出结构不导出数据mysqldump-h主机地址-uroot-p密码-d数据库名>xxx.sql#加-d参数如果发现加了-d参数......
  • mysql5.7压缩包配置教程(简单高效)
    MySql5.764位下载链接1.下载压缩包之后,解压压缩包,添加系统环境变量%MYSQL_HOME%\bin2.新建my.ini文件[mysqld]basedir=D:\DevelopTools\mysql-5.7.32-winx64......
  • 5.mysql的explain的分析
    执行分析:   1.id含义:表示查询的子句或者操作表的顺序三种情况:id相同,执行的顺序由上到下;id不同,id越大优先级越高,越先执行;id相......
  • 【证书查询】【职称】【全国查询】职业证书查询官网
    注意:大家以后考技能证,建议考全国能查到的,国家认可的证书。其他网站查到的不算。查询网站:1、技能人才评价工作网:http://osta.mohrss.gov.cn2、技能证书查询:http://zscx.ost......