百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> 详解mysql常用功能
分享文章到:

详解mysql常用功能

发布时间:12/01 来源:未知 浏览: 关键词:

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;


一、根基部分

  • 一、使用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;

以上就是详解mysql常用功效的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有151人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板