zoukankan      html  css  js  c++  java
  • MySQL学习(十一)

    MySQL的函数
    1 数学函数
    2 字符串函数
    3 日期和时间函数
    4 条件判断函数
    5 系统信息函数
    6 加密解密函数
    7 其他函数

    2 字符串函数
    length计算的是字节长度
    char_length计算的是字符数

    mysql> select tname,length(tname),char_length(tname) from t;
    

    题目:某网站有email字段存邮箱地址,想调查163,126,qq,gmail邮箱的比例

     select *,right(email,length(email)-position('@' in email)) from number;
    


    可以修改表结构
    把email拆成@前后2部分,放在两个列

    题目:
    新建一个表,插入如下数据

    统计每个周的加班时间

    mysql> select sum(num),week(dt) as wk from overtime group by wk;
    

    md5加密算法
    1 不可逆
    2 碰撞性低

    有没用md5重复的不同字符串哪?
    答:有,但是寻找的过程,非常艰苦。

    系统调试函数
    user()函数返回“用户及所在的主机”,判断自己的身份
    database(),返回我当前正在操作的库名
    version() 查看当前MySQL的版本号

    如果MySQL函数和PHP函数都实现某个功能,优先用哪一个?
    1 MySQL的函数肯定是要影响查询速度,应该在建表时,通过合理的表结构减少函数的使用。比如email,按照@前后拆分
    2 如果确实要用函数,比如时间的格式化,在MySQL里用date_format,在php里用date可以实现,优先放在业务逻辑层,即php层处理。
    3 在查询时使用了函数,最大的一个坏处,以date_fromat(A),则A列的索引将无法使用。
    如果你针对某列查询,而此列用上了函数判断,此列将不再使用索引。
    举例

    select name,email from table where right(position(email))='qq.com';
    

    email列是有索引的,可以加快查询速度,但因为你使用的并不是email列,而是函数处理后的email的返回值。因此,email列的查询就非常缓慢了。
    总结:where条件中,对某列使用了函数,则此列的索引不发挥作用。

  • 相关阅读:
    stack的基本使用方式
    洛谷 P2356 弹珠游戏
    关于字符串数组的一些操作
    递归分解因数
    筛法求素数模板
    世界顶级精英们的人生哲学!(转)
    Oracle 中重新编译无效的存储过程, 或函数、触发器等对象(转)
    由于没有安装音量控制程序,WINDOWS无法在任务栏上显示音量控制(转)
    Maximo(转)
    oracle 中nvl和sql server中isnull功能一样的
  • 原文地址:https://www.cnblogs.com/Manual-Linux/p/10212263.html
Copyright © 2011-2022 走看看