Mysql数据库命令大全

目录

mysql服务器处理客户端请求

Mysql数据库常用命令

三种删除方式:


mysql服务器处理客户端请求

首先MySQL是典型的c/s架构,即client/Server架构,不论客户端进程和服务器进程是采用哪种方式进行通信,最后实现的效果都是:客户端进程向服务器进程发送一段文本<SQL语句>,服务器进程处理后再向客户端进程发送一段文本<处理结果>

客户端可以向服务器发送增删改查各类请求,我们这里以比较复杂的查询请求为例来画个图展示一下大致的过程:

从上图中可以看到不同的存储引擎用的都是同一个server层

一条查询语句的执行过程一般是经过连接器、分析器、优化器、执行器等功能模块,最后到达存储引擎
跨引擎相关的功能都在server层实现,不同的存储引擎共用一个server层 --> 存储引擎是可插拔式的server层
server层包含 连接器、查询缓存、分析器、优化器、执行器

server层覆盖了mysql的大多数核心服务功能,以及所有的内置函数<如日期、时间、数字和加密等函数>,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图等

 MySQL 整个查询执行过程,即MySQL的工作原理?
1、MySQL服务器接收到来自客户端的数据请求;

2、数据库会先查询缓存记录,如果命中缓存,直接返回存储在缓存中的查询结果,如果没有命中,则进行下一步操作;

3、数据库会先由解析器来解析SQL语句的,然后进行预处理,接着用优化器生成最优的执行计划;

4、数据库根据最优的执行计划,调用存储引擎的API接口来执行查询结果,并将结果返回给客户端,同时缓存查询结果;

Mysql数据库常用命令

命令行含义备注
show databases;查看数据库
show tables in 库名;查看数据表
show tables;查看数据表
describe 表名;   查看数据表结构
desc   表名;   查看数据表结构
create database 库名;创建数据库

DDL数据定义语言

 管理数据库对象

create table 表名(字段);创建数据表
drop database 库名;删除数据库
drop table 表名;删除数据表
insert into 表名(字段) values (字段);插入数据

DML数据操纵语言

  管理表数据

insert into 表名 values(字段);插入数据
update 表名 set 字段=指定要修改的内容修改数据为指定值
update 表名 set 字段=指定要修改的内容 where 字段=指定字段;指定字段修改内容
delete from 表名;删除指定数据表
delete from 表名 where 字段=指定字段;删除指定数据表的指定字段
select * from 表名查询指定数据表所有数据DQL数据查询语言
select 字段1,字段2... from 表名;查询指定数据表指定字段
select 字段1,字段2... from 表名 where 字段=指定字段;查询指定数据表指定字段匹配到指定的字段的数据信息
select 字段1,字段2... from 表名 limit 指定行(可以指定从第几行显示多少行);查询指定数据表指定行的数据
select * from 表名 \G;查询指定表以竖向方式显示数据
alter table 旧表名 rename 新表名;修改指定数据表变更新的数据表名DCL数据控制语言
alter table 表名 add 字段(字段结构类型);扩展表结构,新增字段
alter table 表名 change 字段 新字段(字段结构类型);修改表结构
alter table表名 drop 字段;删除表结构
create temporary table table_name 字段;创建临时表临时表是临时存在的无法show tables查看,退出数据库再登入即消失

create table 新表名 like 旧表名;

insert into new_table_name select * from table_name;

克隆表结构

克隆表数据

like方法(适用于数据迁移)
create table new_table_name(select * from table_name);直接创建新表的时候克隆适用于只备份数据
create user '用户名'@'指定地址' identified by '指定密码';新建用户

指定地址可以为localhost

也可以为指定的IP(IP可以指定网段,其中可以填入%表示网段的意思

rename user '用户名'@'指定地址' to '新用户名'@'新指定地址';用户重命名
drop user '用户名'@'指定地址';删除用户
set password = password('新密码');修改当前密码如果是此命令指定,那么authentication_string字段就是显示密文
set password for '用户名'@'指定地址' = password('new_password');修改指定用户密码
skip_grant_tables跳过授权表用于忘记密码后插入到服务端的配置文件(/etc/my.cnf)
update mysql.user set authentication_string=password ('new_password') where user=user_name;修改指定用户密码操作该命令行后需要刷新权限(flush privileges)
grant 权限1,权限2... on database_name.table_name 'user_name'@'指定地址' identified by 'password';将某个数据库中的数据表授予指定权限给指定用户该用户只能通过授权获得的密码登入数据库,对指定数据库中的数据表进行指定权限的操作
show grants for 'user_name'@'指定地址';查看用户权限
revoke 权限1,权限2... on database_name.table_name from 'user_name'@'指定地址';撤销用户权限
mysql 索引
create index index_name on table_name(索引列);直接创建普通索引普通索引
alter table table_name add index index_name(索引列)修改表结构时创建索引
create table table_name (字段 index index_name(索引列));创建表时创建索引
create unique index index_name on table table_name(索引列);直接创建唯一索引

唯一索引

    unique

alter table table_name add unique index_name (索引列);修改表结构创建唯一索引
reate table table_name (字段,unique index index_name(索引列));创建表时指定唯一索引
create table table_name (字段,primary key(索引列));创建表时创建主键索引

主键索引

primary key

alter table table_name add primary key(索引列));修改表时指定主键索引
create table table_name (字段,index index_name(索引列))创建表时指定组合索引

组合索引

(可以单列索引,可以多列索引)

create fulltext index index_name on table_name(索引列);直接创建全文索引

全文索引

fulltext

可作用在char varchar text类型列上

alter table table_name add fulltext index_name(索引列);修改表方式创建全文索引
create table table_name(字段,fulltext index_name(索引列));创建表时指定全文索引
show index from table_name;查看索引查看索引
show keys from table_name;查看索引
drop index index_name on table_name直接删除索引删除索引
alter table table_name drop index index_name;修改表方式删除索引
alter table table_name drop primary key;删除主键索引
mysql 事务隔离级别
select @@global.tx_isolation;查看全局事务隔离级别
show global variables like '%isolation%';
set global transaction isolation level 隔离级别;

设置全局事务隔离级别 

select @@session.tx_isolation;查看当前会话隔离级别
show session variables like '%isolation%';

set session transaction isolation level 隔离级别;设置会话事务隔离级别 
begin;开启事务
commit;提交事务
rollback;回滚至最原始未结束的事务修改表结构后无法回滚事务
rollback to savepoint S1/S2...回滚至事务中的标记点
savepoint S1在事务中增加标记点
set autocommit=0或1
修改是否提交事务Mysql数据库默认的是自动提交事务,默认为1;如果没有开启自动提交,当前会话所有操作直到输入rollback或者commit才算结束
show variables like 'autocommit'查看Mysql中的AUTOCOMMIT值
mysql 存储引擎
show engines;查看数据库支持的存储引擎
show table status from database_name where name='table_name';查看指定数据表的引擎
alter table 表名 engine=引擎;直接修改存储引擎
default-storage-engine=引擎;修改配置文件修改引擎配置文件位置在/etc/my.cnf,修改完配置文件后需要重启MySQL数据库,一般不建议使用
create table table_name(字段1,字段2...)engine=引擎;创建表时指定引擎

database_name    #库名

table_name           #表名

new_user_name   #新用户名

user_name           #用户名

三种删除方式:

delete from table_name;    
删除指定数据表,可自增(auto_increment)写入

可回滚,可带where条件判断

表结构在,表内容看删除内容

支持删除部分数据 建议用

DML数据操纵语言

想删除部分数据行时候,用delete,并且带上where子句    

安全性delete 最好   使用它哦

truncate table table_name;    
删除指定数据表,不支持自增写入

不可回滚,不可带where条件判断

表结构在,删除数据表内容

想删除表内容保留表,不和事务相关可用

DDL数据定义语言

保留表而删除所有数据的时候用truncate

drop from table_name;    
删除指定数据表

不可回滚,不可带where条件判断

删除表结构和表内容

想删除表可以用

DDL数据定义语言

不再需要一张表的时候,用drop

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/572365.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt C++ | QTimer经验总结

QTimer Class QTimer类提供重复计时器和单次计时器 头文件: #include <QTimer> qmake: QT += core 继承自: QObject 定时器信号 void timeout() 公共函数 Qt::TimerType 枚举定义了 Qt 中不同类型的定时器。它包含以下值: **Qt::PreciseTimer:**高精度定时器,用…

netty构建udp服务器以及发送报文到客户端客户端详细案例

目录 一、基于netty创建udp服务端以及对应通道设置关键 二、发送数据 三、netty中的ChannelOption常用参数说明 1、ChannelOption.SO_BACKLOG 2、ChannelOption.SO_REUSEADDR 3、ChannelOption.SO_KEEPALIVE 4、ChannelOption.SO_SNDBUF和ChannelOption.SO_RCVBUF 5、Ch…

App Inventor 2 实现商业级APP启动屏幕效果(SplashScreen)

启动屏幕效果 实现的功能包括&#xff1a;启动App时展示启动屏&#xff0c;右上角展示5秒倒计时&#xff0c;中途可点击跳过。倒计时结束或点击跳过&#xff0c;则跳转到主界面。效果如下&#xff1a; 实现原理 App启动屏效果的实现原理及详细步骤要点如下&#xff1a; Scree…

JVM(六)——内存模型与高效并发

内存模型与高效并发 一、java 内存模型 【java 内存模型】是 Java Memory Model&#xff08;JMM&#xff09; 简单的说&#xff0c;JMM 定义了一套在多线程读写共享数据时&#xff08;成员变量、数组&#xff09;时&#xff0c;对数据的可见性、有序 性、和原子性的规则和保障…

stable diffusion 的 GPU 不足怎么解决

稳定扩散&#xff08;stable diffusion&#xff09;是一种用于图像处理和计算机视觉任务的图像滤波算法。 当使用Stable Diffusion过程中遇到GPU显示内存不足的问题时。解决这个问题的方法有以下几种&#xff1a; 目前&#xff0c;对我来说&#xff0c;就最后一点能够暂时解决当…

dy消息监控,python协议

2024年3月27日 dy消息监控&#xff0c;协议版本&#xff0c;有wss和轮训2种方式&#xff0c;支持监听好友和群消息&#xff0c;支持消息回复&#xff0c;消息类型包括如下&#xff1a; 表情&#xff0c;文本&#xff0c;作品&#xff0c;语音&#xff0c;图片&#xff0c;视频…

ehters.js:provider

ethers.jsV5.4文档 安装ethers npm install ethers5.4.0// 引入 import { ethers } from ethersProviders /** Provider类* Provider类是对以太坊网络连接的抽象&#xff0c;为标准以太坊节点功能提供简洁、一致的接口。 */ const provider new ethers.providers.Web3Provider…

rabbitmq集群问题排查

blowcode-test-redis04、blowcode-test-redis05、blowcode-test-redis06 这3个节点搭建的rabbitmq集群&#xff0c;04是主节点。 某次分别观察3个节点的管理页面&#xff0c;先都只能看到自己的节点是正常的绿色状态&#xff0c;猜测节点都各自为政了。 下图是05节点成功加入0…

【书生·浦语大模型实战营第二期】学习笔记1

1. Introduction 开源llm举例&#xff1a;LLaMA 、Qwen 、Mistral 和Deepseek 大型语言模型的发展包括预训练、监督微调&#xff08;SFT&#xff09;和基于人类反馈的强化学习&#xff08;RLHF&#xff09;等主要阶段 InternLM2的显著特点 采用分组查询注意力&#xff08;GQA…

【3D目标检测】Det3d—SE-SSD模型训练(前篇):KITTI数据集训练

SE-SSD模型训练 1 基于Det3d搭建SE-SSD环境2 自定义数据准备2.1 自定义数据集标注2.2 训练数据生成2.3 数据集分割 3 训练KITTI数据集3.1 数据准备3.2 配置修改3.3 模型训练 1 基于Det3d搭建SE-SSD环境 Det3D环境搭建参考&#xff1a;【3D目标检测】环境搭建&#xff08;OpenP…

任何程序员错过这些宝藏接单平台,都会难过好吗?

财富自由何时才能实现&#xff1f;首先&#xff0c;可以很负责地告诉你&#xff1a;安安心心地当一头牛马肯定是不能&#xff01;兢兢业业十几年&#xff0c;归来仍是马喽。 说实在的&#xff0c;这两年经济下行&#xff0c;互联网红利又日渐褪去。前者既争又抢&#xff0c;后…

低功耗、低成本 NAS 的可能性

使用现状&#xff1a;多台工作电脑&#xff0c;家里人手一台&#xff0c;还在两个住处 有好几台工作电脑&#xff0c;不同电脑有不同的用途&#xff0c;最大的问题就是各个电脑上文件的同步问题&#xff0c;这里当然就需要局域网里的公共文件夹&#xff0c;在NAS的问题上查了网…