首页 > 数据库 >MySQL(三)操作符 连接操作

MySQL(三)操作符 连接操作

时间:2024-09-05 13:36:02浏览次数:4  
标签:table1 JOIN name column 操作符 MySQL WHERE 连接 SELECT

LIKE操作符

  • 用于在 WHERE 子句中搜索列中的指定模式,是进行模糊查询的关键字
  • 通常与 % 和 _ 通配符一起使用
SELECT column1, column2, ...
FROM table_name
WHERE column_name LIKE pattern;

通配符

  • %:匹配任意字符(包括零个字符)
  • _:匹配单个字符

_的用法
使用 _ 通配符找出所有产品名称为三个字符,第一个字符为 "D",第二个字符为 "e" 的产品

SELECT ProductName, Category
FROM Products
WHERE ProductName LIKE 'De_';

SQL通配符

  • 可用于替代字符串中的任何其他字符
  • 通配符与 LIKE 操作符一起使用,用于搜索表中的数据
    | 通配符 | 描述 |
    | ---- | ---- |
    | % | 替代 0 个或多个字符 |
    | _ | 替代一个字符 |
    | [charlist] | 字符列中的任何单一字符 |
    |[^charlist]或[!charlist]| 不在字符列中的任何单一字符 |

[cahrlist]用法
选取 name 以 "G"、"F" 或 "s" 开始的所有网站

SELECT * FROM Websites
WHERE name REGEXP '^[GFs]';

[^charlist]用法
选取 name 不以 "G"、"F" 或 "s" 开始的所有网站

SELECT * FROM Websites
WHERE name REGEXP '^[^GFs]';

IN操作符

  • 允许在 WHERE 子句中规定多个值
SELECT column1, column2, ...
FROM table_name
WHERE column IN (value1, value2, ...);

BETWEEN操作符

  • 选取介于两个值之间的数据范围内的值,这些值可以是数值、文本或者日期
  • 在不同数据库中,BETWEEN操作符是否选取两端值是不一样的
SELECT column1, column2, ...
FROM table_name
WHERE column BETWEEN value1 AND value2;
  • 如果需要筛选不在范围内的数据,用 NOT BETWEEN
  • 带有IN的BETWEEN操作符
SELECT column1, column2, ...
FROM table_name
WHERE (column BETWEEN value1 AND value2)
AND column [NOT] IN (value1,value2,...);
  • 带有文本值的BETWEEN操作符
    选取 name 以介于 'A' 和 'H' 之间字母开始的所有网站
SELECT * FROM WebsitesWHERE name BETWEEN 'A' AND 'H';
  • 带有日期值的BETWEEN操作符
    选取 date 介于 '2016-05-10' 和 '2016-05-14' 之间的所有访问记录
SELECT * FROM access_log
WHERE date BETWEEN '2016-05-10' AND '2016-05-14';

别名

  • 为表名称或列名称指定别名
  • 如果要指定多个列的别名,需要用逗号隔开
  • 如果列名称包含空格,要求使用双引号或方括号
  • 列别名
SELECT column_name AS alias_name
FROM table_name;
  • 表别名
SELECT column_name(s)
FROM table_name AS alias_name;

JOIN连接

  • 用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段
SELECT column1, column2, ...
FROM table1
JOIN table2 ON condition;

1、INNER JOIN

  • 如果表中有至少一个匹配,则返回行,等同于JOIN
SELECT column_name(s)
FROM table1
INNER JOIN table2
ON table1.column_name=table2.column_name;

2、LEFT JOIN

  • 即使右表中没有匹配,也从左表返回所有的行
SELECT column_name(s)
FROM table1
LEFT JOIN table2
ON table1.column_name=table2.column_name;

3、RIGHT JOIN

  • 即使左表中没有匹配,也从右表返回所有的行
SELECT column_name(s)
FROM table1
RIGHT JOIN table2
ON table1.column_name=table2.column_name;

4、CROSS JOIN

  • 返回两个表的所有记录,无论另一个表是否匹配
  • 笛卡尔集
SELECT column_name(s)
FROM table1
CROSS JOIN table2;

5、自连接(SELF JOIN)

  • 表与自身连接
SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition;
  • T1 和 T2 是同一表的不同表别名

UNION操作符

  • 合并两个或多个 SELECT 语句的结果
  • 每个 SELECT 语句必须具有相同数量的列,且对应列的数据类型必须相似
  • 默认去除重复的记录,如果要保留所有重复记录,可以使用UNION ALL操作符
  • UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名
SELECT column1, column2, ...
FROM table1
UNION
SELECT column1, column2, ...
FROM table2;

标签:table1,JOIN,name,column,操作符,MySQL,WHERE,连接,SELECT
From: https://www.cnblogs.com/shihongpin/p/18398246

相关文章

  • Sqoop(四)将HDFS上的数据导出到MySQL中
    将HDFS上的数据导出到MySQL中 在MySQL中建表createtableorders(orderidintprimarykey,orderdatevarchar(10),productidint,numint);导出到MySQL中hdfs中准备数据hadoopfs-chmod777/orders/orders/order.txt1,202406,12,300002,202406,13,350003,2024......
  • 20240904_172638 mysql 填空题 存储过程
    创建一个名为p1的存储过程,只写第一行createprocedurep1()存储过程的开始,单词begin存储过程的结束,单词end调用名为p1的存储过程,不传参数callp1()修改每行命令的结束符号,改成$$delimiter$$查看名为p1的存储过程的创建语句showcreateprocedurep1删除名为p1的存储过......
  • mysql创建数据库和表
    MySQL数据库与表创建及增删改查操作详细文档一、前言MySQL是一种广泛使用的关系型数据库管理系统,它支持多种编程语言进行数据操作。本文档将详细介绍如何在MySQL中创建数据库和表,并进行基本的增(Insert)、删(Delete)、改(Update)、查(Select)操作。二、创建数据库在MySQL中,首先......
  • 课题分享:校园闲置物品租售系统,基于java+springboot+mysql
      一、前言介绍        传统的校园闲置物品租售系统方式是在线下实体进行的,用户需要到线下进行实际的了解传统信息,而随着信息不断的普及,越来越多的校园商家也开始出于各种各样的理由而热衷网上发展,传统的线下模式已经无法满足人们的需求了。        互联......
  • 课题分享:校园闲置物品交易网站,基于java+springboot+mysql
      一、前言介绍        计算机的普及和互联网时代的到来使信息的发布和传播更加方便快捷。用户可以通过计算机上的浏览器访问多个应用系统,从中获取一些可以满足用户需求的管理系统。网站系统有时更像是一个大型“展示平台”,用户可以选择所需的信息进入系统查看首页......
  • 课题分享:外卖点餐系统,基于java+springboot+mysql
      一、前言介绍        计算机的普及和互联网时代的到来使信息的发布和传播更加方便快捷。人们可以通过计算机上的浏览器访问多个应用系统,从中获取一些可以满足用户生活需求的管理系统。网站系统有时更像是一个大型“展示平台”,人们可以选择所需的信息进行在线下单......
  • 五分钟快速理解new操作符
    五分钟快速理解new操作符(1)new操作符做了哪些事情(4步)(2)代码示例(3)手写new标识符(1)new操作符做了哪些事情(4步)新建一个新的空对象{}让空对象的__proto__和构造函数的prototype建立链接{_proto:Person.prototype}改变this指向,让构造函数中的this指......
  • MySQL配置文件my.cnf与my.ini的区别
    MySQL配置文件my.cnf与my.ini的区别+目录一、my.cnf与my.ini二、my.cnf与my.ini的路径2.1默认路径2.2查找my.cnf路径2.2.1、命令行查找配置文件2.2.2、多个my.cnf配置文件2.2.3 my.cnf不存在怎么办一、my.cnf与my.iniwin系统,MySQL配置文件为my.ini其他系统(Ubuntu、CentOS......
  • 网站提示“Connection refused:数据库连接被拒绝”错误如何解决
    当您遇到“Connectionrefused:数据库连接被拒绝”的错误时,这意味着您的应用程序尝试连接数据库时未能成功建立连接。这种错误通常由以下几种原因造成:数据库服务未启动:确认数据库服务(如MySQL、PostgreSQL等)正在运行。您可以在服务器上使用命令行工具检查服务的状态,例如对于MyS......
  • 网站提示“Timeout:数据库连接超时”错误如何解决
    当您遇到“Timeout:数据库连接超时”的错误时,这意味着应用程序尝试连接数据库的时间超过了设定的超时时间。这种错误通常表明存在网络延迟、服务器负载过高或者其他影响连接速度的问题。以下是解决此类问题的一些步骤:基础排查检查数据库服务状态:确认数据库服务正在运行,并且没......