当前位置: 首页 > news >正文

MySQL 基础查询语句参考手册

一、基本查询操作

  1. 从表中选取特定列

    sql

    -- 从 employees 表中选取 last_name 列
    SELECT last_name FROM employees;
    
    -- 从 employees 表中选取 last_name、salary、email 列
    SELECT last_name, salary, email FROM employees;
    
  2. 获取表的全部列信息

    sql

    -- 从 jobs 表中获取所有列的信息
    SELECT * FROM jobs;
    
  3. 查询常量、表达式以及函数结果

    sql

    -- 查询数字常量 100
    SELECT 100;
    
    -- 查询字符串常量 'join'
    SELECT 'join';
    
    -- 计算表达式 100 * 8 的值
    SELECT 100 * 8;
    
    -- 调用 VERSION() 函数获取 MySQL 版本号
    SELECT VERSION();
    
二、查询结果的优化处理
  1. 为列或结果设置别名

    sql

    -- 方式一:使用 AS 关键字
    SELECT 100 AS 计算结果;
    
    -- 方式二:省略 AS 关键字
    SELECT 100 计算结果;
    
  2. 去除查询结果中的重复值

    sql

    -- 从 employees 表中选取不重复的 department_id 列
    SELECT DISTINCT department_id FROM employees;
    
  3. 进行字符串拼接操作

    sql

    -- 使用 CONCAT 函数拼接字符串 'a' 和 'b'
    SELECT CONCAT('a', 'b') AS 拼接结果;
    
三、条件查询功能
  1. 条件运算符的运用

    sql

    -- 查找 salary 列值大于等于 10000 的员工记录
    SELECT * FROM employees WHERE salary >= 10000;
    
    -- 查找 department_id 列值不等于 90 的员工的 last_name 和 department_id
    SELECT last_name, department_id 
    FROM employees 
    WHERE department_id != 90;
    
    -- 查找 salary 列值在 10000 到 20000 之间的员工记录
    SELECT last_name, salary, commission_pct 
    FROM employees 
    WHERE salary BETWEEN 10000 AND 20000;
    
  2. 模糊查询的实现

    sql

    -- 查找 last_name 列值包含字母 'a' 的员工记录(% 代表任意多个字符)
    SELECT * FROM employees WHERE last_name LIKE '%a%';
    
    -- 查找 last_name 列值为 5 个字符且第三个字符为 'e'、第五个字符为 'a' 的员工记录(_ 代表单个字符)
    SELECT * FROM employees WHERE last_name LIKE '__e_a%';
    
  3. 处理 NULL 值的查询

    sql

    -- 查找 commission_pct 列值为 NULL 的员工记录
    SELECT * FROM employees WHERE commission_pct IS NULL;
    
    -- 查找 commission_pct 列值不为 NULL 的员工记录
    SELECT * FROM employees WHERE commission_pct IS NOT NULL;
    
四、运算符与逻辑操作符
运算符类型运算符列表说明
比较运算符=><>=<=!=用于比较两个值的大小关系
逻辑运算符AND/&&OR/`NOT/!`用于组合多个查询条件
模糊匹配符LIKE结合 % 或 _ 进行模式匹配
范围运算符BETWEEN ... AND ...用于指定一个值的范围
集合运算符IN用于判断值是否在指定的集合中
五、注意要点
  1. 运算符的优先级

    • 比较运算符的优先级高于逻辑运算符。
    • 可以使用括号 () 来明确查询条件的执行顺序。
  2. 性能方面的考量

    • 在使用 LIKE 进行模糊查询时,避免以 % 开头,因为这可能会导致全表扫描,影响查询性能。
    • 对于大数据量的去重操作,DISTINCT 可能会使查询性能下降,需要谨慎使用。
  3. 转义字符的使用

    • 当需要匹配 % 或 _ 本身时,需要使用转义字符 \

    sql

    -- 查找 last_name 列值包含 '%' 的员工记录
    SELECT * FROM employees WHERE last_name LIKE '%\%';
    
附录:示例表结构
  1. employees 表

    列名数据类型说明
    employee_idINT员工编号,主键
    last_nameVARCHAR(50)员工姓氏
    salaryDECIMAL(10,2)员工工资
    emailVARCHAR(100)员工邮箱
    department_idINT员工所在部门编号
    commission_pctDECIMAL(4,2)员工奖金比例(可能为 NULL)
  2. departments 表

    列名数据类型说明
    department_idINT部门编号,主键
    department_nameVARCHAR(50)部门名称
    manager_idINT部门经理编号
  3. jobs 表

    列名数据类型说明
    job_idINT职位编号,主键
    job_titleVARCHAR(50)职位名称
    min_salaryDECIMAL(10,2)该职位的最低工资
    max_salaryDECIMAL(10,2)该职位的最高工资
http://www.dtcms.com/a/97002.html

相关文章:

  • 【Zabbix技术系列文章】第①篇——基础入门
  • CSS学习笔记5——渐变属性+盒子模型阶段案例
  • ubuntu 升级补丁,备份备份备份
  • JAVA学习*异常
  • CSS-BFC(块级格式化上下文)
  • 主流大模型采用的架构、注意力机制、位置编码等汇总表
  • 【SECS】初识SECS协议
  • MiniRAG检索流程详细图解
  • #VCS# 关于 +incdir+xxx 编译选项的注意点
  • #前端js发异步请求的几种方式
  • 【AI语音】edge-tts实现文本转语音,免费且音质不错
  • 指针 --1
  • RS232转Profinet网关技术,检漏仪新篇章!
  • 深度融合华为鸿蒙生态,嘀嗒出行重构顺风车出行新体验
  • 「HTML5+Canvas实战」星际空战游戏开发 - 纯前端实现 源码即开即用【附演示视频】
  • 18-背景渐变与阴影(CSS3)
  • C++ | constexpr
  • Linux服务器怎样根据端口找到对应启动的服务
  • TCSVT审稿学习笔记
  • 3.28-2 jmeter读取mysql
  • spring @SpringBootApplication 注解详解
  • 使用AURIX ADS部署tensorflow lite到Tricore TC2XX/TC3XX
  • EMC知识学习三
  • ecovadis评估有什么流程?对企业发展的重要意义
  • HTML应用指南:利用GET请求获取全国无印良品门店位置信息
  • 19726 星际旅行
  • 【SDMs分析1】基于ENMTools R包的生态位分化分析和图像绘制(identity.test())
  • <wbr>标签的用途,在处理长文本换行时如何发挥作用?
  • 算法 | 河马优化算法原理,公式,应用,算法改进及研究综述,matlab代码
  • Android WLAN offload Data Supplementary Service