MySQL知识总结

基础篇

通用语法及分类

  • DDL(Data Definition Language):数据定义语言,用来定义数据库对象(数据库、表、字段)。
  • DML(Data Manipulation Language):数据操作语言,用来对数据库表中的数据进行增、删、改。
  • DQL(Data Query Language):数据查询语言,用来对数据库表中数据进行查询操作。
  • DCL(Data Control Language):数据控制语言,用来创建数据库用户、控制数据库的控制权限。

DDL

数据库操作

查询所有的数据库:
show databases;

查询当前数据库:
select database();

创建数据库:
create database [if not exists] 数据库名 [default charset 字符集] [collate 排序规则];
create database if not exists test default charset utf8mb4;

删除数据库:
drop database [if exists] 数据库名;
drop database if exists test;

使用数据库:
use test;

注意事项

utf8字符集长度为3个字节,有些符号占4个字节,所以推荐使用utf8mb4字符集。

表操作

查询当前数据库中的所有表:
show tables;

查询表结构:
desc 表名;

查询指定表的建表语句:
show create table 表名

创建表:

mysql 复制代码
create table if not exists 表名(
  字段1 字段1类型 [comment 字段1注释],
  字段2 字段2类型 [comment 字段2注释],
  ...
  字段n 字段n类型 [comment 字段n注释]
) [comment 表注释] default charset utf8mb4;

删除表:
drop table [if exists] 表名;

删除表,并重新创建该表:(清空表)
truncate table 表名

添加字段:
alter table 表名 add 字段名 字段类型(长度) [comment 注释] [约束];

例:alter table test_01 add nick_name varchar(20) comment '昵称';

修改数据类型:
alter table 表名 modify 字段名 新数据类型(长度);

修改字段名和字段类型:
alter table t_user change nick_name n_name char(30) comment '昵称';

删除字段:
alter table 表名 drop 字段名;

修改表名:(重命名表名)
alter table 表名 rename 新表名;

DML

添加数据

指定字段:
insert into 表名 (字段1, 字段2) values (值1, 值2);

全部字段:
insert into 表名 values (值1, 值2, ...);

批量添加数据:
insert into 表名 (字段1, 字段2, ...) values (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);
insert into 表名 values (值1, 值2, ...), (值1, 值2, ...), (值1, 值2, ...);

注意事项
  • 字符串和日期类型的数据应该包含在引号中。
  • 插入的数据大小应该在字段的规定范围内。
更新和删除数据

修改数据:
update 表名 set 字段1 = 值1, 字段2 = 值2, ... [ where 条件 ];

例:
update t_user set name = 'jack' where id = 1;

删除数据:
delete from 表名 [ where 条件 ];

例:
delete from t_user where id = 1;

DQL

语法:

复制代码
select
  字段列表
from
  表名
where
  条件列表
group by
  分组字段列表
having
  分组后的条件列表
order by
  排序字段列表
limit
  分页参数
基础查询

查询多个字段:
select 字段1, 字段2, 字段3, ... from 表名;
select * from 表名;

设置别名:
select 字段1 [as 别名1], 字段2 [as 别名2], ... from 表名;
select 字段1 [别名1], 字段2 [别名2], ... from 表名;

去除重复记录:
select distinct 字段列表 from 表名;

转义:模糊匹配(_匹配单个字符,%匹配任意个字符)
select 字段列表 from 表名 where name like '/_张三';

/ 之后不作为通配符。

条件:

比较运算符 功能
> 大于
>= 大于等于
< 小于
<= 小于等于
!=或<> 不等于
between ... and ... 在这个区间内(含最小值,最大值)
in(...) 在 in 之后列表中的值,多选一
like 占位符 模糊匹配(_匹配单个字符,%匹配任意字符)
is NULL 是 NULL
逻辑运算符 功能
&& 或 and 并且(多个条件都成立)
|| 或 or 或者(多个条件中有一个成立就成立)
! 或 NOT 非, 不是
相关推荐
znnnk6 小时前
数据库被AI“重写”:2026,从CPU中心走向GPU中心
数据库·人工智能·oracle
微微%6 小时前
mysql的安装和使用
数据库·mysql·mysql8安装
软件派7 小时前
MiniMax M3.1 Flash 高频业务落地实战指南
大数据·数据库·人工智能
云边云科技_云网融合8 小时前
连锁门店组网怎么做?SD-WAN 多分支组网的架构选型、部署与成本结构
服务器·数据库·php
泡海椒8 小时前
# 深度解析JQuick-SQL Join重排序与哈希连接执行机制
数据库·sql·哈希算法
acrel79 小时前
医院用电隐患治理与节能降耗及智慧能源平台应用
网络·数据库
snow@li9 小时前
PowerDesigner 全景教程:从业务建模、表结构设计、关系管理到正向/逆向、文档输出
数据库
ss2739 小时前
PostgreSQL表级锁、行级锁、轻量级锁
数据库·postgresql·区块链
RacentCLM10 小时前
证书即服务CaaS:从申请、续期到部署的自动化链路拆解
运维·数据库·自动化·ssl
SelectDB10 小时前
安全评审卡了三周,我把部署形态的四种选项重新排了一遍
大数据·数据库·云原生