MySQL学习笔记2

页面导航:首页 > 数据库 > Mysql > MySQL学习笔记2

MySQL学习笔记2

来源: 作者: 时间:2016-02-03 08:56 【

数据查询在查询数据库中的数据时,如果数据中涉及中文字符串,有可能在输出时会出现乱码,那么最后在执行查询操作之前,通过set names语句设置其编码 26684;式,然后在输出中文字符
数据查询 在查询数据库中的数据时,如果数据中涉及中文字符串,有可能在输出时会出现乱码,那么最后在执行查询操作之前,通过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语言等语言中的正则表达式基本一致。

Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<