MYSQL中常用的SQL语句(增删改查)
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语句(增删改查)相关推荐
- SQL语句(增删改查)
个人感觉SQL语句不用刻意的去记忆,多使用,用到的时候忘记了就查找一下,使用的频繁,自然就记住了. SQL语句使用:数据库操作SQL.数据表操作SQL.数据记录操作SQL (一)数据库SQL 1.创建 ...
- MySQL数据库安装以及SQL基本增删改查
目录 1.介绍下数据库 1.1.DB概念和特点 1.2.常见DB软件 1.3.数据库结构 2.MySQL安装与使用 2.1.安装 2.2.卸载 2.3.MySQL服务启动与关闭 2.4.MySQL登录 ...
- php pdo 更新sql语句,增删改查sql语句及PDO数据库连接操作流程实例-2019年7月24日...
一.增删改查sql语句语法: 增: INSET INTO `表名` SET `字段名`=值 (也可写别名用,值前面加冒号->:别名): 删: DELETE FROM `表名` WHERE `字 ...
- SQL语句增删改查公司-员工3表典型案例
基础原生SQL增删改查,一般公司业务表,必知必会基础流程! 程序开发之大法,从数据库开始,不管是sqlserver,Oracle数据库还是其他MySQL等等的数据库.都是从写SQL语句开始.需要您必知 ...
- 基本sql语句--增删改查
增 insert into 表名 values (值1,值2...): 也可以指定所要插入的列: insert into 表名 (列1,列2...) values (值1,值2...); 注:一般My ...
- SQL语句增删改查/高级查询
有道笔记查看常用sql语句 sql高级查询语句 SQL语句规范 分号结尾 关键词大小写不区分 创建/删除数据库 创建:CREATE DATABASE 数据库名 ysj_example; 删除:DROP ...
- 数据库知识点+sql语句增删改查(详解)
# 数据库相关SQL 1.查询所有数据库 - 格式: show databases; 2.创建数据库 - 格式: create database 数据库名 charset=utf8/gbk; - 举例 ...
- 详解数据库引擎与SQL语句增删改查(非常详细,带例)
数据库系统(DBMS): 专门负责数据管理的工具.增加数据.创建索引.建立索引之间的关联关系.更新索引...... 连接器:PHP要访问MySQL,可以通过API访问,也可以通过PHP的驱动,而那个驱 ...
- sql语句增删改查与子查询
修改表 修改表 语法: Alter table <旧表名> rename [ TO] <新表名>; 例子:Alter table `demo01` rename `demo02 ...
最新文章
- javascript图片浏览器的核心——图片预加载
- angularjs 元素重复指定次数_5.2 设置循环次数:for +range 句式
- 如何获取客户端的真实IP
- Confluent官博:Kafka最牛队列,性能15倍于RabbitMQ!
- python数据结构教程_利用Python演示数型数据结构的教程
- Android设置透明效果的三种方法(转)
- arraylist线程安全吗_Java中的List你真的会用吗?不会用的话请收藏我的这篇文章...
- 【漫画】AI小猪的一生---阿里云ET农业大脑如何与特驱集团养出“200公里猪”
- 【codevs1519】 过路费
- 邮件服务器实用技巧和选购指南
- python线性拟合、不确定性
- error: statement with no effect [-Werror=unused-value]
- 自检、开机故障及主板厂商资料
- php时间戳转UTC时间
- Excel 数据随机分组
- GAMES101-现代计算机图形学入门-闫令琪 - lecture6 光栅化2(抗锯齿) - 课后笔记
- (端到端多尺度去雾算法)FAMED-Net: A Fast and Accurate Multi-scale End-to-end Dehazing Network
- Flutter pageview indicator指示器实现
- 关于赴日IT软件开发
- 通过Cerebro访问Elasticsearch