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; --内连接是 显示交集,外连接,左是已左表为主表,显示全部主表

SQL 函数 排序 等基础操作 DDL DML DQL 用法和<> <=>等的更多相关文章

  1. SQL中的四种语言DDL,DML,DCL,TCL

    1.DDL(Data Definition Language)数据库定义语言statements are used to define the database structure or schema ...

  2. DCL,DDL,DML,DQL

    DCL(Data Control Language)是数据库控制语言. 是用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句. 在默认状态下,只有sysadmi ...

  3. [SQL] SQL学习笔记之基础操作

    1 SQL介绍 SQL 是用于访问和处理数据库的标准的计算机语言.关于SQL的具体介绍,我们通过回答如下三个问题来进行. SQL 是什么? SQL,指结构化查询语言,全称是 Structured Qu ...

  4. SQL语言:DDL/DML/DQL/DCL

    SQL (Structure Query Language)语言是数据库的核心语言. SQL 的发展是从1974年开始的,其发展过程如下: 1974年-----由Boyce和Chamberlin提出, ...

  5. MySql用statement实现DDL,DML,DQL的操作Demo

    Demo1 Connection connection=null; Statement stmt=null; int result=-1; try { Class.forName("com. ...

  6. 区别 |DCL |DDL |DML |DQL

    DCL(Data Control Language)数据控制语言: 用来设置或更改数据库用户或角色权限的语句,包括(grant,deny,revoke等)语句.这个比较少用到. 对于大多数人,在公司一 ...

  7. SQL操作数据——SQL组成,查询基础语法,where,Oracle常用函数等

    SQL组成 DML数据操作语言 DCL数据控制语言 DQL数据查询语言 DDL数据定义语言 查询基础语法 记录筛选 where 子句 记录筛选 where 子句 实例练习 实例练习 Select语句中 ...

  8. oracle(sql)基础篇系列(一)——基础select语句、常用sql函数、组函数、分组函数

        花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用ora ...

  9. MySQL(一) -- MySQL学习路线、数据库的基础、关系型数据库、关键字说明、SQL、MySQL数据库、MySQL服务器对象、SQL的基本操作、库操作、表操作、数据操作、中文数据问题、 校对集问题、web乱码问题

    1 MySQL学习路线 基础阶段:MySQL数据库的基本操作(增删改查),以及一些高级操作(视图.触发器.函数.存储过程等). 优化阶段:如何提高数据库的效率,如索引,分表等. 部署阶段:如何搭建真实 ...

随机推荐

  1. DOJ1187 : 重建家园 (分数规划 && 二分 && kruskal)

    最优答案一定是一颗树 那么二分比值,不断kruskal找到最大可以满足的解就可以了 代码如下 #include <cstdio> #include <algorithm> us ...

  2. Go_Redis

    Redis介绍 Redis是一个开源的内存数据库,Redis提供了多种不同类型的数据结构,很多业务场景下的问题都可以很自然地映射到这些数据结构上.除此之外,通过复制.持久化和客户端分片等特性,我们可以 ...

  3. HTML学习(1)简介

    HTML---HyperText Markup Language,超文本标记语言,是一种用于创建网页的标准标记语言. 注意:对于中文网页需要使用 <meta charset="utf- ...

  4. shiro登录认证过程讲解

      先粘出登录的代码 1. 可以看到已经获取到了username和password ,为了接下来的认证过程,我们需要获取subject对象,也就是代表当前登录用户,并且要将username和passw ...

  5. mysql yum 卸载取消开机自启动

    查询安装的yum源rpm -qa | grep -i mysql 使用yum remove卸载 yum remove 刚才过滤出来的包一个个来 剩下卸载不了使用 rpm -e --nodeps: rp ...

  6. 数学算法(一):快速求斐波那契数第n项通过黄金分割率公式

    有一个固定的数学公式= =,不知道的话显然没法应用 首先黄金分割率接近于这个公式, (以下为黄金分割率与斐波那契的关系,可跳过) 通过斐波那契数列公式 两边同时除以 得: (1) 注意后一项比前一项接 ...

  7. ISR吞吐性能问题

    ISR大致可以分几类: Cisco 860.880.890 ISR1800 (fixed).1800 (modular).2800.3800 Series ISR1900.2900.3800.3900 ...

  8. RLE压缩算法详解

    from:http://data.biancheng.net/view/152.html RLE压缩算法(下简称RLE算法)的基本思路是把数据按照线性序列分成两种情况:一种是连续的重复数据块,另一种是 ...

  9. 每天进步一点点------SOPC TIMER (一)

    寄存器图 可以通过操作以下的寄存器来实现对timer(定时器)内核的操作(仅描述32位计数器) 状态寄存器: TO(timeout) :计数器计数到0时,该位置1,之后TO位的值会保持,直到手动清零, ...

  10. SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8_general_ci,IMPLICIT) and (gb2312_chinese_ci,COERCIBLE) for operation '='

    在操作MySQL数据库时,报“ error code [1267]; Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (utf8_gen ...