一、基本查询语句

查询所有数据

SELECT * FROM 表名;

查询特定列

SELECT 列名1, 列名2 FROM 表名;

条件查询

SELECT * FROM 表名 WHERE 条件;

模糊查询

SELECT * FROM 表名 WHERE 列名 LIKE '模式%';

排序查询

SELECT * FROM 表名 ORDER BY 列名 ASC|DESC;

限制返回行数

SELECT * FROM 表名 LIMIT 10;

去重查询

SELECT DISTINCT 列名 FROM 表名;

二、聚合与分组

聚合函数 - 计数

SELECT COUNT(*) FROM 表名;

分组查询

SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名;

条件分组

SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名 HAVING COUNT(*) > 1;

计算总和

SELECT SUM(列名) FROM 表名;

计算平均值

SELECT AVG(列名) FROM 表名;

计算最大值

SELECT MAX(列名) FROM 表名;

计算最小值

SELECT MIN(列名) FROM 表名;

三、数据操作

插入数据

INSERT INTO 表名 (列名1, 列名2) VALUES (值1, 值2);

批量插入数据

INSERT INTO 表名 (列名1, 列名2) VALUES (值1, 值2), (值3, 值4);

更新数据

UPDATE 表名 SET 列名 = 新值 WHERE 条件;

删除数据

DELETE FROM 表名 WHERE 条件;

四、表操作

创建表

CREATE TABLE 表名 (列名1 数据类型, 列名2 数据类型);

删除表

DROP TABLE 表名;

修改表结构

ALTER TABLE 表名 ADD 列名 数据类型;

删除表中的列

ALTER TABLE 表名 DROP COLUMN 列名;

重命名表

ALTER TABLE 旧表名 RENAME TO 新表名;

五、索引与视图

创建索引

CREATE INDEX 索引名 ON 表名 (列名);

删除索引

DROP INDEX 索引名;

创建视图

CREATE VIEW 视图名 AS SELECT * FROM 表名;

删除视图

DROP VIEW 视图名;

六、连接查询

内连接

SELECT * FROM 表1 INNER JOIN 表2 ON 表1.列名 = 表2.列名;

左连接

SELECT * FROM 表1 LEFT JOIN 表2 ON 表1.列名 = 表2.列名;

右连接

SELECT * FROM 表1 RIGHT JOIN 表2 ON 表1.列名 = 表2.列名;

全连接

SELECT * FROM 表1 FULL OUTER JOIN 表2 ON 表1.列名 = 表2.列名;

七、子查询与集合

子查询

SELECT * FROM 表名 WHERE 列名 IN (SELECT 列名 FROM 其他表名);

存在查询

SELECT * FROM 表名 WHERE EXISTS (SELECT 1 FROM 其他表名 WHERE 条件);

联合查询

SELECT 列名 FROM 表1 UNION SELECT 列名 FROM 表2;

八、日期与时间

获取当前时间

SELECT NOW();

获取当前日期

SELECT CURDATE();

日期加法

SELECT DATE_ADD(日期, INTERVAL 1 DAY);

日期减法

SELECT DATE_SUB(日期, INTERVAL 1 DAY);

格式化日期

SELECT DATE_FORMAT(日期, '%Y-%m-%d');

九、字符串处理

字符串连接

SELECT CONCAT(列名1, 列名2) FROM 表名;

字符串长度

SELECT LENGTH(列名) FROM 表名;

字符串截取

SELECT SUBSTRING(列名, 1, 5) FROM 表名;

查找字符串位置

SELECT LOCATE('子串', 列名) FROM 表名;

大写转换

SELECT UPPER(列名) FROM 表名;

小写转换

SELECT LOWER(列名) FROM 表名;

去除空格

SELECT TRIM(列名) FROM 表名;

十、其他高级功能

使用CASE语句

SELECT 列名, CASE WHEN 条件 THEN '值1' ELSE '值2' END FROM 表名;

使用IF语句

SELECT 列名, IF(条件, '值1', '值2') FROM 表名;

使用COALESCE函数

SELECT COALESCE(列名, '默认值') FROM 表名;

使用NULLIF函数

SELECT NULLIF(列名1, 列名2) FROM 表名;

获取唯一值的数量

SELECT COUNT(DISTINCT 列名) FROM 表名;

使用GROUP_CONCAT

SELECT GROUP_CONCAT(列名) FROM 表名 GROUP BY 其他列名;

十一、事务管理

事务开始

BEGIN;

提交事务

COMMIT;

回滚事务

ROLLBACK;

十二、游标与存储过程

创建游标

DECLARE 游标名 CURSOR FOR SELECT 列名 FROM 表名;

打开游标

OPEN 游标名;

获取游标数据

FETCH 游标名 INTO 变量名;

关闭游标

CLOSE 游标名;

创建存储过程

CREATE PROCEDURE 存储过程名 AS BEGIN ... END;

调用存储过程

CALL 存储过程名();

十三、函数与触发器

创建函数

CREATE FUNCTION 函数名() RETURNS 数据类型 AS BEGIN ... END;

调用函数

SELECT 函数名();

创建触发器

CREATE TRIGGER 触发器名 BEFORE INSERT ON 表名 FOR EACH ROW SET 新列 = '值';

删除触发器

DROP TRIGGER 触发器名;

十四、系统信息查询

查询当前用户

SELECT CURRENT_USER();

查询当前数据库

SELECT DATABASE();

查询表的行数和大小

SELECT TABLE_NAME, TABLE_ROWS, DATA_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA = '数据库名';

获取表的创建时间

SELECT CREATE_TIME FROM information_schema.TABLES WHERE TABLE_NAME = '表名';

获取表的修改时间

SELECT UPDATE_TIME FROM information_schema.TABLES WHERE TABLE_NAME = '表名';

十五、其他实用查询

使用LIMIT与ORDER BY结合

SELECT * FROM 表名 ORDER BY 列名 LIMIT 10;

查询表的外键约束

SELECT CONSTRAINT_NAME, TABLE_NAME FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = '数据库名';

查询表的主键约束

SELECT CONSTRAINT_NAME, TABLE_NAME FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_SCHEMA = '数据库名' AND CONSTRAINT_TYPE = 'PRIMARY KEY';

使用ROLLUP进行分组汇总

SELECT 列名, SUM(列名2) FROM 表名 GROUP BY 列名 WITH ROLLUP;

获取前N条记录

SELECT * FROM 表名 LIMIT N;

获取最后N条记录

SELECT * FROM 表名 ORDER BY 列名 DESC LIMIT N;

使用NOT EXISTS进行条件判断

SELECT * FROM 表名 WHERE NOT EXISTS (SELECT 1 FROM 其他表名 WHERE 条件);

使用IN进行条件判断

SELECT * FROM 表名 WHERE 列名 IN (值1, 值2);

使用NOT IN进行条件判断

SELECT * FROM 表名 WHERE 列名 NOT IN (值1, 值2);

使用UNION ALL

SELECT 列名 FROM 表1 UNION ALL SELECT 列名 FROM 表2;

十六、性能优化

使用EXPLAIN分析查询

EXPLAIN SELECT * FROM 表名 WHERE 条件;

优化索引

CREATE INDEX 索引名 ON 表名 (列名);

使用临时表

CREATE TEMPORARY TABLE 临时表名 AS SELECT * FROM 表名;

查询表的索引

SHOW INDEX FROM 表名;

查询数据库版本

SELECT VERSION();

十七、常见错误处理

捕获错误

DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN ... END;

输出错误信息

SELECT ERROR_MESSAGE();

使用事务处理错误

BEGIN; -- 开始事务
-- 执行SQL语句
-- 如果有错误,ROLLBACK

十八、数据备份与恢复

备份数据库

mysqldump -u 用户名 -p 数据库名 > 备份文件.sql

恢复数据库

mysql -u 用户名 -p 数据库名 < 备份文件.sql

十九、数据导入与导出

导入数据

LOAD DATA INFILE '文件路径' INTO TABLE 表名;

导出数据

SELECT * INTO OUTFILE '文件路径' FROM 表名;

二十、常用工具与命令

显示当前数据库

SELECT DATABASE();

显示所有数据库

SHOW DATABASES;

显示所有表

SHOW TABLES;

显示表结构

DESCRIBE 表名;

显示当前连接信息

SHOW PROCESSLIST;

显示数据库使用情况

SELECT table_schema AS '数据库', SUM(data_length + index_length) / 1024 / 1024 AS '大小(MB)' FROM information_schema.TABLES GROUP BY table_schema;

显示表的行数

SELECT COUNT(*) FROM 表名;

显示用户权限

SHOW GRANTS FOR '用户名'@'主机名';

以上就是本期全部内容

我是晓凡,再小的帆也能远航

希望对你有所帮助

我们下期再见 ヾ(•ω•`)o (●'◡'●)

100条常用SQL语句的更多相关文章

  1. Mysql常用sql语句(6)- limit 限制查询结果的条数

    测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 实际工作中,我们的数据表数据肯定都是万级别的,如 ...

  2. oracle sqlplus及常用sql语句

    常用sql语句 有需求才有动力 http://blog.csdn.net/yitian20000/article/details/6256716 常用sql语句 创建表空间:create tables ...

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

    Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, ...

  4. 常用sql语句总结(一)(查询)

    常用sql语句总结(一)(查询) 数据操作语句:DML 数据定义语句:DDL 数据控制语句:DCL (执行顺序------序号) 一.基本查询: 1. SELECT * ----- 2 FROM 数据 ...

  5. Oracle数据库常用Sql语句大全

    一,数据控制语句 (DML) 部分 1.INSERT  (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSE ...

  6. 经典MSSQL语句大全和常用SQL语句命令的作用

    下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL类型包括数据库.表的创建,修改,删除,声明—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML类 ...

  7. 【呕心总结】python如何与mysql实现交互及常用sql语句

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

  8. 常用SQL语句大全

    一些常用SQL语句大全   一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql se ...

  9. Mysql常用sql语句(15)- cross join 交叉连接

    测试必备的Mysql常用sql语句 https://www.cnblogs.com/poloyy/category/1683347.html 前言 交叉连接就是求多表之间的笛卡尔积 讲道理..这个我都 ...

  10. 50个常用SQL语句

    50个常用SQL语句 Student(S#,Sname,Sage,Ssex) 学生表  S#学号,主键 Course(C#,Cname,T#) 课程表          C#课程号,主键 SC(S#, ...

随机推荐

  1. 【前端JSP思考】JSP中#{},${}和%{}的区别

    JSP中#{},${}和%{}的区别: #{} #{}:对语句进行预编译,此语句解析的是占位符?,可以防止SQL注入, 比如打印出来的语句 select * from table where id=? ...

  2. 【Docker】容器数据卷

    Docker容器数据卷 第一次听说这个名字,我一直以为是数据卷(juǎn),后来查看官方英文文档的"volume"这个单词的时候,我才反应过来,这是容器数据卷(juàn),书卷的卷 ...

  3. 【Java异步编程利器】CompletableFuture完全指南

    Java异步编程利器:CompletableFuture完全指南 图:传统同步 vs 异步编程模式对比 一.为什么需要异步编程? 同步 vs 异步的餐厅点餐比喻 同步方式 异步方式 顾客站在柜台前等待 ...

  4. python,下载图片到本地自定文件夹内的方法

    比如,我们需要下载下面这张图,图片的网络地址:"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000 ...

  5. kette介绍-Step之Table input

    表输入(Table Input)介绍: Table input用于将数据源的数据加载到Kettle转换中的行集,可以说是数 据从持久化到内存的一种加载变换,故名为输入.加载内部过程,就是通过JDBC ...

  6. Python 潮流周刊第3季总结,附电子书下载

    我订阅了很多的周刊/Newsletter,但是发现它们都有一个共同的毛病:就是缺乏对往期内容的整理,它们很少会对内容数据作统计分析,更没有将内容整理成合集的习惯. 在自己开始连载周刊后,我就想别开生面 ...

  7. 定时任务稳定性解决方案-healthchecks监控系统

    背景 目前crontab出现问题后无感知,发现问题不及时,几乎是靠业务部门或用户反馈的方式,研发部门再排查的方式,处理问题.发现问题相对滞后,由此可见需要进一步优化crontab的稳定性,降故障通知前 ...

  8. 海康摄像头SDK在Linux、windows下的兼容问题

    零.前言 最近一直在做人脸识别相关的应用. 主要就是使用海康的摄像头抓拍.录制视频,使用虹软的sdk进行人脸识别,使用jna调用这些sdk. 海康的sdk在使用时遭遇了很多问题,主要问题就是windo ...

  9. BURP APP HTTPS抓包xposed+justtrustme工具篇

    APP HTTPS抓包 当APP是HTTPS时,则单纯的使用Burpsuite无法抓取数据包,原因是APP启用了SSL Pinning(又叫做"SSL证书绑定"). 1.下载夜神模 ...

  10. Kubernetes 调度器打分算法详解:LeastAllocated 与 NodeAffinity

    1️⃣ NodeResourcesLeastAllocated(资源最少分配) 目标 优先将 Pod 调度到资源使用率最低的节点,防止热点节点,尽量实现负载均衡. 打分算法原理 对每个节点计算 CPU ...