mysql小技巧

博客介绍了MySQL的相关技巧,包括插入数据并为实体类主键赋值的两种方法,在application.yml配置文件中进行SQL优化,还列举了20种内置函数的使用,如字符串大小写转换、拼接等,同时提到联合表查询时表名和列名用单字母别名可提高查询速度。

插入数据并返回为实体类中主键赋值 方法一:

<insert id="saveUser" parameterType="User">
   <selectKey  keyColumn="id" resultType="int" keyProperty="id" order="AFTER" >
    select last_insert_id()
    </selectKey>
    insert into t_user (name,sex,password,birthday,photo)values (#{name},#{sex},#{password},#{birthday},#{photo})
</insert>

插入数据并返回为实体类中主键赋值 方法二:

<insert id="saveUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
    insert into t_user (name,sex,password,birthday,photo)values (#{name},#{sex},#{password},#{birthday},#{photo})
</insert>

sql优化:application.yml配置文件中加入 mybatis:executor-type: batch(批量删除)

  • 内置函数
    1.lower(column|str):将字符串参数值转换为全小写字母后返回
    2、upper(column|str):将字符串参数值转换为全大写字母后返回
    3、concat(column|str1, column|str2,…):将多个字符串参数首尾相连后返回;如果有任何参数为null,则函数返回null;如果参数是数字,则自动转换为字符串
    4、concat_ws(separator,str1,str2,…):将多个字符串参数以给定的分隔符separator首尾相连后返回!!也就是函数圆括号里的第一个项目用来指定分隔符;注意:如果有任何参数为null,则函数不返回null,而是直接忽略它
    5.substr(str,pos[,len]):从源字符串str中的指定位置pos开始取一个字串并返回注意:①len指定子串的长度,如果省略则一直取到字符串的末尾;len为负值表示从源字符串的尾部开始取起。②函数SUBSTR()是函数SUBSTRING()的同义词。
    6、length(str):返回字符串的存储长度 注意:编码方式不同字符串的存储长度就不一样(‘你好’:utf8是6,gbk是4)
    7、char_length(str):返回字符串中的字符个数
    8、instr(str, substr):从源字符串str中返回子串substr第一次出现的位置
    9、lpad(str, len, padstr):在源字符串的左边填充给定的字符padstr到指定的长度len,返回填充后的字符串
    10、rpad(str, len, padstr):在源字符串的右边填充给定的字符padstr到指定的长度len,返回填充后的字符串
    11、trim([{BOTH | LEADING | TRAILING} [remstr] FROM] str), trim([remstr FROM] str):从源字符串str中去掉两端、前缀或后缀字符remstr并返回;如果不指定remstr,则去掉str两端的空格;不指定BOTH、LEADING、TRAILING ,则默认为 BOTH。
    12、replace(str, from_str, to_str):在源字符串str中查找所有的子串form_str(大小写敏感),找到后使用替代字符串to_str替换它。返回替换后的字符串
    13、ltrim(str),rtrim(str):去掉字符串的左边或右边的空格(左对齐、右对齐)
    14、repeat(str, count):将字符串str重复count次后返回
    15、reverse(str):将字符串str反转后返回
    16、FORMAT(X,D[,locale]):以格式‘#,###,###.##’格式化数字X,D指定小数位数,locale指定国家语言(默认的locale为en_US)
    17、SPACE(N):返回由N个空格构成的字符串
    18、LEFT(str, len):返回最左边的len长度的子串
    19、RIGHT(str, len):返回最右边的len长度的子串
    20、STRCMP(expr1,expr2):如果两个字符串是一样的则返回0;如果第一个小于第二个则返回-1;否则返回1

注意:联合表的查询中,表名和列名以一个字母为别名可提高1.5倍查询速度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值