sql语句汇总
来源:互联网 发布:游戏寻路算法 编辑:程序博客网 时间:2024/05/18 18:04
简介
面向SQL入门者,快速掌握SQL语句基本
查询
SELECT * FROM table_name;'*': 所有列
新增
INSERT INTO table_name VALUES (1, 'A', 'aa', '2017-09-22 00:00:00');'VALUES'后面括号里的字段,需要对应表定义的列,从左到右依次填入
更新
UPDATE table_name SET col_name1 = value1, col_name2 = value2 WHERE id = 1'WHERE‘后面跟着指定更新条目所需的条件。
删除
DELETE FROM table_name WHERE 条件
查询细化
AND (且)
SELECT * FROM table_name WHERE 条件 AND 条件
OR (或)
SELECT * FROM table_name WHERE 条件 OR 条件
比较计算
运算符 说明 = 左右相等 < 左边小于右边 > 左边大于右边 <= 左边小于等于右边 >= 左边小于等于右边 <> 左右不相等SELECT * FROM table_name WHERE 价格 >= 1000
NULL判断
- 指定列的值为空判断
SELECT * FROM table_name WHERE col_name IS NULL
- 指定列的值不为空判断
SELECT * FROM table_name WHERE col_name IS NOT NULL
LIKE
- 从备忘列的值里,选出满足’1月‘前后任意文字长度大于0的任意长度的条目。
SELECT * FROM table_name WHERE memo LIKE '%1月%'
- 从备忘列的值里,选出'1月'为文字开始,其后只跟着一个文字的条目
SELECT * FROM table_name WHERE memo LIKE '1月_'
BETWEEN
- 匹配出指定字段符合给定区间内的值的所有条目
SELECT * FROM table_name WHERE 价格 BETWEEN 50 AND 100;
IN/NOT IN
- 匹配出指定字段符合给定集合里的的任意一个值的所有条目
SELECT * FROM table_name WHERE col_name IN ( value1, value2,value3, ... );
- 匹配出指定字段不符合给定集合里的的任意一个值的所有条目
SELECT * FROM table_name WHERE col_name NOT IN ( value1, value2, value3, ... );
ANY/ALL
- 指定字段与给定的值列表比对,筛选出只要其中一个为真就为真的所有条目
SELECT * FROM table_name WHERE col_name =< ANY( value1, value2, value3 );
- 指定字段与给定的值列表比对,筛选出所有值比对都为真的所有条目
SELECT * FROM table_name WHERE col_name =< ALL( value1, value2, value3, ... );
查询结果加工
DISITINCT
- 根据指定列名结果去重
SELECT DISITINCT user_name FROM table_name;
ORDER BY
- 结果排序
SELECT * FROM table_name ORDER BY 价格 DESC;升序-> ASC, 降序-> DESC
LIMIT + (OFFSET)
- 从指定位置起获取指定数量行
SELECT * FROM table_name ORDER BY 价格 DESC LIMIT 3 OFFSET 2;
UNION
- 和集合。2个查询结果合并且去重
SELECT user_name, age, address FROM table_1 UNION SELECT user_name, age, address FROM table_2;
EXCEPT (mysql不支持)
- 差集合。选出第一个表有,第二个没有的条目
SELECT user_name, age, address FROM table_1 EXCEPT SELECT user_name, age, address FROM table_2;
INTERSECT (mysql不支持)
- 积集合。2个查询结果里重复的条目
SELECT user_name, age, address FROM table_1 INTERSECT SELECT user_name, age, address FROM table_2;
操作符与函数
代表性的操作符
CASE
- 数据展示时可以使用的条件操作符
SELECT user_name, CASE age WHEN age < 20 THEN '未成年' WHEN age >= 20 AND age <= 65 THEN '成年' ELSE '高龄' END AS 分类 FROM table_name;
LENGTH
- 文字长度计算
SELECT user_name, LENGTH(user_name) as '名字长度' FROM table_name;
TRIM
- 指定字符串的左右空白移除
SELECT user_name, TRIM(user_name) as '去左右空白后名字' FROM table_name;
REPLACE
- 指定字符串的内容替换
UPDATE table_name SET user_name = REPLACE(user_name, '李', '张');将用户名里带’李‘的转为’张‘
SUBSTRING
- 字符串截取
SELECT * FROM table_name WHERE SUBSTRING(user_name, 1, 3) LIKE '%德%'
ROUND
- 指定位数,四舍五入
SELECT 支出金额, ROUND(支出金额, -2) AS '以百计支出金额' FROM table_name;SELECT 12345.67, ROUND(12345.67, -1) => '12345.67', '12350'
TRUNC(mysql命令为TRUNCATE)
- 指定位数,不四舍五入
SELECT 支出金额, TRUNCATE(支出金额, -2) AS '以百计支出金额' FROM table_name;SELECT 12345.67, TRUNCATE(12345.67, -1) => '12345.67', '12340'
POWER
- 指数乘
SELECT 支出金额, POWER(支出金额, 2) AS '指数乘后的支出金额' FROM table_name;
汇总和GROUP化
- 汇总
SELECT SUM(支出金额) AS '支出金额合计' from table_name;
SELECT COUNT(*) AS '合计行数' FROM table_name;COUNT(*) NULL行也会计算
GROUP化
- 以指定列的同样值为基础进行分组
SELECT 支出项目, SUM(支出金额) AS '以支出项目合计金额' FROM table_name GROUP BY 支出项目;
子查询
- 将一个表的查询结果当作另一个查询语句的参考条件
SELECT MAX(以支出项目合计金额) from (SELECT 支出项目, SUM(支出金额) AS '以支出项目合计金额' FROM table_name GROUP BY 支出项目);
表结合
SELECT to.id, to.price, tu.user_name, tu.address FROM table_order AS to JOIN table_user AS tu ON to.user_id = tu.id;
查看原文:http://www.huuinn.com/archives/172
更多技术干货:风匀坊
关注公众号:风匀坊
阅读全文
0 0
- SQL查询语句汇总
- sql查询语句汇总
- SQL 语句汇总
- SQL语句优化汇总
- SQL语句优化汇总
- SQL语句优化汇总
- SQL语句优化汇总
- Sql语句汇总【2】
- SQL语句技巧汇总
- SQL语句优化汇总
- SQL语句优化汇总
- SQL语句优化汇总
- 经典SQL语句汇总
- SQL语句汇总
- sql语句简单汇总
- sql语句汇总
- SQL语句自己汇总
- SQL 语句汇总(三)
- CF 869 A. The Artful Expedient【异或】
- 浅谈分布式服务协调技术 Zookeeper
- CF 869 B. The Eternal Immortality【数学】
- GiD初步使用
- Java工程师路线规划
- sql语句汇总
- Qt5美化界面1——标签设置图片(含GIF)
- 实数系与实数定理
- 为大家分享daloradius+freeradius+openvpn的安装脚本
- thinkphp5的入门学习(1)引入数据列表及其操作
- 商品秒杀流程图和功能图
- nohup command>/dev/null 2>&1 详解
- Centos7安装vim8.0 + YouCompleteMe
- linux脚本中判断命令是否存在 hash <the_command>