百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

数据库工程师必学的 100 个数据库命令(全栈实操版)

liuian 2025-08-02 19:26 24 浏览

覆盖系统:MySQL / PostgreSQL / Oracle / SQL Server

适合人群:DBA、后端工程师、数据分析工程师

涉及技能:数据定义、数据操作、安全权限、性能调优、备份恢复、监控脚本等





一、数据库基础操作(15 个)


命令

说明

示例

1 SHOW DATABASES;

查看所有数据库(MySQL)

SHOW DATABASES;

2 CREATE DATABASE dbname;

创建数据库

CREATE DATABASE testdb;

3 DROP DATABASE dbname;

删除数据库

DROP DATABASE testdb;

4 USE dbname;

切换数据库

USE testdb;

5 \c dbname

PostgreSQL 切换库

\c mydb

6 \l

PostgreSQL 查看所有库

\l

7 SELECT DATABASE();

查看当前库

SELECT DATABASE();

8 CREATE SCHEMA schema_name;

创建 Schema(PostgreSQL/Oracle)

CREATE SCHEMA finance;

9 DROP SCHEMA schema_name;

删除 Schema

DROP SCHEMA finance CASCADE;

ALTER DATABASE dbname ...

修改字符集/排序规则等

ALTER DATABASE testdb CHARACTER SET utf8mb4;

11 SHOW CREATE DATABASE dbname;

查看建库语句

SHOW CREATE DATABASE testdb;

12 SELECT @@version;

查看数据库版本

SELECT @@version;

13 SELECT current_user;

查看当前用户

SELECT current_user;

14 \dt

PostgreSQL 查看所有表

\dt

15 SHOW TABLES;

MySQL 查看所有表

SHOW TABLES;





二、表结构操作命令(15 个)


命令

说明

示例

1 CREATE TABLE

创建表

CREATE TABLE users (id INT, name VARCHAR(100));

2 DROP TABLE

删除表

DROP TABLE users;

3 ALTER TABLE ... ADD

添加列

ALTER TABLE users ADD email VARCHAR(255);

4 ALTER TABLE ... DROP COLUMN

删除列

ALTER TABLE users DROP COLUMN email;

5 ALTER TABLE ... RENAME TO

重命名表

ALTER TABLE users RENAME TO customers;

6 ALTER TABLE ... MODIFY

修改字段类型

ALTER TABLE users MODIFY name VARCHAR(200);

7 RENAME TABLE

重命名(MySQL)

RENAME TABLE users TO customers;

8 DESC tablename;

查看表结构(MySQL)

DESC users;

9 \d tablename

查看表结构(PostgreSQL)

\d users

SHOW COLUMNS FROM table;

查看字段

SHOW COLUMNS FROM users;

11 TRUNCATE TABLE

清空表数据

TRUNCATE TABLE users;

12 CREATE TABLE LIKE

克隆表结构

CREATE TABLE new_users LIKE users;

13 COMMENT ON COLUMN

添加字段注释

COMMENT ON COLUMN users.name IS '用户姓名';

14 ALTER TABLE ... ADD PRIMARY KEY

设置主键

ALTER TABLE users ADD PRIMARY KEY (id);

15 ALTER TABLE ... ADD INDEX

添加索引

ALTER TABLE users ADD INDEX idx_name(name);





三、数据操作命令(DML)- 15 个


命令

用法

示例

1 INSERT INTO

插入数据

INSERT INTO users VALUES (1, '张三');

2 INSERT IGNORE

忽略重复插入

INSERT IGNORE INTO users VALUES ...

3 INSERT ... ON DUPLICATE KEY

有则更新

INSERT INTO users (id,name) VALUES (1,'张三') ON DUPLICATE KEY UPDATE name='李四';

4 SELECT * FROM table;

查询全部数据

SELECT * FROM users;

5 SELECT ... WHERE

条件查询

SELECT * FROM users WHERE id=1;

6 SELECT COUNT(*)

统计行数

SELECT COUNT(*) FROM users;

7 UPDATE table SET ... WHERE ...

更新数据

UPDATE users SET name='李四' WHERE id=1;

8 DELETE FROM

删除数据

DELETE FROM users WHERE id=1;

9 LIMIT

限制返回行数

SELECT * FROM users LIMIT 10;

ORDER BY

排序

SELECT * FROM users ORDER BY name ASC;

11 GROUP BY

分组聚合

SELECT dept, COUNT(*) FROM emp GROUP BY dept;

12 HAVING

分组条件

... GROUP BY dept HAVING COUNT(*) > 3;

13 DISTINCT

去重

SELECT DISTINCT name FROM users;

14 IN

匹配集合

SELECT * FROM users WHERE id IN (1,2,3);

15 BETWEEN

区间匹配

SELECT * FROM users WHERE age BETWEEN 20 AND 30;





四、安全与权限命令(10 个)


命令

功能

示例

1 CREATE USER

创建用户

CREATE USER 'dev'@'localhost' IDENTIFIED BY '123456';

2 GRANT

授权

GRANT SELECT, INSERT ON testdb.* TO 'dev'@'localhost';

3 REVOKE

撤权

REVOKE INSERT ON testdb.* FROM 'dev'@'localhost';

4 DROP USER

删除用户

DROP USER 'dev'@'localhost';

5 ALTER USER

修改密码

ALTER USER 'dev'@'localhost' IDENTIFIED BY 'newpass';

6 SHOW GRANTS

查看权限

SHOW GRANTS FOR 'dev'@'localhost';

7 FLUSH PRIVILEGES

刷新权限(MySQL)

FLUSH PRIVILEGES;

8 SET ROLE

切换角色(PostgreSQL/Oracle)

SET ROLE readonly;

9 CREATE ROLE

创建角色

CREATE ROLE admin;

GRANT role TO user

分配角色

GRANT admin TO dev;





五、索引与性能优化命令(10 个)


命令

功能

示例

1 CREATE INDEX

添加索引

CREATE INDEX idx_name ON users(name);

2 DROP INDEX

删除索引

DROP INDEX idx_name ON users;

3 SHOW INDEX

查看索引

SHOW INDEX FROM users;

4 EXPLAIN SELECT

查询执行计划

EXPLAIN SELECT * FROM users WHERE name='张三';

5 ANALYZE TABLE

分析表

ANALYZE TABLE users;

6 OPTIMIZE TABLE

表优化(MySQL)

OPTIMIZE TABLE users;

7 VACUUM

清理垃圾行(PostgreSQL)

VACUUM FULL users;

8 CLUSTER

聚簇排序(PostgreSQL)

CLUSTER users USING idx_name;

9 SET STATISTICS

设置统计粒度

ALTER TABLE users ALTER COLUMN name SET STATISTICS 1000;

SHOW PROCESSLIST

查看慢查询线程

SHOW FULL PROCESSLIST;





六、备份与恢复命令(10 个)


命令

功能

示例

1 mysqldump

MySQL 备份

mysqldump -u root -p testdb > backup.sql

2 mysql <

MySQL 恢复

mysql -u root -p testdb < backup.sql

3 pg_dump

PostgreSQL 备份

pg_dump -U postgres testdb > backup.sql

4 psql <

PostgreSQL 恢复

psql -U postgres testdb < backup.sql

5 exp / imp

Oracle 旧版备份/恢复工具

exp user/pass tables=emp file=emp.dmp

6 expdp / impdp

Oracle 数据泵

expdp user/pass schemas=HR directory=dir dumpfile=hr.dmp

7 BACKUP DATABASE

SQL Server 备份

BACKUP DATABASE testdb TO DISK = 'D:\backup.bak';

8 RESTORE DATABASE

SQL Server 恢复

RESTORE DATABASE testdb FROM DISK = 'D:\backup.bak';

9 binlog 备份

MySQL 二进制日志

mysqlbinlog binlog.000001 > log.sql

SELECT * INTO OUTFILE

导出 CSV

SELECT * FROM users INTO OUTFILE '/tmp/users.csv';





七、统计与监控命令(10 个)


命令

用途

示例

1 SHOW STATUS

MySQL 状态变量

SHOW STATUS LIKE 'Threads%';

2 SHOW VARIABLES

查看配置项

SHOW VARIABLES LIKE 'max_connections';

3 SELECT * FROM pg_stat_activity;

PostgreSQL 连接监控

SELECT * FROM pg_stat_activity;

4 SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;

查询活动连接

...WHERE TIME > 60;

5 SHOW ENGINE INNODB STATUS;

InnoDB 状态

死锁排查

6 SELECT * FROM pg_locks;

PostgreSQL 锁情况

查看阻塞

7 SELECT * FROM V$SESSION;

Oracle 会话监控

WHERE STATUS = 'ACTIVE';

8 SHOW FULL PROCESSLIST;

查看慢查询线程

MySQL

9 SET profiling=1;

开启查询性能分析

SHOW PROFILES;

SHOW TABLE STATUS;

表存储信息

包括行数、大小、索引等

相关推荐

赶紧收藏!编程python基础知识,本文给你全部整理好了

想一起学习编程Python的同学,趁我粉丝少,可以留言、私信领编程资料~Python基础入门既然学习Python,那么至少得了解下这门编程语言,知道Python代码执行过程吧。Python的历...

创建绩效改进计划 (PIP) 的6个步骤

每个经理都必须与未能达到期望的员工抗衡,也许他们的表现下降了,他们被分配了新的任务并且无法处理它们,或者他们处理了自己的任务,但他们的行为对他人造成了破坏。许多公司转向警告系统,然后在这些情况下终止。...

PI3K/AKT信号通路全解析:核心分子、上游激活与下游效应分子

PI3K/AKT/mTOR(PAM)信号通路是真核细胞中高度保守的信号转导网络,作用于促进细胞存活、生长和细胞周期进程。PAM轴上生长因子向转录因子的信号传导受到与其他多条信号通路的多重交叉相互作用的...

互联网公司要求签PIP,裁员连N+1都没了?

2021年刚画上句号,令无数互联网公司从业者闻风丧胆的绩效公布时间就到了,脉脉上已然炸了锅。阿里3.25、腾讯二星、百度四挡、美团绩效C,虽然名称五花八门,实际上都代表了差绩效。拿到差绩效,非但不能晋...

Python自动化办公应用学习笔记3—— pip工具安装

3.1pip工具安装最常用且最高效的Python第三方库安装方式是采用pip工具安装。pip是Python包管理工具,提供了对Python包的查找、下载、安装、卸载的功能。pip是Python官方提...

单片机都是相通的_单片机是串行还是并行

作为一个七年的从业者,单片机对于我个人而言它是一种可编程的器件,现在长见到的电子产品中几乎都有单片机的身影,它们是以单片机为核心,根据不同的功能需求,搭建不同的电路,从8位的单片机到32位的单片机,甚...

STM32F0单片机快速入门八 聊聊 Coolie DMA

1.苦力DMA世上本没有路,走的人多了,便成了路。世上本没有DMA,需要搬运的数据多了,便有了DMA。大多数同学应该没有在项目中用过这个东西,因为一般情况下也真不需要这个东西。在早期的单片机中...

放弃51单片机,直接学习STM32开发可能会面临的问题

学习51单片机并非仅仅是为了学习51本身,而是通过它学习一种方法,即如何仅仅依靠Datasheet和例程来学习一种新的芯片。51单片机相对较简单,是这个过程中最容易上手的选择,而AVR单片机则更为复杂...

STM32串口通信基本原理_stm32串口原理图

通信接口背景知识设备之间通信的方式一般情况下,设备之间的通信方式可以分成并行通信和串行通信两种。并行与串行通信的区别如下表所示。串行通信的分类1、按照数据传送方向,分为:单工:数据传输只支持数据在一个...

单片机的程序有多大?_单片机的程序有多大内存

之前一直很奇怪一个问题,每次写好单片机程序之后,用烧录软件进行烧录时,能看到烧录文件也就是hex的文件大小:我用的单片机芯片是STM32F103C8T6,程序储存器(flash)只有64K。从...

解析STM32单片机定时器编码器模式及其应用场景

本文将对STM32单片机定时器编码器模式进行详细解析,包括介绍不同的编码器模式、各自的优缺点以及相同点和不同点的应用场景。通过阅读本文,读者将对STM32单片机定时器编码器模式有全面的了解。一、引言...

两STM32单片机串口通讯实验_两个32单片机间串口通信

一、实验思路连接两个STM32单片机的串口引脚,单片机A进行发送,单片机B进行接收。单片机B根据接收到单片机A的指令来点亮或熄灭板载LED灯,通过实验现象来验证是否通讯成功。二、实验器材两套STM32...

基于单片机的智能考勤机设计_基于51单片机的指纹考勤机

一、设计背景随着科技水平的不断发展,在这么一个信息化的时代,智能化信息处理已是提高效率、规范管理和客观审查的最有效途径。近几年来,国内很多公司都在加强对企业人员的管理,考勤作为企业的基础管理,是公司...

STM32单片机详细教学(二):STM32系列单片机的介绍

大家好,今天给大家介绍STM32系列单片机,文章末尾附有本毕业设计的论文和源码的获取方式,可进群免费领取。前言STM32系列芯片是为要求高性能、低成本、低功耗的嵌入式应用设计的ARMCortexM...

STM32单片机的 Hard-Fault 硬件错误问题追踪与分析

有过单片机开发经验的人应该都会遇到过硬件错误(Hard-Fault)的问题,对于这样的问题,有些问题比较容易查找,有些就查找起来很麻烦,甚至可能很久都找不到问题到底是出在哪里。特别是有时候出现一次,后...