最新更新时间:2021年03月09日13:56:21

《猛戳-查看我的博客地图-总有你意想不到的惊喜》

本文内容:最近在做node开发,写了大量的sql语句,本文以作记录,CRUD(create, read, update, delete)

基础学习

关键字

  • ORDER BY

ORDER BY 关键字默认按照升序对记录进行排序,也可以使用关键字ASCascending
如果需要按照降序对记录进行排序,可以使用 DESC descending关键字

//单列降序 只查询一条数据
select * from table1 where origin_id = 333 order by modified_time DESC limit 1;
//多列升序
SELECT * FROM table1 ORDER BY origin_id,modified_time;
//筛选3列按照2列升序排列升序
SELECT id,origin_id,modified_time FROM table1 ORDER BY origin_id,modified_time;
  • SELECT TOP, LIMIT, ROWNUM

返回记录的数目

//MySQL 语法
SELECT * FROM table_name LIMIT 2;
//SQL Server / MS Access 语法
SELECT TOP 2 * FROM table_name;
//Oracle 语法
SELECT * FROM Persons WHERE ROWNUM <=5;

常用sql语句

//创建视图 视图是一张虚拟表
//视图的创建方式和表一样,需要实例化、配置映射文件、实现get/set方法等
CREATE VIEW my_view_data AS SELECT t.name FROM table1 AS t;

//删除单条数据
DELETE FROM table1 WHERE value=1;//删除指定的多条数据
DELETE FROM table1 WHERE value IN (1,4);//删除连续的多条数据
DELETE FROM table1 WHERE value>=1 AND value<=9;

  • 修改已有行的某几列
//更改table表中多条数据的多列,id是[36,42]的七条数据的school_id和school_name
UPDATE `table1` SET `school_id` = '101', `school_name` = '初中' WHERE `id` BETWEEN 36 AND 42;//更改table1表中每一条数据的name为'[]',一般用于数据初始化
UPDATE `table1` SET `name` = '[]';
  • 向表增加列
//向 table1 表增加列 school_id和school_name,默认值为''
ALTER TABLE `table1` ADD COLUMN `school_id` varchar(36) NULL DEFAULT '' COMMENT '学校编号', ADD COLUMN `school_name` varchar(36) NULL DEFAULT '' COMMENT '学校名称';ALTER TABLE `table_name` ADD COLUMN `column_name` varchar(1000) NOT NULL DEFAULT '[]' COMMENT '这个列的文字说明';

  • 精确查询
SELECT * FROM `table1` WHERE `is_deleted` = 0;
SELECT * FROM `table1` WHERE `id` = 1;
SELECT * FROM `table1` WHERE `school_id` = '80022431';
  • 范围查询
//查询 1,5,13
SELECT * FROM `table1` WHERE id=1 OR id=5 OR id=13;
SELECT * FROM `table1` WHERE id IN(1,5,13);//查询 1,5,13 以外的数据
SELECT * FROM `table1` WHERE NOT (id=1 OR id=5 OR id=13);
SELECT * FROM `table1` WHERE id NOT IN(1,5,13);//查询 [11,22]
SELECT * FROM `table1` WHERE `id` BETWEEN 11 AND 22;//查询 [11,22] 以外的数据
SELECT * FROM `table1` WHERE `id` NOT BETWEEN 11 AND 22;
  • 判断空
//为空
SELECT * FROM `table1` WHERE `id` IS null;
//不为空
SELECT * FROM `table1` WHERE `id` IS NOT null;
  • 分页查询
SELECT * FROM table1 LIMIT 0,10;//从表的偏移量0开始查询10条数据
SELECT * FROM table1 LIMIT 12,8;//从表的偏移量12开始查询8条数据
  • 排序查询
SELECT * FROM table1 ORDER BY create_time DESC;//按照创建时间降序
  • 单列多值查询
//查询 school_type 为 101 和 102 的数据
SELECT * FROM table1 WHERE (school_type=101 OR school_type=102) AND is_deleted=0;
  • 模糊查询
//school列保存的是 学校id 的字符串数组 "[1,2,3,4,5]"
//查询 school 列中包含2的数据
let school_id = '2';
SELECT * FROM table1 WHERE school like '%2%';

注意:
需要有左右引号
“%” 符号用于在模式的前后定义通配符(默认字母)
NOT LIKE 表示取非

//查询 table1 表中的所有数据
SELECT * FROM table1;
SELECT age,name FROM table1;//查询某列的值并去重
SELECT DISTINCT phone_brand FROM table1;// xiaomi huawei iphone vivo oppo
SELECT COUNT(DISTINCT phone_brand) AS nums FROM table1;//5//查询 table1 表中的数据量
SELECT COUNT(*) FROM table1;
SELECT COUNT(*) AS numbs FROM table1;//按照条件查询 table1 表中的所有数据
SELECT * FROM table1 WHERE name="wanshaobo";
SELECT * FROM table1 WHERE is_delete="wanshaobo" AND name="bus";//表连接查询 table1是主表 table2是从表
SELECT * FROM table1 LEFT JOIN table2 ON table1.id=table2.page_id;//按照关联字段将table2的数据合并到table1中
SELECT table1.*,table2.id FROM table1 LEFT JOIN table2 ON table1.id=table2.page_id;//按照关联字段将table2的部分数据合并到table1中
SELECT table1.age,table2.name FROM table1 LEFT JOIN table2 ON table1.id=table2.page_id;//按照关联字段将table2的数据合并到table1中 只返回部分数据//3表查询  table1是主表 table2和table3是从表
SELECT t3.i_d,t3.na_me,t4.verion FROM (SELECT t1.id AS i_d,t2.name AS na_me FROM table1 AS t1 LEFT JOIN table2 AS t2 ON t1.p_id = t2.id) AS t3 LEFT JOIN table3 AS t4 ON t3.pId = t4.p_id

高级SQL

SELECT name AS n, country AS c FROM Websites;
SELECT name, CONCAT(url, ', ', alexa, ', ', country) AS site_info FROM Websites;
SELECT w.name, w.url, a.count, a.date FROM Websites AS w, access_log AS a WHERE a.site_id=w.id and w.name="菜鸟教程";

参考资料

  • 表连接
  • SQL

感谢阅读,欢迎评论^-^

打赏我吧^-^

100条常用SQL语句相关推荐

  1. 出生日期范围的Sql语句_【呕心总结】python如何与mysql实现交互及常用sql语句

    9 月初,我对 python 爬虫 燃起兴趣,但爬取到的数据多通道实时同步读写用文件并不方便,于是开始用起mysql.这篇笔记,我将整理近一个月的实战中最常用到的 mysql 语句,同时也将涉及到如何 ...

  2. MySQL(用户管理,常用sql语句,数据库备份恢复,MySQL调优,恢复误操作数据)...

    一.MySQL用户管理. 一个MySQL数据库里可以跑多个库,总不能给所有人的程序员root用户,则可以给他们单独的用户访问数据库. 创建用户:(grant all on *.* to 'user1' ...

  3. oracle常用SQL语句(汇总版)

    原文地址:https://www.cnblogs.com/xrhou12326/p/4094737.html Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象 一.数据控制语 ...

  4. 一些常用SQL语句的总结 竖项变横项

    一些常用SQL语句的总结 转自:http://stevieliu.bokee.com/5076391.html 关键词: sql 查询表内容 SELECT  表名=case when a.colord ...

  5. 南大通用GBase8s 常用SQL语句(四十)

    南大通用GBase8s 常用SQL语句(四十) DATAFILES 子句 DATAFILES 子句指定当您使用外部表时打开的操作系统文件或管道. DATAFILES 子句 元素 描述 限制 语法 fi ...

  6. 55:Mysql用户管理|常用sql语句|mysql数据库备份恢复

    2019独角兽企业重金招聘Python工程师标准>>> 1.Mysql用户管理: 场景,为了安全,新建的站点,创建新的用户,或者给已有用户授权,对某个库或者某个表有权限: 语法: g ...

  7. MySQL用户管理、常用SQL语句、MySQL数据库备份恢复

    mysql用户管理 1.创建一个普通用户并授权 [root@gary-tao ~]# mysql -uroot -p'szyino-123' Warning: Using a password on ...

  8. 经典MySQL语句大全和常用SQL语句命令的作用。

    转载自 http://blog.csdn.net/suyu_yuan/article/details/51784893 转自网络: 经典MSSQL语句大全和常用SQL语句命令的作用  下列语句部分是M ...

  9. oracle维护常用SQL语句(查看系统表和视图)

    转:http://www.360doc.com/content/11/1230/15/7489308_176090474.shtml oracle维护常用SQL语句(查看系统表和视图) 1.查看表空间 ...

  10. 常用SQL语句(增删查改、合并统计、模糊搜索)

    转自:http://www.cnblogs.com/ljianhui/archive/2012/08/13/2695906.html 常用SQL语句 首行当然是最基本的增删查改啦,其中最重要的是查. ...

最新文章

  1. matlab读int16读文件_matlab文件读写.doc.doc
  2. C main()参数
  3. jquery字符串序列化方法总结
  4. 15日直播预告丨SQL条件等价改写秘笈(主讲人:怀晓明)
  5. 网络协议端口号说明(转)
  6. Java主类结构:变量与常量
  7. Error:不允许有匹配 [xX][mM][lL] 的处理指令目标。
  8. Word编辑公式的快捷键与命令
  9. 天猫精灵 python_天猫精灵控制家里的灯
  10. 华为联运游戏或应用审核驳回:检查HMS Core更新失败
  11. halcon入门之_提取遥控器字符并且写入txt文本
  12. 在阿里 AI Lab 做 NLP 高级算法专家是一种什么样的体验?
  13. 洛谷P1725 琪露诺(单调队列优化dp)
  14. netgen.5.0.0下载地址与Windows下编译方法
  15. 数据资产盘点的流程和方法
  16. 快手架构师:3亿日活的快手微服务架构实践
  17. 爪哇国新游记之七----使用ArrayList统计水果出现次数
  18. JME3教程:Android创建一个简单的示例
  19. uml建模外卖订餐系统
  20. 【电信学】【2016.02】基于IMU的遥控车自主导航位置跟踪

热门文章

  1. 王者荣耀服务器维护七月三号,王者荣耀3月23日更新维护公告 自然之灵拼图活动开启...
  2. 网页加载出现没有合适的负载均衡器_一篇文章彻底了解清楚什么是负载均衡
  3. yolo v3 pytorch版本(转载)
  4. Backpropogation反向传播公式推导【李宏毅深度学习版】
  5. 标记集合 java编译_深入理解Java虚拟机读书笔记-java编译期和运行期优化
  6. MFC基于 单文档为状态栏添加进度条
  7. hadoop jps 没有命令_hadoop:伪分布模式启动步骤分解
  8. 实现一个文本文件的解析类(vector,字符串解析的应用)
  9. Java实现JPBC密码库的实验
  10. GoC语言学习(C/C++程序设计语言入门)