zoukankan      html  css  js  c++  java
  • SQL 函数 排序 等基础操作 DDL DML DQL 用法和<> <=>等

    sql基础汇总

      

    --根据函数别名排序
    --排序规则,默认是升序
    sleect LENGTH(NAME) nameLength from user ORDER BY nameLength DESC
    
    --特殊符号
    特殊符号<=> 安全等于可以比较null和数值,正常比较null通过is null 和is not null 数值是 = <> !=和<>相同,in(1,2)是1或者2 between 1 and 10 是1~10的所有整数
    
    IFNULL(num,0) num不为null 返回num否则返回0
    
    --两个以上字段排序,不写默认升序 asc
    SELECT *  FROM user  ORDER BY age DESC, salary  ASC;
    --查询年龄在20-40之间
    SELECT * FROM user  WHERE age  BETWEEN 20 AND 40 ORDER BY age DESC
    --查询年龄在20-40之间
    SELECT * FROM user  WHERE age NOT  BETWEEN 20 AND 40 ORDER BY age DESC
    --模糊查询
    SELECT * FROM user WHERE name  LIKE "%a%" ORDER BY LENGTH(name) DESC, phone ASC
    
    --函数
    --单行函数  concat()字符串拼接、ifnull、length()
    --分组函数
    --分组函数又称为统计函数、聚合函数、组函数
    
    --拼接字符串
    SELECT CONTACT(name,"--",age) FROM user;
    --大小写切换
    SELECT UPPER(name),LOWER(type);
    --截取字符串,下表从1开始,从第2截取到末尾
    SELECT SUBSTRING("ABCDEFG",2);
    --截取(1,2),从第一位开始,截取两个字符
    SELECT SUBSTRING("ABCDEFG",1,2);
    --返回子串第一次出现的索引
    SELECT INSTR("ABCDEF",'DE')
    --去除空格
    SELECT TRIM("   DDD   ");
    --去除a,只能去除字符串的前后,不能去除中间
    SELECT TRIM('a' FROM "AaaaaBCDEFDALKDFJAaaaaaaaa");
    --指定长度的左填充,格式  2222222AAA
    SELECT LPAD("AAA",10,"2");
    --右填充
    SELECT LPAD("AAA",10,"2");
    --字符串替换,将A替换为UUU
    SELECT REPLACE("111AAA222","A","UUU")
    --取整数函数,四舍五入
    SELECT ROUND(1.2);
    --保留两位小数
    SELECT ROUND(1.556,2);
    --向上取整,返回大约等于该值的最小整数
    SELECT CEIL(1.02);
    --向下取整,返回小于等于该值的最大整数
    SELECT FLOOR(1.2);
    --阶段,保留小数位数
    --SELECT TRUNCATE(1.34,1);
    --取余是1
    SELECT MOD(10,3);
    
    --日期+时间
    SELECT NOW();
    --日期
    SELECT CURDATE();
    --时间
    SELECT CURTIME();
    --获取年份
    SELECT YEAR(NOW());
    --月
    SELECT MONTH(NOW());
    --英文月份名称
    SELECT MONTHNAME(NEWO());
    --字符串转日期
    SELECT STR_TO_DATE("1994-3-9","%Y-%C-%D");
    --日期转字符串
    SELECT DATE_FORMAT(NOW(),"%Y年-%m月-%d日");
    --查询两个日期 相差天数
    SELECT DATEDIFF();
    --流程控制 --大于,大,否则小 SELECT IF(10>5,"大","小"); --case函数 SELECT salary,id
    CASE id
    when
    30 THEN SALARY*1.3
    WHEN 40 THEN SALARY*1.5 FROM user
    SELECT salary,id 
    CASE
    when 条件1 THEN SALARY*1.3
    WHEN 条件2 THEN SALARY*1.5 FROM user

    --分组函数 ,用作统计 SELECT SUM(salary),AVG(salary),MIN(salary),MAX(salary),COUNT(salary) FROM user; --查询部门最大工资和平均工资 SELECT AVG(salary),MAX(salary) FROM user where age is not null GROUP BY department; --查询部门员工个数大于2,分组后的筛选用having SELECT COUNT(*),department_id FROM employees GROUP BY department_id HAVING COUNT(*)>2 --查询每个工种有奖金的员工的最高工资大于12000的 SELECT job_id,MAX(salary) FROM employees where reward is not null group by job_id having MAX(salary)>12000; --查询每个领导编号>102的领导手下工资>5000的领导编号和最低工资 SELECT manage_id,MIN(salary) FROM employees GROUP BY manage_id WHERE manage_id>102 HAVING MIN(salary)>5000; --查询每个部门每个工种的平均工资,降序 SELECT job_id,department_id,AVG(salary) as avg FROM employee WHERE department_id is not null GROUP BY job_id,department_id HAVING avg>120000 ORDER BY agv DESC
    --聚合函数通过HAVING筛选,不能用where
    --查询工资和级别
    select salary,grade
    from user,grade
    where selary between grade.low and grade.up


    --内链接 筛选条件放在where 连接条件放在on
    select name,job
    from user u inner join job j on u.id = j.id
    where name like "%a%";

    select a.name,b.id,c.type
    from a inner join b on a.id=b.id inner join c on a.id=c.id
    where a.name like "%a%"
    group by a.name;

    --内连接是 显示交集,外连接,左是已左表为主表,显示全部主表

  • 相关阅读:
    GIS Cesium地图数据配置
    HDFS详解
    Hadoop学习路线图
    SecureCRT工具
    Eclipse使用技巧收集
    如何确定 Hadoop map和reduce的个数--map和reduce数量之间的关系是什么?
    HBase基本概念
    Hbase Rowkey设计
    MapReduce调度与执行原理系列文章
    LVS学习笔记及总结(思维导图版)
  • 原文地址:https://www.cnblogs.com/lalalazar/p/12347145.html
Copyright © 2011-2022 走看看