0

0

详解mysql常用功能

coldplay.xixi

coldplay.xixi

发布时间:2020-11-24 16:36:38

|

3788人浏览过

|

来源于csdn

转载

mysql视频教程栏目介绍mysql常用功能。

详解mysql常用功能

相关免费学习推荐:mysql视频教程

一、基础部分

  • 一、使用MySQL
    • 1.1、SELECT语句
    • 1.2、排序检索数据
    • 1.3、过滤数据
    • 1.4、数据过滤
    • 1.5、用通配符进行过滤
    • 1.6、用正则表达式进行搜索
      • 1.6.1 基本字符匹配
      • 1.6.2 进行OR 匹配
      • 1.6.3 匹配几个字符之一
      • 1.6.4 匹配范围
      • 1.6.5 匹配特殊字符
      • 1.6.6 匹配字符类
      • 1.6.7 匹配多个实例
      • 1.6.8 定位符
    • 1.7、创建计算字段

一、使用MySQL

连接到MySQL时不会由数据库打开,所以首先要做的就是打开一个数据库:
USE user
USE后面加上想要打开的数据库,如果不知道数据库的名字,使用SHOW DATABASES查看,使用SHOW TABLES可以查看一个数据库中的表,当然也可以查看表中的列SHOW user_id FROM user,它对每个字段返回一行,行中包含字段名、数据类型、是否允许NULL 、键信息、默认值以及其他信息(DESCRIBE user是上面语句的快捷方式)

1.1、SELECT语句

为了使用SELECT 检索表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择。
所需的列名在SELECT 关键字之后给出,FROM 关键字指出从其中检索数据的表名。
要想从一个表中检索多个列,使用相同的SELECT 语句。唯一的不同是必须在SELECT 关键字后给出多个列名,列名之间必须以逗号分隔。
使用DISTINCT关键字可以只检索出不同值的行,重复的不会再显示(注意: DISTINCT 关键字应用于所有列而不仅是前置它的列)
SELECT 语句返回所有匹配的行,它们可能是指定表中的每个行。为了返回第一行或前几行,可使用LIMIT 子句。
LIMIT 5 ,5 指示MySQL返回从行5开始的5行。第一个数为开始位置,第二个数为要检索的行数。

1.2、排序检索数据

为了明确地排序用SELECT 语句检索出的数据,可使用ORDER BY 子句。ORDER BY 子句取一个或多个列的名字,据此对输出进行排序。
为了按多个列排序,只要指定列名,列名之间用逗号分开即可。
数据排序不限于升序排序(从A 到Z )。这只是默认的排序顺序,还可以使用ORDER BY 子句以降序(从Z 到A )顺序排序。为了进行降序排序,必须指定DESC 关键字。(DESC 关键字只应用到直接位于其前面的列名)

1.3、过滤数据

本章将讲授如何使用SELECT 语句的WHERE 子句指定搜索条件。在SELECT 语句中,数据根据WHERE 子句中指定的搜索条件进行过滤。WHERE 子句在表名(FROM 子句)之后给出。在同时使用ORDER BY 和WHERE 子句时,应该让ORDER BY 位于WHERE 之后。WHERE子句操作符如下图所示:
在这里插入图片描述

1.4、数据过滤

本章讲授如何组合WHERE 子句以建立功能更强的更高级的搜索条件。我们还将学习如何使用NOT 和IN 操作符。
AND操作符计算次序高于OR操作符

1.5、用通配符进行过滤

本章介绍什么是通配符、如何使用通配符以及怎样使用LIKE 操作符进行通配搜索,以便对数据进行复杂过滤。
为在搜索子句中使用通配符,必须使用LIKE 操作符。LIKE 指示MySQL,后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较。
最常使用的通配符是百分号(% )。在搜索串中,% 表示任何字符出现任意次数 。( 根据MySQL的配置方式,搜索可以是区分大小写的。如果区分大小写)。
另一个有用的通配符是下划线(_ )。下划线的用途与% 一样,但下划线只匹配单个字符而不是多个字符。
正如所见,MySQL的通配符很有用。但这种功能是有代价的:通配符搜索的处理一般要比前面讨论的其他搜索所花时间更长。这里给出一些使用通配符要记住的技巧。
1.不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。
2.在确实需要使用通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起来是最慢的。
3.仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。

1.6、用正则表达式进行搜索

1.6.1 基本字符匹配

我们从一个非常简单的例子开始。下面的语句检索列prod_name 包含文本1000 的所有行:
SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘1000’
ORDER BY prod_name;

它告诉MySQL:REGEXP 后所跟的东西作为正则表达式(与文字正文1000 匹配的一个正则表达式)处理。

SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘.000’
ORDER BY prod_name;

. 是正则表达式语言中一个特殊的字符。它表示匹配任意一个字符 ,因此,1000 和2000 都匹配且返回。
MySQL中的正则表达式匹配(自版本3.23.4后)不区分大小写(即,大写和小写都匹配)。为区分大小写,可使用BINARY 关键字,如WHERE prod_name REGEXP BINARY ‘JetPack .000’ 。

1.6.2 进行OR 匹配

为搜索两个串之一(或者为这个串,或者为另一个串),使用|,如下所示:
SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘1000|2000’
ORDER BY prod_name;

1.6.3 匹配几个字符之一

如果你只想匹配特定的字符,怎么办?可通过指定一组用[和]括起来的字符来完成,如下所示:
SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘[123] Ton’
ORDER BY prod_name;
字符集合也可以被否定,即,它们将匹配除指定字符外的任何东西。为否定一个字符集,在集合的开始处放置一个^即可。因此,尽管[123] 匹配字符1 、2 或3 ,但[^123] 却匹配除这些字符外的任何东西。

1.6.4 匹配范围

SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘[1-5] Ton’
ORDER BY prod_name;

1.6.5 匹配特殊字符

正则表达式语言由具有特定含义的特殊字符构成。我们已经看到. 、[ ] 、| 和- 等,还有其他一些字符。请问,如果你需要匹配这些字符,应该怎么办呢?例如,如果要找出包含. 字符的值,怎样搜索?为了匹配特殊字符,必须用\\为前导。\\- 表示查找- ,\\. 表示查找. 。

SELECT vend_nameFROM vendorsWHERE vend_name REGEXP '\\.'ORDER BY vend_name;

正则表达式内具有特殊意义的所有字符都必须以这种方式转义。这包括. 、| 、[ ] 以及迄今为止使用过的其他特殊字符。

1.6.6 匹配字符类

存在找出你自己经常使用的数字、所有字母字符或所有数字字母字符等的匹配。为更方便工作,可以使用预定义的字符集,称为字符类 (characterclass)。
在这里插入图片描述

1.6.7 匹配多个实例

目前为止使用的所有正则表达式都试图匹配单次出现。如果存在一个匹配,该行被检索出来,如果不存在,检索不出任何行。但有时需要对匹配的数目进行更强的控制。例如,你可能需要寻找所有的数,不管数中包含多少数字,或者你可能想寻找一个单词并且还能够适应一个尾随的s (如果存在),等等。
在这里插入图片描述
在这里插入图片描述

SELECT prod_nameFROM productsWHERE prod_name REGEXP '\\([0-9] sticks?\\)'ORDER BY prod_name;正则表达式\\([0-9]sticks?\\) 需要解说一下。\\( 匹配(,[0-9] 匹配任意数字(这个例子中为1和5),sticks? 匹配stick 和sticks (s 后的? 使s 可选,因为? 匹配它前面的任何字符的0次或1次出现),\\) 匹配) 。没有? ,匹配stick 和sticks 会非常困难。

以下是另一个例子。这次我们打算匹配连在一起的4位数字:

SELECT prod_nameFROM productsWHERE prod_name REGEXP '[[:digit:]]{4}'ORDER BY prod_name;

1.6.8 定位符

目前为止的所有例子都是匹配一个串中任意位置的文本。为了匹配特定位置的文本,需要使用下表列出的定位符。
在这里插入图片描述

例如,如果你想找出以一个数(包括以小数点开始的数)开始的所有产品,怎么办?简单搜索[0-9\.] (或[[:digit:]\. ])不行,因为它将在文本内任意位置查找匹配。解决办法是使用^定位符,如下所示:

SELECT prod_nameFROM productsWHERE prod_name REGEXP '^[0-9\\.]'ORDER BY prod_name;

1.7、创建计算字段

存储在表中的数据都不是应用程序所需要的。我们需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化。这就是计算字段发挥作用的所在了。与前面各章介绍过的列不同,计算字段并不实际存在于数据库表中。计算字段是运行时在SELECT 语句内创建的。
在MySQL的SELECT 语句中,可使用Concat() 函数来拼接两个列。

SELECT Concat(vend_name, ' (', vend_country, ')')FROM vendorsORDER BY vend_name;

过删除数据右侧多余的空格来整理数据,这可以使用MySQL的RTrim() 函数来完成,如下所示:

SELECT Concat(RTrim(vend_name), ' (', RTrim(vend_country), ')')FROM vendorsORDER BY vend_name;

别名 (alias)是一个字段或值的替换名。别名用AS 关键字赋予。请看下面的SELECT 语句:

SELECT Concat(RTrim(vend_name), ' (', RTrim(vend_country), ')') ASvend_titleFROM vendorsORDER BY vend_name;

               

Layer功能齐全的常用弹出框
Layer功能齐全的常用弹出框

Layer功能齐全的常用弹出框

下载


一、基础部分

  • 一、使用MySQL
    • 1.1、SELECT语句
    • 1.2、排序检索数据
    • 1.3、过滤数据
    • 1.4、数据过滤
    • 1.5、用通配符进行过滤
    • 1.6、用正则表达式进行搜索
      • 1.6.1 基本字符匹配
      • 1.6.2 进行OR 匹配
      • 1.6.3 匹配几个字符之一
      • 1.6.4 匹配范围
      • 1.6.5 匹配特殊字符
      • 1.6.6 匹配字符类
      • 1.6.7 匹配多个实例
      • 1.6.8 定位符
    • 1.7、创建计算字段

一、使用MySQL

连接到MySQL时不会由数据库打开,所以首先要做的就是打开一个数据库:
USE user
USE后面加上想要打开的数据库,如果不知道数据库的名字,使用SHOW DATABASES查看,使用SHOW TABLES可以查看一个数据库中的表,当然也可以查看表中的列SHOW user_id FROM user,它对每个字段返回一行,行中包含字段名、数据类型、是否允许NULL 、键信息、默认值以及其他信息(DESCRIBE user是上面语句的快捷方式)

1.1、SELECT语句

为了使用SELECT 检索表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择。
所需的列名在SELECT 关键字之后给出,FROM 关键字指出从其中检索数据的表名。
要想从一个表中检索多个列,使用相同的SELECT 语句。唯一的不同是必须在SELECT 关键字后给出多个列名,列名之间必须以逗号分隔。
使用DISTINCT关键字可以只检索出不同值的行,重复的不会再显示(注意: DISTINCT 关键字应用于所有列而不仅是前置它的列)
SELECT 语句返回所有匹配的行,它们可能是指定表中的每个行。为了返回第一行或前几行,可使用LIMIT 子句。
LIMIT 5 ,5 指示MySQL返回从行5开始的5行。第一个数为开始位置,第二个数为要检索的行数。

1.2、排序检索数据

为了明确地排序用SELECT 语句检索出的数据,可使用ORDER BY 子句。ORDER BY 子句取一个或多个列的名字,据此对输出进行排序。
为了按多个列排序,只要指定列名,列名之间用逗号分开即可。
数据排序不限于升序排序(从A 到Z )。这只是默认的排序顺序,还可以使用ORDER BY 子句以降序(从Z 到A )顺序排序。为了进行降序排序,必须指定DESC 关键字。(DESC 关键字只应用到直接位于其前面的列名)

1.3、过滤数据

本章将讲授如何使用SELECT 语句的WHERE 子句指定搜索条件。在SELECT 语句中,数据根据WHERE 子句中指定的搜索条件进行过滤。WHERE 子句在表名(FROM 子句)之后给出。在同时使用ORDER BY 和WHERE 子句时,应该让ORDER BY 位于WHERE 之后。WHERE子句操作符如下图所示:
在这里插入图片描述

1.4、数据过滤

本章讲授如何组合WHERE 子句以建立功能更强的更高级的搜索条件。我们还将学习如何使用NOT 和IN 操作符。
AND操作符计算次序高于OR操作符

1.5、用通配符进行过滤

本章介绍什么是通配符、如何使用通配符以及怎样使用LIKE 操作符进行通配搜索,以便对数据进行复杂过滤。
为在搜索子句中使用通配符,必须使用LIKE 操作符。LIKE 指示MySQL,后跟的搜索模式利用通配符匹配而不是直接相等匹配进行比较。
最常使用的通配符是百分号(% )。在搜索串中,% 表示任何字符出现任意次数 。( 根据MySQL的配置方式,搜索可以是区分大小写的。如果区分大小写)。
另一个有用的通配符是下划线(_ )。下划线的用途与% 一样,但下划线只匹配单个字符而不是多个字符。
正如所见,MySQL的通配符很有用。但这种功能是有代价的:通配符搜索的处理一般要比前面讨论的其他搜索所花时间更长。这里给出一些使用通配符要记住的技巧。
1.不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。
2.在确实需要使用通配符时,除非绝对有必要,否则不要把它们用在搜索模式的开始处。把通配符置于搜索模式的开始处,搜索起来是最慢的。
3.仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。

1.6、用正则表达式进行搜索

1.6.1 基本字符匹配

我们从一个非常简单的例子开始。下面的语句检索列prod_name 包含文本1000 的所有行:
SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘1000’
ORDER BY prod_name;

它告诉MySQL:REGEXP 后所跟的东西作为正则表达式(与文字正文1000 匹配的一个正则表达式)处理。

SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘.000’
ORDER BY prod_name;

. 是正则表达式语言中一个特殊的字符。它表示匹配任意一个字符 ,因此,1000 和2000 都匹配且返回。
MySQL中的正则表达式匹配(自版本3.23.4后)不区分大小写(即,大写和小写都匹配)。为区分大小写,可使用BINARY 关键字,如WHERE prod_name REGEXP BINARY ‘JetPack .000’ 。

1.6.2 进行OR 匹配

为搜索两个串之一(或者为这个串,或者为另一个串),使用|,如下所示:
SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘1000|2000’
ORDER BY prod_name;

1.6.3 匹配几个字符之一

如果你只想匹配特定的字符,怎么办?可通过指定一组用[和]括起来的字符来完成,如下所示:
SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘[123] Ton’
ORDER BY prod_name;
字符集合也可以被否定,即,它们将匹配除指定字符外的任何东西。为否定一个字符集,在集合的开始处放置一个^即可。因此,尽管[123] 匹配字符1 、2 或3 ,但[^123] 却匹配除这些字符外的任何东西。

1.6.4 匹配范围

SELECT prod_name
FROM products
WHERE prod_name REGEXP ‘[1-5] Ton’
ORDER BY prod_name;

1.6.5 匹配特殊字符

正则表达式语言由具有特定含义的特殊字符构成。我们已经看到. 、[ ] 、| 和- 等,还有其他一些字符。请问,如果你需要匹配这些字符,应该怎么办呢?例如,如果要找出包含. 字符的值,怎样搜索?为了匹配特殊字符,必须用\\为前导。\\- 表示查找- ,\\. 表示查找. 。

SELECT vend_nameFROM vendorsWHERE vend_name REGEXP '\\.'ORDER BY vend_name;

正则表达式内具有特殊意义的所有字符都必须以这种方式转义。这包括. 、| 、[ ] 以及迄今为止使用过的其他特殊字符。

1.6.6 匹配字符类

存在找出你自己经常使用的数字、所有字母字符或所有数字字母字符等的匹配。为更方便工作,可以使用预定义的字符集,称为字符类 (characterclass)。
在这里插入图片描述

1.6.7 匹配多个实例

目前为止使用的所有正则表达式都试图匹配单次出现。如果存在一个匹配,该行被检索出来,如果不存在,检索不出任何行。但有时需要对匹配的数目进行更强的控制。例如,你可能需要寻找所有的数,不管数中包含多少数字,或者你可能想寻找一个单词并且还能够适应一个尾随的s (如果存在),等等。
在这里插入图片描述
在这里插入图片描述

SELECT prod_nameFROM productsWHERE prod_name REGEXP '\\([0-9] sticks?\\)'ORDER BY prod_name;正则表达式\\([0-9]sticks?\\) 需要解说一下。\\( 匹配(,[0-9] 匹配任意数字(这个例子中为1和5),sticks? 匹配stick 和sticks (s 后的? 使s 可选,因为? 匹配它前面的任何字符的0次或1次出现),\\) 匹配) 。没有? ,匹配stick 和sticks 会非常困难。

以下是另一个例子。这次我们打算匹配连在一起的4位数字:

SELECT prod_nameFROM productsWHERE prod_name REGEXP '[[:digit:]]{4}'ORDER BY prod_name;

1.6.8 定位符

目前为止的所有例子都是匹配一个串中任意位置的文本。为了匹配特定位置的文本,需要使用下表列出的定位符。
在这里插入图片描述

例如,如果你想找出以一个数(包括以小数点开始的数)开始的所有产品,怎么办?简单搜索[0-9\.] (或[[:digit:]\. ])不行,因为它将在文本内任意位置查找匹配。解决办法是使用^定位符,如下所示:

SELECT prod_nameFROM productsWHERE prod_name REGEXP '^[0-9\\.]'ORDER BY prod_name;

1.7、创建计算字段

存储在表中的数据都不是应用程序所需要的。我们需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化。这就是计算字段发挥作用的所在了。与前面各章介绍过的列不同,计算字段并不实际存在于数据库表中。计算字段是运行时在SELECT 语句内创建的。
在MySQL的SELECT 语句中,可使用Concat() 函数来拼接两个列。

SELECT Concat(vend_name, ' (', vend_country, ')')FROM vendorsORDER BY vend_name;

过删除数据右侧多余的空格来整理数据,这可以使用MySQL的RTrim() 函数来完成,如下所示:

SELECT Concat(RTrim(vend_name), ' (', RTrim(vend_country), ')')FROM vendorsORDER BY vend_name;

别名 (alias)是一个字段或值的替换名。别名用AS 关键字赋予。请看下面的SELECT 语句:

SELECT Concat(RTrim(vend_name), ' (', RTrim(vend_country), ')') ASvend_titleFROM vendorsORDER BY vend_name;

相关专题

更多
php源码安装教程大全
php源码安装教程大全

本专题整合了php源码安装教程,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

php网站源码教程大全
php网站源码教程大全

本专题整合了php网站源码相关教程,阅读专题下面的文章了解更多详细内容。

4

2025.12.31

视频文件格式
视频文件格式

本专题整合了视频文件格式相关内容,阅读专题下面的文章了解更多详细内容。

7

2025.12.31

不受国内限制的浏览器大全
不受国内限制的浏览器大全

想找真正自由、无限制的上网体验?本合集精选2025年最开放、隐私强、访问无阻的浏览器App,涵盖Tor、Brave、Via、X浏览器、Mullvad等高自由度工具。支持自定义搜索引擎、广告拦截、隐身模式及全球网站无障碍访问,部分更具备防追踪、去谷歌化、双内核切换等高级功能。无论日常浏览、隐私保护还是突破地域限制,总有一款适合你!

7

2025.12.31

出现404解决方法大全
出现404解决方法大全

本专题整合了404错误解决方法大全,阅读专题下面的文章了解更多详细内容。

42

2025.12.31

html5怎么播放视频
html5怎么播放视频

想让网页流畅播放视频?本合集详解HTML5视频播放核心方法!涵盖<video>标签基础用法、多格式兼容(MP4/WebM/OGV)、自定义播放控件、响应式适配及常见浏览器兼容问题解决方案。无需插件,纯前端实现高清视频嵌入,助你快速打造现代化网页视频体验。

4

2025.12.31

关闭win10系统自动更新教程大全
关闭win10系统自动更新教程大全

本专题整合了关闭win10系统自动更新教程大全,阅读专题下面的文章了解更多详细内容。

3

2025.12.31

阻止电脑自动安装软件教程
阻止电脑自动安装软件教程

本专题整合了阻止电脑自动安装软件教程,阅读专题下面的文章了解更多详细教程。

3

2025.12.31

html5怎么使用
html5怎么使用

想快速上手HTML5开发?本合集为你整理最实用的HTML5使用指南!涵盖HTML5基础语法、主流框架(如Bootstrap、Vue、React)集成方法,以及无需安装、直接在线编辑运行的平台推荐(如CodePen、JSFiddle)。无论你是新手还是进阶开发者,都能轻松掌握HTML5网页制作、响应式布局与交互功能开发,零配置开启高效前端编程之旅!

2

2025.12.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.5万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 777人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号