zoukankan      html  css  js  c++  java
  • 贤者时间太久了么?--MySQL继续玩

    hi

    给自己放了大概三天的假,没有一点点防备,没有一点点准备,无意的

    是不是贤者时间过不去了我不知道啊。。。继续看东西吧

    1、MySQL

    -----运算符和函数-----

    字符函数,数值运算符,比较运算等

    ----字符函数

    ---

    CONCAT()--字符连接

    CONCAT_WS()--使用指定的分隔符进行字符连接

    mysql> SELECT CONCAT('imooc','-','MySQL');
    +-----------------------------+
    | CONCAT('imooc','-','MySQL') |
    +-----------------------------+
    | imooc-MySQL |
    +-----------------------------+

    mysql> USE TEST;
    Database changed
    mysql> SELECT * FROM TEST;
    +----+----------+
    | id | username |
    +----+----------+
    | 1 | Tom |
    | 2 | Ben |
    +----+----------+
    2 rows in set (0.02 sec)

    mysql> SELECT CONCAT(id,username) AS fullname FROM test;
    +----------+
    | fullname |
    +----------+
    | 1Tom |
    | 2Ben |
    +----------+

    以上是CONCAT()的实例,而CONCAT_WS()如下

    mysql> SELECT CONCAT_WS('-',id,username) FROM test;
    +----------------------------+
    | CONCAT_WS('-',id,username) |
    +----------------------------+
    | 1-Tom |
    | 2-Ben |
    +----------------------------+

    CONCAT_WS()需要至少三个参数,第一个是分隔符,后面才是需要连接的东西

    ---

    FORMAT(),数字格式化

    mysql> SELECT FORMAT(234234.23423,2);
    +------------------------+
    | FORMAT(234234.23423,2) |
    +------------------------+
    | 234,234.23 |
    +------------------------+

    就是标准化,当然是外国人那一套

    ---

    LOWER()&UPPER(),大小写变换

    ---

    LEFT()&RIGHT(),获取左右侧字符

    需要两位参数,从哪个字段取,从第几位开始的左右侧

    mysql> SELECT UPPER(LEFT('andy',1));
    +-----------------------+
    | UPPER(LEFT('andy',1)) |
    +-----------------------+
    | A |
    +-----------------------+

    ---

    LENGTH(),获取字符串长度。注意,空格也要算在内

    ---

    LTRIM(),RTRIM(),TRIM(),删除前/后/前后的空格

    TRIM还能删除其他字符

    mysql> SELECT TRIM(LEADING '!' FROM '!!!ANDY!!');
    +------------------------------------+
    | TRIM(LEADING '!' FROM '!!!ANDY!!') |
    +------------------------------------+
    | ANDY!! |
    +------------------------------------+
    1 row in set (0.00 sec)

    mysql> SELECT TRIM(BOTH '!' FROM '!!!ANDY!!');
    +---------------------------------+
    | TRIM(BOTH '!' FROM '!!!ANDY!!') |
    +---------------------------------+
    | ANDY |
    +---------------------------------+
    1 row in set (0.00 sec)

    mysql> SELECT TRIM(TRAILING '!' FROM '!!!ANDY!!');
    +-------------------------------------+
    | TRIM(TRAILING '!' FROM '!!!ANDY!!') |
    +-------------------------------------+
    | !!!ANDY |
    +-------------------------------------+
    1 row in set (0.00 sec)

    ---

    REPLACE()

    mysql> SELECT REPLACE('!!ANDY!SDL!!','!','');
    +--------------------------------+
    | REPLACE('!!ANDY!SDL!!','!','') |
    +--------------------------------+
    | ANDYSDL |
    +--------------------------------+
    1 row in set (0.00 sec)

    mysql> SELECT REPLACE('!!ANDY!SDL!!','!','LALAL');
    +-------------------------------------+
    | REPLACE('!!ANDY!SDL!!','!','LALAL') |
    +-------------------------------------+
    | LALALLALALANDYLALALSDLLALALLALAL |
    +-------------------------------------+
    1 row in set (0.00 sec)

    可以看到,替换是比较灵活的

    ---

    SUBSTRING()

    mysql> SELECT SUBSTRING('MYSQL','1','2');
    +----------------------------+
    | SUBSTRING('MYSQL','1','2') |
    +----------------------------+
    | MY |
    +----------------------------+
    1 row in set (0.00 sec)

    注意mysql是从1开始,不是从0开始数数

    ---

    做匹配

    mysql> SELECT 'mysql' LIKE 'M%';
    +-------------------+
    | 'mysql' LIKE 'M%' |
    +-------------------+
    | 1 |
    +-------------------+
    1 row in set (0.00 sec)

    mysql> SELECT * FROM test WHERE username LIKE '%m%';
    +----+----------+
    | id | username |
    +----+----------+
    | 1 | Tom |
    +----+----------+

    这里,%代表任意,类似window中的*

    _代表任意一个字符

    ----数值运算符以及函数

    几个很通用的函数简单的介绍下

    CEIL()-向上取整---------FLOOR()-向下取整

    DIV()-整数除法,也就是结果只有整数

    MOD()-取余数

    POWER()-幂运算

    ROUND()-四舍五入

    TRUNCATE()-数字截取(不再四舍五入)

    不是两位参数,就是一位参数,大家自己试试哈

    ----比较运算符与函数

    ---

    [NOT] BETWEEN...AND...

    mysql> SELECT 123 BETWEEN 2 AND 123123;
    +--------------------------+
    | 123 BETWEEN 2 AND 123123 |
    +--------------------------+
    | 1 |
    +--------------------------+

    ---

    [NOT] IN(),给定几个区间来做判断

    mysql> SELECT 123 IN(123,23,12);
    +-------------------+
    | 123 IN(123,23,12) |
    +-------------------+
    | 1 |
    +-------------------+
    1 row in set (0.00 sec)

    mysql> SELECT 123 IN(120,23,12);
    +-------------------+
    | 123 IN(120,23,12) |
    +-------------------+
    | 0 |
    +-------------------+

    ---

    IS [NOT] NULL,判断是空么

    mysql> SELECT 0 IS NULL;
    +-----------+
    | 0 IS NULL |
    +-----------+
    | 0 |
    +-----------+

    常用在检查是否为空

    mysql> SELECT * FROM test WHERE username IS NULL;
    Empty set (0.00 sec)

    ----日期时间函数

    ---

    NOW(),返回当时的日期和时间

    CURDATE(),CURTIME()

    ---

    DATE_ADD(),当前日期的变化

    mysql> SELECT DATE_ADD('2012-2-23', INTERVAL 234 DAY);
    +-----------------------------------------+
    | DATE_ADD('2012-2-23', INTERVAL 234 DAY) |
    +-----------------------------------------+
    | 2012-10-14 |
    +-----------------------------------------+
    1 row in set (0.00 sec)

    mysql> SELECT DATE_ADD('2012-2-23', INTERVAL -234 DAY);
    +------------------------------------------+
    | DATE_ADD('2012-2-23', INTERVAL -234 DAY) |
    +------------------------------------------+
    | 2011-07-04 |
    +------------------------------------------+
    1 row in set (0.00 sec)

    ---

    DATEDIFF(),得到两个日期间的差值

    mysql> SELECT DATEDIFF('2304-2-2','1234-3-22');
    +----------------------------------+
    | DATEDIFF('2304-2-2','1234-3-22') |
    +----------------------------------+
    | 390760 |
    +----------------------------------+
    1 row in set (0.02 sec)

    ---

    DATE_FORMAT(),日期的格式化,日期的格式是可以选的,也就是说日期的格式转换

    mysql> SELECT DATE_FORMAT('2013-2-22','%m/%d/%y');
    +-------------------------------------+
    | DATE_FORMAT('2013-2-22','%m/%d/%y') |
    +-------------------------------------+
    | 02/22/13 |
    +-------------------------------------+
    1 row in set (0.00 sec)

    ----信息函数

    USER(),VERSION(),DATEBASE(),CONNECTION_ID(),LAST_INSERT_ID()

    ----聚合函数

    只有一个返回值是他们的特点

    AVG(),COUNT(),MAX(),MIN(),SUM()

    直接调用可能会有错误,一般是针对数据表的字段进行的操作

    mysql> SELECT AVG(id) FROM test;
    +---------+
    | AVG(id) |
    +---------+
    | 1.5000 |
    +---------+

    ----加密函数

    MD5(),PASSWORD()

    mysql> SELECT MD5('HELLOWORLD');
    +----------------------------------+
    | MD5('HELLOWORLD') |
    +----------------------------------+
    | e81e26d88d62aba9ab55b632f25f117d |
    +----------------------------------+
    1 row in set (0.00 sec)

    mysql> SELECT PASSWORD('HELLOWORLD');
    +-------------------------------------------+
    | PASSWORD('HELLOWORLD') |
    +-------------------------------------------+
    | *3456E7782A7F539BC823C715DB60231B0C7DE847 |
    +-------------------------------------------+
    1 row in set (0.00 sec)

    一般而言,网页的编程用的都是MD5,password仅仅用于修改当前用户的密码

    ----

    注重自带函数的熟悉、了解,灵活的调用和嵌套运用

    今天烦躁,不想看。。。回去看电影了

  • 相关阅读:
    ReactNative typescript路径别名配置,vscode不识别@/youpath配置方法
    代码片段:js数组对象排序
    ScreenToGif SharpDx 下载失败问题
    springboot的@CrossOrigin注解解决细粒度的配置跨域
    java 连接Kafka报错java.nio.channels.ClosedChannelExcep
    zookeeper日常报错总结
    Spring Aop、拦截器、过滤器的区别
    搭建zookeeper单机版以及简单命令的使用
    java后台代码发送邮件
    java后台调用http请求
  • 原文地址:https://www.cnblogs.com/andy1202go/p/4953950.html
Copyright © 2011-2022 走看看