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 非, 不是
相关推荐
2401_896732134 小时前
MySQL小笔记
mysql
程序员清风5 小时前
数据处理脚本工程化:日志、配置、命令行与测试
服务器·开发语言·数据库
正在走向自律5 小时前
数据集成产品的技术底座:从日志解析原理到 KFS 同步链路搭建(含建表与增删改查完整代码)
数据库·oracle·信创·数据集成·国产数据库·kingbasees·全量+增量同步
程序员塔塔喵5 小时前
【MySQL篇|第七篇】MySQL事务
数据库·mysql·mysql事务
独隅6 小时前
Claude API 实战教程:从入门到完整项目
android·java·数据库·claude·claude code
_孤傲_6 小时前
快速掌握 MySQL 语法
数据库·后端·mysql
数字新视界8 小时前
一体化机柜在数据中心运维中的创新应用与优势分析
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
SelectDB9 小时前
从 StarRocks 走向 Apache Doris:如何实现引擎平滑替换与架构升级?
大数据·数据库·数据分析
为思念酝酿的痛9 小时前
MySQL的操作
数据库·mysql
猫咪很可爱9 小时前
Oracle ORA-4031 错误分析与处理:SGA 内存不足导致 update/exp/expdp 失败
数据库·oracle