您好,欢迎访问一九零五行业门户网

MySQL学习笔记2_MySQL

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
其它类似信息

推荐信息