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 非, 不是
相关推荐
开开心心就好35 分钟前
高效报价软件,简化商铺定价流程
服务器·数据库·安全·面试·职场和发展·电脑·symfony
钢铁男儿2 小时前
PyQt5高级界而控件(容器:装载更多的控件QDockWidget)
数据库·python·qt
阿蒙Amon5 小时前
C# Linq to SQL:数据库编程的解决方案
数据库·c#·linq
互联网搬砖老肖8 小时前
运维打铁: MongoDB 数据库集群搭建与管理
运维·数据库·mongodb
典学长编程9 小时前
数据库Oracle从入门到精通!第四天(并发、锁、视图)
数据库·oracle
积跬步,慕至千里10 小时前
clickhouse数据库表和doris数据库表迁移starrocks数据库时建表注意事项总结
数据库·clickhouse
极限实验室10 小时前
搭建持久化的 INFINI Console 与 Easysearch 容器环境
数据库
星辰离彬10 小时前
Java 与 MySQL 性能优化:Java应用中MySQL慢SQL诊断与优化实战
java·后端·sql·mysql·性能优化
白仑色11 小时前
Oracle PL/SQL 编程基础详解(从块结构到游标操作)
数据库·oracle·数据库开发·存储过程·plsql编程
程序猿小D12 小时前
[附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+jsp实现的个人财务管理系统,推荐!
java·数据库·mysql·spring·毕业论文·ssm框架·个人财务管理系统