zoukankan      html  css  js  c++  java
  • 《学习》8常用函数

    -- 常用函数 字符编码uft8汉字为3个字节 gbk汉字两个字节 gbk占用空间小速度快 utf8兼容性好

    -- length 返回字符的字节数
    SELECT LENGTH('asd王');
    -- char_length 返回字符个数
    SELECT CHAR_LENGTH('asf喊');


    SELECT * FROM student WHERE CHAR_LENGTH(sname)=2;

    SELECT * FROM student WHERE sname LIKE '__';

    SELECT RAND();-- 返回随机小数[0,1)

    SELECT ROUND(RAND()); -- 0或1
    SELECT ROUND(RAND()*3)+1;-- 1到4之间的随机整数 rand()*3的范围是0-3


    SELECT * FROM student LIMIT 2 ;-- 限制显示两行

    SELECT * FROM student ORDER BY RAND() LIMIT 2;-- 随机查询两条记录

    -- 查看十天的会员注册人数
    -- menber 会员表 regdate 注册日期
    SELECT COUNT(*) FROM menber WHERE regdate BETWEEN DATE_ADD(NOW(),INTERVAL -10 DAY);
    -- 查看十天前的时间日期
    SELECT DATE_ADD(NOW(),INTERVAL -10 DAY),NOW();
    -- 十天后的时间
    SELECT DATE_ADD(NOW(),INTERVAL 10 DAY),NOW();


    SELECT DATE_ADD(NOW(),INTERVAL -2 HOUR);-- 两小时之前

    SELECT DATE_ADD(NOW(),INTERVAL -8 MONTH) 八个月前;

    -- datefiff 两个日期差的天数
    SELECT DATEDIFF(CURDATE(),'1992-9-18');


    -- 格式化日期函数 例:y只显示16年 Y显示2016年
    SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日');


    CREATE TABLE ss(
    sid INT,
    sname VARCHAR(30),
    sscore TINYINT UNSIGNED,
    sbirthday DATETIME
    );
    DELETE FROM ss;
    INSERT INTO ss VALUES(1,'张三',80,'1992-9-18 9:50:22'),(2,'李四',50,'1996-4-18'),(1,'王五',90,'1988-6-22');

    SELECT * FROM ss;

    SELECT sname 姓名,DATE_FORMAT(sbirthday,'%Y年%m月') 出生年月 FROM ss;

    -- TIMESTAMPDIFF可算年月日时分秒 具体看DATE_ADD
    SELECT TIMESTAMPDIFF(HOUR,'2015-7-10 12:30:00',NOW()) 工作时间;-- 从那个时间点到现在是多少个小时

    SELECT TIMESTAMPDIFF(MINUTE,'2015-7-10 12:30:00',NOW()) 工作时间; -- 总的分钟数

    SELECT TIMESTAMPDIFF(MONTH,'2015-7-10 12:30:00',NOW()) 工作时间;
    ----------------------------
    SELECT WEEKOFYEAR(NOW());-- 当前是今年的第几周

    -- 日期时间 存储过程可以使用int unsigned类
    -- form_unixtime 将数字表达的日期格式化成标准yyyy-mm-dd h-i-s
    SELECT FROM_UNIXTIME(1476555100,'%Y-%m-%d %T');

    SELECT FROM_UNIXTIME(UNIX_TIMESTAMP()),UNIX_TIMESTAMP();-- 日期对应的数字

    SELECT UNIX_TIMESTAMP();-- 将日期转换成数字存储


    SELECT INET_ATON ('111.13.100.91');-- 将IP转换成相应的数字 1863148635

    --------------------------------------
    -- 字符串处理
    -- 大小写转换
    SELECT UPPER('hello'),LOWER('HELLO');

    -- 不区分大小写Admin
    SELECT * FROM admin WHERE LOWER(sname)=LOWER('admin');


    SELECT LEFT(sname,2)FROM ss;-- 取目标的左边(右边用right)前2个字符

    SELECT MID(sname,2,1)FROM ss;-- 从第二个字开始取一个字符


    UPDATE menber SET PASSWORD=RIGHT(tel,6) WHERE mmid=1000;-- 将id为1000的会员的密码设置成他手机号的后六位


    SELECT IFNULL(NULL,'保密');
    SELECT IFNULL('男','保密');
    SELECT IFNULL('女','保密');


    SELECT IFNULL(sgender,'保密')FROM student;


    SELECT * FROM ss;
    UPDATE ss SET sscore=20 WHERE sid=2;

    SELECT sid,sname,sscore,IF(sscore>=90,'优秀',IF(sscore>=70,'良好',IF(sscore>=60,'及格','补考'))) 等级 FROM ss;

    ------------------------------------

    -- 加密函数


    -- md5 32位 sha1 40位 都是单项加密
    SELECT MD5('admin'),SHA1('admin'),PASSWORD('aaa');


    -- uuid 36位16进制的全球唯一字符串
    SELECT UUID(),LENGTH(UUID());-- 84da3ed7-e74c-11e5-8edb-089e0156af5a


    SELECT FORMAT(2,2);-- 2.00 指定两位小数

    -- 数字转IP IP转数字(最好整型无符号)
    SELECT INET_ATON('192.168.1.1');-- 3232235777

    SELECT INET_NTOA('3232235777');-- 192.168.1.1

    -- php+mysql 项目开发的时间

    日期时间和IP地址采用数据库的 INT UNSIGNED 类型存储

    reg DATETIME
    reg INT UNSIGNED

  • 相关阅读:
    2808 SCI中断发送
    头文件定义全局变量的几个问题
    关于多文件引用头文件变量重复定义的解决办法【BCB2010环境】
    程序中代码实现的图标,Marlett字体的对应关系
    C++ builder报错
    华硕A43系列笔记本卡解决办法
    磁盘对齐4k
    编译指令#pragma详解
    ASCII码表控制字符的确切含义
    win7无损分区轻松实现,不使用工具实现无损分区
  • 原文地址:https://www.cnblogs.com/huangf714/p/8630526.html
Copyright © 2011-2022 走看看