博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
当Python字符串遇上MySQL
阅读量:2446 次
发布时间:2019-05-10

本文共 4193 字,大约阅读时间需要 13 分钟。

学习的时候我喜欢对比,MySQL和Oracle比,Python和MySQL比,总能有一些收获,也有了新的理解。

今天整理这部分内容的时候,我发现Python和MySQL还是有很多相似之处。学习一门语言,一个数据库,字符串的处理都是一个相对重要的部分,所以我决定对比一下两者的差别。

下面的演示会一边Python,一边MySQL,所以按照这个思路来看就不会感觉突兀了。

转义字符

>>> print '\\'

\
mysql> select '\\';
+---+
| \ |
+---+
| \ |
+---+
>>> print '\"'
"
mysql> select '\"';
+---+
| " |
+---+
| " |
+---+
>>> print '\''
'
mysql> select '\'';
+---+
| ' |
+---+
| ' |
+---+

字符串拼接

>>> x = 'hello'
>>> y = 'tester'
>>> z = x + y
>>> print z
hellotester
set @x='hello';
set @y='tester';
mysql> select @x;
+-------+
| @x    |
+-------+
| hello |
mysql> select @y;
+--------+
| @y     |
+--------+
| tester |
+--------+
mysql> select concat(@x,@y);
+---------------+
| concat(@x,@y) |
+---------------+
| hellotester   |
+---------------+

字符串复制

>>> print '#'*20
####################
mysql> select repeat('#',20);
+----------------------+
| repeat('#',20)       |
+----------------------+
| #################### |
+----------------------+
>>> print ' '*20 + 'end'
                    end
mysql> select space(20);
+----------------------+
| space(20)            |
+----------------------+
|                      |
+----------------------+
                    

字符串截取

>>> name = 'yangjianrong'
>>> name[0]
'y'
>>> name[-1]
'g'
>>> name[1]
'a'
>>> name[1:4]
'ang'
>>> name[:]
'yangjianrong'
>>>
>>> name[1:4:2]
'ag'
mysql> set @name:='yangjianrong';
mysql> select left(@name,1);         
+---------------+
| left(@name,1) |
+---------------+
| y             |
+---------------+
mysql> select right(@name,1);
+----------------+
| right(@name,1) |
+----------------+
| g              |
+----------------+
mysql> select substring(@name,2,3);
+----------------------+
| substring(@name,2,3) |
+----------------------+
| ang                  |
+----------------------+
mysql> select substring(@name,1);
+--------------------+
| substring(@name,1) |
+--------------------+
| yangjianrong       |
+--------------------+
或者使用mid
mysql> select mid(@name,2,3);         
+----------------+
| mid(@name,2,3) |
+----------------+
| ang            |
+----------------+
mysql>  select mid(@name,1);         
+--------------+
| mid(@name,1) |
+--------------+
| yangjianrong |
+--------------+
>>> name
'yangjianrong'
>>> print '%s' %name
yangjianrong

字符串格式化,匹配

>>> '{name},{alias}'.format(name='yangjianrong',alias='jeanron100')    
'yangjianrong,jeanron100'
>>>
mysql>  select concat(insert(@name,1,4,'yangjianrong'),insert(@alias,1,5,'jeanron100')) comm;
+------------------------+
| comm                   |
+------------------------+
| yangjianrongjeanron100 |
+------------------------+
字符串长度>>> ba
'this is a test bar'
>>> len(ba)
18
mysql> select length(@ba);

字符串空格处理

>>> s = ' abc '

>>> s.lstrip()
'abc '
>>> s.rstrip()
' abc'
>>> s.strip()
'abc'
>>>
mysql> set @s=' abc ';
Query OK, 0 rows affected (0.00 sec)
mysql> select ltrim(@s);
+-----------+
| ltrim(@s) |
+-----------+
| abc       |
+-----------+
1 row in set (0.00 sec)
mysql> select rtrim(@s);
+-----------+
| rtrim(@s) |
+-----------+
|  abc      |
+-----------+
1 row in set (0.00 sec)
mysql> select trim(@s);
+----------+
| trim(@s) |
+----------+
| abc      |
+----------+
1 row in set (0.00 sec)
字符串匹配
>>> l = ['a','b','c']
>>> ''.join(l)
'abc'
>>> '*'.join(l)
'a*b*c'
mysql> select concat_ws(',','a','b','c','d','e') comm;
+-----------+
| comm      |
+-----------+
| a,b,c,d,e |
+-----------+
>>> s = 'a b c d e '
>>> s.split(' ')
['a', 'b', 'c', 'd', 'e', '']
mysql> set @s='a b c d e ';
Query OK, 0 rows affected (0.00 sec)
mysql> select replace(@s,' ',',');
+---------------------+
| replace(@s,' ',',') |
+---------------------+
| a,b,c,d,e,          |
+---------------------+

字符串复制

>>> s = 'aabbcc'
>>> s.replace('aa','tt')
'ttbbcc'
mysql> set @s='aabbcc';
Query OK, 0 rows affected (0.00 sec)
mysql> select replace(@s,'aa','tt');
+-----------------------+
| replace(@s,'aa','tt') |
+-----------------------+
| ttbbcc                |
+-----------------------+
 字符串编码
>>> s.encode('utf8')
'aabbcc'
mysql> select  convert(@s using utf8);
+------------------------+
| convert(@s using utf8) |
+------------------------+
| aabbcc                 |
+------------------------+

判断字符串开始匹配的字符

>>> s.startswith('aa')
True
mysql> SELECT LOCATE('aa',@s,1);  
+-------------------+
| LOCATE('aa',@s,1) |
+-------------------+
|                 1 |
+-------------------+

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23718752/viewspace-2146359/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23718752/viewspace-2146359/

你可能感兴趣的文章
javascript 编码_带类JavaScript编码
查看>>
dojo ajax 传参_使用Dojo动画AJAX记录删除
查看>>
unity 施加力量_在空块元素上施加宽度
查看>>
内核标头和开发包_PHP标头和流行的Mime类型
查看>>
preferreds-color-scheme:CSS媒体查询
查看>>
CSS更喜欢减少运动的媒体查询
查看>>
sh脚本和bash脚本_响应Bash脚本中的提示
查看>>
git 获取某个分支_获取Git分支在某个日期签出
查看>>
api.ajax和ajax_实施Google AJAX搜索API
查看>>
apache 下载 速度_使用Apache限制下载速度
查看>>
mootools_带有MooStarRating的MooTools星级
查看>>
cfs_quota_Mobile Safari中的QUOTA_EXCEEDED_ERR
查看>>
mootools 获取类名_使用MooTools创建命名空间的类
查看>>
php文件上传 覆盖上传_使用PHP上传基本文件
查看>>
mootools_MooTools LinkAlert简介
查看>>
mootools_使用MooTools进行评论预览
查看>>
webkit img 边框_修复WebKit Mobile中的按钮边框
查看>>
safari电话号码变色_移动Safari中的电话号码检测
查看>>
使用.htaccess阻止JavaScript热链接
查看>>
.htaccess文件_WordPress的.htaccess文件是天才
查看>>