SQL语言----适配mysql数据库

 

SQL查询语句

SELECT * FROM `维度选取` LIMIT 2,3;-- 这是一条注释
# 这是注释
/*这
也是注释*/


#第三章 排序检索
#order变量名参数排序
SELECT id,host_name,name FROM 维度选取 ORDER BY id LIMIT 2,3
#order位置参数排序
SELECT id,host_name,name FROM 维度选取 ORDER BY 1 LIMIT 2,3
#order倒序排列
SELECT id,host_name,name FROM 维度选取 ORDER BY 1 DESC LIMIT 2,3


#第四章 过滤数据 WHERE
SELECT id,host_name,name FROM 维度选取 WHERE id != 100000
SELECT id,host_name,name FROM 维度选取 WHERE id <> 100000
SELECT id,host_name,name FROM 维度选取 WHERE id BETWEEN 0 and 100000
SELECT id,host_name,name FROM 维度选取 WHERE id is NULL

#第五章 高级过滤数据 多条件筛选WHERE ANDORINNOT IN

#AND
SELECT id,host_name,name FROM 维度选取 WHERE id < 1000000 AND id>100000
#OR
SELECT id,host_name,name FROM 维度选取 WHERE id < 1000000 OR id<100000
#AND优先于OR

#IN,字符格式的要加''
SELECT id,host_name,name FROM 维度选取 WHERE id in(123,100213)

#NOT <>
SELECT id,host_name,name FROM 维度选取 WHERE host_name NOT IN ('Vera')
SELECT id,host_name,name FROM 维度选取 WHERE id <> 100213

#第六章 用通配符进行过滤 LIKE(% __ [])
# %   放在前面就是前面所有的字符,后面就是后面所有的字符
SELECT id,host_name,name FROM 维度选取 WHERE host_name LIKE '%V%'
# _   一个_代表一个字符
SELECT id,host_name,name FROM 维度选取 WHERE host_name LIKE '_e%'
# []  通配符,表示在[]中的任意一个值,在mysql里不能用like.......(还不是很理解,不太好使)
SELECT id,host_name FROM `维度选取` WHERE id REGEXP '[1]'
View Code

 

SQL函数(参考:https://www.cnblogs.com/kissdodog/p/4168721.html  

-- 字符串的函数
    -- 转换为小写
    SELECT LOWER('SUNHAO')

    -- 转化为大写
    SELECT UPPER('sunhao')

    -- 首字母大写
    -- 不知道

    -- 连接两个字符串
    SELECT CONCAT('hello','world')

    -- 截取字符串
    SELECT SUBSTR('helloword',6,1)

    -- 计算字符串长度
    SELECT LENGTH('helloworld')
    
  -- 给出字符的索引
    SELECT INSTR('helloworld','w')
    
  -- 用*在字符串左边补全字符串,到固定长度(20)
    SELECT LPAD('hp',20,'*')
    
    -- 用*在字符串右边补全字符串,到固定长度(20)
    SELECT RPAD('hp',20,'*')



-- 数字函数

    -- 四舍五入,保留固定位(两位)小数
    SELECT ROUND(10.2366666,2)
    
    -- 数字截取,保留固定位(两位)小数
    SELECT TRUNCATE(10.2366666,2)

    -- 进一取整,只要小数有,就进一
    SELECT CEIL(10.23)

    -- 舍一取整,不管小数,只取整数
    -- 取整数
    SELECT FLOOR(10/6)

    -- 取余数
    SELECT MOD(10,6)
        
        -- 取绝对值
        SELECT ABS(-10)
        
        -- (0,1)随机数
        SELECT RAND()
        
        -- 返回数字的符号,负数、0、正数分别返回-1,0,1
        SELECT SIGN(-10),SIGN(0),SIGN(10)
        
        -- 返回圆周率
        SELECT PI()
        
        -- 返回x的y次方,返回e的x次方
        SELECT POW(2,3),POWER(2,3),EXP(3)
        
        -- 返回x的平方根
        SELECT SQRT(4)
        
        -- 返回自然对数(以e为底的对数),返回10为底的对数,返回2为底的对数
        SELECT log(EXP(2)),LOG10(100),LOG2(4)
        
        -- 三角函数 ,其中X是弧度表示SIN(X),ASIN(X),COS(X),ACOS(X),TAN(X),ATAN(X)/ATAN2(Y,X),COT(X)
        -- 角度转弧度 RADIANS(X),弧度转角度 DEGREES(X)
        SELECT RADIANS(30),DEGREES(0.5235987755982988)
        SELECT SIN(RADIANS(30)),COS(RADIANS(60)),TAN(RADIANS(45))
        
        
        

-- 日期函数(https://www.cnblogs.com/i-tao/p/11419900.html)
    -- 返回两个日期之间相差的天数,第一个参数-第二个参数  即2020-01-30减去2020-01-01
    SELECT DATEDIFF('2020-01-30','2020-01-01')

    -- 将指定的时间间隔值加到时间上,默认添加的是天数  2020-01-30日30天后是哪天
    SELECT ADDDATE('2020-01-30',30)

    -- 将指定时间(小时)加到时间上,2020年1月1日10点后一个小时是什么时间
    SELECT ADDTIME('2020-01-01 10:00:00','1:00:00')
    SELECT ADDTIME('10:00:00','1:00:00')

    -- 返回指定日期是星期几 Excel中的weekday函数
    SELECT DAYNAME('2020-06-01')

    -- 返回指定日期是这个月第几天 Excel中的day函数
    SELECT DAYOFMONTH('2020-06-01')

    -- 返回指定日期是这年的第几天
    SELECT DAYOFYEAR('2020-06-01')

    -- 返回指定日期是这周的第几天(星期天是第一天)
    SELECT DAYOFweek('2020-06-01')

    -- 返回当月的最后一天
    SELECT LAST_DAY('2020-06-01')

    -- 返回日期减少多少个单位时间
    SELECT DATE_SUB('2020-06-01',INTERVAL 2 DAY)
    SELECT DATE_SUB('2020-06-01',INTERVAL 2 month)
    SELECT DATE_SUB('2020-06-01',INTERVAL 2 year)
    SELECT DATE_SUB('2020-06-01',INTERVAL 2 HOUR)
    SELECT DATE_SUB('2020-06-01',INTERVAL 2 SECOND)
    SELECT DATE_SUB('2020-06-01',INTERVAL 2 MINUTE)

    -- 返回日期增加多少个单位时间
    SELECT DATE_ADD('2020-06-01',INTERVAL 2 DAY)
    SELECT DATE_ADD('2020-06-01',INTERVAL 2 month)
    SELECT DATE_ADD('2020-06-01',INTERVAL 2 year)
    SELECT DATE_ADD('2020-06-01',INTERVAL 2 HOUR)
    SELECT DATE_ADD('2020-06-01',INTERVAL 2 SECOND)
    SELECT DATE_ADD('2020-06-01',INTERVAL 2 MINUTE)
    
    
    -- SELECT TIMESTAMPDIFF(类型,开始时间,结束时间)
    -- 相差的秒数:
        SELECT TIMESTAMPDIFF(SECOND,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))
    --     相差的分钟数:
        SELECT TIMESTAMPDIFF(MINUTE,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))
    --     相差的小时数:
        SELECT TIMESTAMPDIFF(HOUR,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))
    --     相差的天数:
        SELECT TIMESTAMPDIFF(DAY,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))
    --     相差的周数:
        SELECT TIMESTAMPDIFF(WEEK,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))
    --     相差的季度数:
        SELECT TIMESTAMPDIFF(QUARTER,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))
    --     相差的月数:
        SELECT TIMESTAMPDIFF(MONTH,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))
    --     相差的年数:
        SELECT TIMESTAMPDIFF(YEAR,'1993-03-23 00:00:00',DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S'))

-- 转换函数(数值型数据类型和日期型数据类型都可以转换成字符型)
-- CAST()、CONVERT()这两个函数只对BINARY、CHAR、DATE、DATETIME、TIME、SIGNED INTEGER、UNSIGNED INTEGER。

    -- sigeed 将varchar转换成int
    SELECT CONVERT('231',signed)    
    SELECT CAST('231' as signed)
    
    SELECT DATE_FORMAT('2020-01-01 19:00:00','YYYY-MM-DD hh24:mm:ss')
    
    

-- 条件判断函数

    -- IF(条件,x,y):如果条件正确,则返回x,否则返回y
    SELECT if(1>0,'正确','错误')

    -- IFNULL(x,y):如果x不是null,则返回x,如果x是null则返回y
    SELECT IFNULL(null,'helloworld')

    -- CASE case_value
    --     WHEN when_value THEN
    --         statement_list
    --     ELSE
    --         statement_list
    -- END CASE;
        SELECT CASE 
            WHEN 1>2
            THEN '错误'
            ELSE '正确'
        END;
    
    
    
    
    
第三版

 

 

 

posted @ 2020-05-15 16:56  坑爹的川川  阅读(291)  评论(0)    收藏  举报