Home >Database >Mysql Tutorial >MySQL学习笔记2_MySQL

MySQL学习笔记2_MySQL

WBOY
WBOYOriginal
2016-06-01 13:26:411189browse

bitsCN.com 数据查询 在查询数据库中的数据时,如果数据中涉及中文字符串,有可能在输出时会出现乱码,那么最后在执行查询操作之前,通过set names语句设置其编码格式,然后在输出中文字符串就不会出现乱码了。带IN关键字的查询
格式:SELECT * FROM 表名 WHERE 条件 [NOT] IN (元素1,元素2, 元素3……,元素n);带BETWEEN AND 的范围查询
格式:SELECT * FROM 表名 WHERE 条件 [NOT] BETWEEN 取值1 AND 取值2;使用DISTINCT关键字去除结果中的重复行
格式:select distinct 字段名 from 表名;单独使用GROUP BY关键字,查询结果只显示每组的一条记录。使用GROUP BY关键字和GROUP_CONCAT()函数查询,可以将每个组中的所有字段值都显示出来。聚合函数查询 COUNT()函数,对于除“*”以外的任何参数,返回所选集合中非NULL值的行的数目;对于参数“*”,返回选择集合中所有行的数目,包含NULL值的行。没有WHERE子句的COUNT(*)是经过内部优化的,能够快速地返回所有的记录总数。SUM()函数可以求出表中某个字段取值的总和。AVG()函数可以求出表中某个字段取值的平均值。连接查询
内连接查询
内连接是最普遍的连接类型,而且是最匀称的,因为它们要求构成连接的每一部分的每个表的匹配,不匹配的行将被排除。
内连接的最常见的例子是相等连接,也就是连接后的表中的某个字段与每个表中的都相同。这种情况下,最后的结果集只包含参加连接的表中与指定字段相符的行。外连接查询
外连接是指使用OUTER JOIN关键字将两个表连接起来。外连接生成的结果集不仅包含符合连接条件的行数据,而且还包括左表(左外连接时的表)、右表(右外连接时的表)或两边连接表(全外连接时的表)中所有的数据行。语法格式如下:
SELECT 字段名称 FROM 表名1 LEFT|RIGHT JOIN 表名2 ON 表名1.字段名1=表名2.属性名2;
外连接分为左外连接(LEFT JOIN)、右外连接(RIGHT JOIN)和全外连接3种类型。 左外连接(LEFT JOIN)是指将左表中的所有数据分别与右表中的每条数据进行连接组合,返回的结果除内连接的数据外,还包括左表中不符合条件的数据,并在右表的相应列中添加NULL值。
右外连接(RIGHT JOIN)是指将右表中的所有数据分别与左表中的每条数据进行连接组合,返回的结果除内连接的数据外,还包括右表中不符合条件的数据,并在左表的相应列中添加NULL。子查询 带EXISTS关键字的 子查询,返回结果值为true或者false。合并结果查询 UNION关键字是将所有的查询结果合并到一起,然后去除相同记录;而UNION ALL关键字则只是简单的将结果合并到一起。定义表和字段的别名 直接在表名后添加一个别名,在之后的操作中即可使用别名;字段取别名的基本形式:字段名 [AS] 别名使用正则表达式查询 正则表达式是用某种模式去匹配一类字符串的一个方式。正则表达式的查询能力比通配字符的查询能力更强大,而且更加的灵活。基本形式:字段名 REGEXP '匹配方式';

正则表达式的模式字符:

模式字符

含义

应用举例

^

匹配以特定字符或字符串开头的记录

使用“^”表达式查询tb_book表中books字段以字母php开头的记录,语句如下:

select books from tb_book where books REGEXP '^php';

$

匹配以特定符或字符串结尾的记录

使用“$”表达式查询tb_book表中books字段以“模块”结尾的记录,语句如下:

select books from tb_book where books REGEXP '模块$';

.

匹配字符串的任意一个字符,包括回车和换行

使用“.”表达式来查询tb_book表中books字段中包含P字符的记录,语句如下:

select books from tb_book where books REGEXP 'P.';

[字符集合]

匹配“字符集合”中的任意一个字符

使用“[]”表达式来查询tb_book表中books字段中包含PCA字符的记录,语句如下:

select books from tb_book where books REGEXP '[PCA]';

[^字符集合]

匹配除“字符集合”以外的任意一个字符

查询tb_program表中talk字段值中包含cz字母以外的记录,语句如下:

select talk from tb_program where talk regexp '[^c-z]';

S1|S2|S3

匹配S1、S2和S3中的任意一个字符串

查询tb_books表中books字段中包含php、c或者java字符中任意一个字符的记录,语句如下:

select books from tb_books where books regexp 'php|c|java';

*

匹配多个该符号之前的字符,包括0和1个

使用“*”表达式查询tb_book表中books字段中A字符前出现过J字符的记录,语句如下:

select books from tb_book where books regexp 'J*A';

+

匹配多个该符号之前的字符,包括1个

使用“+”表达式来查询tb_book表中books字段中A字符前面至少出现过一个J字符,语句如下:

select books from tb_book where books regexp 'J+A';

字符串{N}

匹配字符串出现N次

使用{N表达式查询tb_book表中books字段中连续出现3次a字符的记录,语句如下:

select books from tb_book where books regexp 'a{3}';

字符串{M,N}

匹配字符串出现至少M次,最多N次

使用{M,N}表达式查询tb_book表中books字段中最少出现2次,最多出现4次a字符的记录,语句如下:

select books from tb_book where books regexp 'a{2,4}';

这里的正则表达式与Java语言、PHP语言等编程语言中的正则表达式基本一致。

bitsCN.com
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn