MYSQL中常用的SQL语句

一、增删改查

1.新增

指定字段插入:

INSERT INTO <表名> (<字段1>, <字段2>, <字段3>) VALUES (<值1>, <值2>, <值3>);

不指定字段插入:

INSERT INTO <表名> VALUES (<值1>, <值2>, <值3>);

一次插入多条数据:

INSERT INTO <表名> VALUES (<值1>, <值2>, <值3>), (<值4>, <值5>, <值6>);INSERT INTO <表名> (<字段1>, <字段2>, <字段3>) VALUES (<值1>, <值2>, <值3>), (<值4>, <值5>, <值6>);

将查询结果插入新表:

INSERT INTO <表名1> SELECT * FROM <表名2>;

将查询部分字段插入新表:

INSERT INTO <表名1> (<字段1>, <字段2>) SELECT <字段3>,<字段4> FROM <表名2>;

复制表:

CREATE TABLE <表名1> SELECT * FROM <表名2>;

2.删除

条件删除:

DELETE FROM <表名> WHERE <字段> = 3;

全部删除(一行一行删):

快删:

DROP TABLE IF EXISTS <表名>;

3.修改

条件修改:

UPDATE <表名> SET <字段> = <新的值> WHERE <字段> = 3;

全部修改:

UPDATE <表名> SET <字段> = <新的值>;

修改多个字段:

UPDATE <表名> SET <字段1> = <值1>, <字段2> = <值2>;

使一列的值与另一列的值相等:

UPDATE <表名> SET <字段1> = <字段2>;

4.查询

全量查询:

去重查询某列:

SELECT DISTINCT <字段1>, <字段2> FROM <表名>;

比较运算:

SELECT * FROM <表名> WHERE id >= 3;

IN:

SELECT * FROM <表名> WHERE id IN (1, 2, 3);

BETWEEN AND:

SELECT * FROM <表名> WHERE id BETWEEN 1 AND 3;

NOT NULL:

SELECT * FROM <表名> WHERE id IS NOT NULL;

AND / OR:

SELECT * FROM <表名> WHERE id = 3 AND name = 'ming';

模糊查询(%为通配符,_为匹配任意一个字符,[charlist]为字符列中的任意单个字符):

SELECT * FROM <表名> WHERE <字段> LIKE '%';

正则匹配查询:

SELECT * FROM <表名> WHERE <字段> REGEXP '^[aeiou]|ok$';

起别名:

SELECT <字段> AS <别名> FROM <表名>;

合并两张表并去除重复值:

SELECT <字段1> FROM <表名1> UNION SELECT <字段1> FROM <表名2>;

合并两张表非去重:

SELECT <字段1> FROM <表名1> UNION ALL SELECT <字段1> FROM <表名2>;

分组:

SELECT <字段1>, <字段2>, COUNT(<字段1>), COUNT(<字段2>) FROM <表名> GROUP BY <字段1>, <字段2>;

分组 + 条件:

SELECT * FROM <表名> GROUP BY <字段> HAVING COUNT(*) > 1;

排序查询,正序ASC,逆序DESC:

SELECT * FROM <表名> ORDER BY <字段> DESC;

限制查询,从索引m开始,限制查n条:

SELECT * FROM <表名> ORDER BY <字段> DESC LIMIT m n;

二、函数

1.聚合函数

统计符合条件的行数:

SELECT COUNT(*) FROM <表名> WHERE <字段> > 3;

统计列中非空行数:

SELECT COUNT(<字段>) FROM <表名>;

统计列中非重复非空行数:

SELECT COUNT(DISTINCT <字段>) FROM <表名>;

统计列中的最大值和最小值:

SELECT MAX(<字段>) FROM <表名>;

统计求和:

SELECT SUM(<字段>) FROM <表名>;

求平均值:

SELECT AVG(<字段>) FROM <表名>;

分组合并:

SELECT <字段1>, GROUP_CONCAT(<字段1>) FROM <表名> GROUP BY <字段1>;

三、连表查询

内连接:

SELECT a.*, b.* FROM <表名1> AS a INNER JOIN <表名2> AS b ON a.id = b.id;

左连接:

SELECT a.*, b.* FROM <表名1> AS a LEFT JOIN <表名2> AS b ON a.id = b.id;

右连接:

SELECT a.*, b.* FROM <表名1> AS a RIGHT JOIN <表名2> AS b ON a.id = b.id;

子查询:

SELECT * FROM <表名> WHERE id IN (SELECT id FROM <表名> GROUP BY id HAVING COUNT(*) > 1);

四、常用场景

1.字符串替换:

UPDATE <表名> SET <字段> = REPLACE(<字段>, str1, str2)

2.根据某一列删除表中重复数据(保留id小的数据):

DELETE FROM <表名> WHERE id NOT IN (SELECT id FROM (SELECT MIN(id) AS id FROM <表名> GROUP BY <重复列>) AS t);

3.根据某一列删除表中重复数据(保留id大的数据):

DELETE FROM <表名> WHERE id NOT IN (SELECT id FROM (SELECT MAX(id) AS id FROM <表名> GROUP BY <重复列>) AS t);

4.三个表的连表查询:

SELECT * FROM (<表名1> AS a LEFT JOIN <表名2> AS b ON a.id = b.id) LEFT JOIN <表名3> AS c ON a.id = c.id;

5.排除某个表中的一列,查找其他所有列:

SELECT GROUP_CONCAT(<字段> SEPARATOR ',') FROM information_schema.COLUMNS WHERE table_name = <表名> AND column_name != <字段>;

6.去掉某一列中的括号及内容:

UPDATE <表名> SET <字段> = REPLACE(<字段>, SUBSTRING(<字段>, LOCATE('(', <字段>), LOCATE(')', <字段>)-LOCATE('(', <字段>)+1), '');

7.根据两个表的相同列更新另一个表中的另一列数据:

UPDATE <表名1> AS A, <表名2> AS B SET A.<字段1> = B.<字段2> WHERE A.<字段3> = B.<字段4>;

8.查询数据库中的表名及字段信息:

# 查询当前数据库
SELECT DATABASE();
# 查询当前数据库中的所有表名
SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA = (SELECT DATABASE()) AND TABLE_TYPE='BASE TABLE';
# 查询指定数据库中的所有表名
SELECT TABLE_NAME FROM information_schema.TABLES WHERE TABLE_SCHEMA='<数据库名>' AND TABLE_TYPE='BASE TABLE';
# 查询指定数据库中指定表名的字段信息
SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='<数据库名>' and TABLE_NAME='<表名>';

​MYSQL中常用的SQL语句​(增删改查)相关推荐

  1. SQL语句(增删改查)

    个人感觉SQL语句不用刻意的去记忆,多使用,用到的时候忘记了就查找一下,使用的频繁,自然就记住了. SQL语句使用:数据库操作SQL.数据表操作SQL.数据记录操作SQL (一)数据库SQL 1.创建 ...

  2. MySQL数据库安装以及SQL基本增删改查

    目录 1.介绍下数据库 1.1.DB概念和特点 1.2.常见DB软件 1.3.数据库结构 2.MySQL安装与使用 2.1.安装 2.2.卸载 2.3.MySQL服务启动与关闭 2.4.MySQL登录 ...

  3. php pdo 更新sql语句,增删改查sql语句及PDO数据库连接操作流程实例-2019年7月24日...

    一.增删改查sql语句语法: 增: INSET INTO `表名` SET `字段名`=值 (也可写别名用,值前面加冒号->:别名): 删: DELETE FROM `表名`  WHERE `字 ...

  4. SQL语句增删改查公司-员工3表典型案例

    基础原生SQL增删改查,一般公司业务表,必知必会基础流程! 程序开发之大法,从数据库开始,不管是sqlserver,Oracle数据库还是其他MySQL等等的数据库.都是从写SQL语句开始.需要您必知 ...

  5. 基本sql语句--增删改查

    增 insert into 表名 values (值1,值2...): 也可以指定所要插入的列: insert into 表名 (列1,列2...) values (值1,值2...); 注:一般My ...

  6. SQL语句增删改查/高级查询

    有道笔记查看常用sql语句 sql高级查询语句 SQL语句规范 分号结尾 关键词大小写不区分 创建/删除数据库 创建:CREATE DATABASE 数据库名 ysj_example; 删除:DROP ...

  7. 数据库知识点+sql语句增删改查(详解)

    # 数据库相关SQL 1.查询所有数据库 - 格式: show databases; 2.创建数据库 - 格式: create database 数据库名 charset=utf8/gbk; - 举例 ...

  8. 详解数据库引擎与SQL语句增删改查(非常详细,带例)

    数据库系统(DBMS): 专门负责数据管理的工具.增加数据.创建索引.建立索引之间的关联关系.更新索引...... 连接器:PHP要访问MySQL,可以通过API访问,也可以通过PHP的驱动,而那个驱 ...

  9. sql语句增删改查与子查询

    修改表 修改表 语法: Alter table <旧表名> rename [ TO] <新表名>; 例子:Alter table `demo01` rename `demo02 ...

最新文章

  1. javascript图片浏览器的核心——图片预加载
  2. angularjs 元素重复指定次数_5.2 设置循环次数:for +range 句式
  3. 如何获取客户端的真实IP
  4. Confluent官博:Kafka最牛队列,性能15倍于RabbitMQ!
  5. python数据结构教程_利用Python演示数型数据结构的教程
  6. Android设置透明效果的三种方法(转)
  7. arraylist线程安全吗_Java中的List你真的会用吗?不会用的话请收藏我的这篇文章...
  8. 【漫画】AI小猪的一生---阿里云ET农业大脑如何与特驱集团养出“200公里猪”
  9. 【codevs1519】 过路费
  10. 邮件服务器实用技巧和选购指南
  11. python线性拟合、不确定性
  12. error: statement with no effect [-Werror=unused-value]
  13. 自检、开机故障及主板厂商资料
  14. php时间戳转UTC时间
  15. Excel 数据随机分组
  16. GAMES101-现代计算机图形学入门-闫令琪 - lecture6 光栅化2(抗锯齿) - 课后笔记
  17. (端到端多尺度去雾算法)FAMED-Net: A Fast and Accurate Multi-scale End-to-end Dehazing Network
  18. Flutter pageview indicator指示器实现
  19. 关于赴日IT软件开发
  20. 通过Cerebro访问Elasticsearch

热门文章

  1. 计算机网络:网络安全(网络安全概述)
  2. linux使用佳能ip1188,在Linux下安装打印驱动,以佳能LBP2900+为例
  3. HDU6034 Balala Power!
  4. Windows注册表中保存的信息及环境变量中SystemRoot在注册表中的位置
  5. WEB和WAP有什么区别前端开发的趋势
  6. Delphi 如何操作Excel
  7. C#生成电子印章源码
  8. numpy实现图像融合
  9. 微信小程序项目实例SSM项目源代码会议预约管理+后台
  10. 基于java设计的图书管理系统