常用的SQL语句(MySQL运行)

一、库操作(创建 / 查看 / 使用数据库)

  1. 建一个数据库
sql 复制代码
CREATE DATABASE mydb;
  1. 看有哪些库
sql 复制代码
SHOW DATABASES;

以下这四个是 MySQL 安装后自带的系统数据库,不是你自己创建的业务库,主要负责管理 MySQL 自身运行,一般不要手动修改或删除它们。

(1)information_schema

元数据字典:存储数据库、表、列等所有对象的结构信息,是虚拟库,只读,用于查询结构。

(2)mysql

核心系统库:存用户账号、权限、日志等核心配置,是 MySQL 正常运行的基础,别直接改表。

(3)performance_schema

性能监控库:收集服务器运行时性能数据(慢查询、资源占用等),用于调优和故障排查。

(4)sys

易用封装库:对前两个系统库做了视图封装,让性能数据更易读,简化运维查询。

  1. 进入这个库
sql 复制代码
USE mydb;
  1. 删除库
sql 复制代码
DROP DATABASE mydb;

二、表操作(建表 / 看表 / 删表)

  1. 建一张最简单的表
sql 复制代码
CREATE TABLE student(
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(20),
  age INT
);
  1. 看有哪些表
sql 复制代码
SHOW TABLES;
  1. 看表结构
sql 复制代码
DESC student;
  1. 删除表
sql 复制代码
DROP TABLE student;

三、增(往表里加数据)INSERT

  1. 加一条数据
sql 复制代码
INSERT INTO student(name,age) VALUES('沈长泽',19);
  1. 一次加多条
sql 复制代码
INSERT INTO student(name,age) VALUES
('单鸣',18),
('白新羽',20);

四、查(看数据)SELECT

  1. 查全部
sql 复制代码
SELECT * FROM student;
  1. 只查名字
sql 复制代码
SELECT name FROM student;
  1. 条件查:年龄 = 18
sql 复制代码
SELECT * FROM student WHERE age=18;
  1. 模糊查:名字带 "沈
sql 复制代码
SELECT * FROM student WHERE name LIKE '%沈%';
  1. 排序:按年龄从大到小(ASC为升序,DESC为降序)
sql 复制代码
SELECT * FROM student ORDER BY age DESC;

五、改(更新数据)UPDATE

把单鸣的年龄改成 20:一定要加 WHERE,不然全表被改

sql 复制代码
UPDATE student SET age=20 WHERE name='单鸣';

六、删(删除数据)DELETE

删年龄 = 20 的

sql 复制代码
DELETE FROM student WHERE age=20;

七、数据分析常用

  1. 统计一共多少人
sql 复制代码
SELECT COUNT(*) FROM student;
  1. 求平均年龄
sql 复制代码
SELECT AVG(age) FROM student;
  1. 最大年龄(最小年龄用MIN)
sql 复制代码
SELECT MAX(age) FROM student;
  1. 年龄总和
sql 复制代码
SELECT SUM(age) FROM student;
  1. 按年龄分组统计
sql 复制代码
SELECT age, COUNT(*) FROM student GROUP BY age;

八、用户 / 账户操作(MySQL 管理员常用)

  1. 看当前用户
sql 复制代码
SELECT USER();
  1. 创建新用户
sql 复制代码
CREATE USER 'testuser'@'localhost' IDENTIFIED BY '123456';
  1. 给这个用户所有权限
sql 复制代码
GRANT ALL ON *.* TO 'testuser'@'localhost';
  1. 刷新权限
sql 复制代码
FLUSH PRIVILEGES;
  1. 删除用户
sql 复制代码
DROP USER 'testuser'@'localhost';

九、最简单的全流程实战

sql 复制代码
CREATE DATABASE test;
USE test;

CREATE TABLE user(
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(20),
  score INT
);

INSERT INTO user(name,score) VALUES('小明',90),('小红',85),('小刚',99);

SELECT * FROM user;
SELECT AVG(score) FROM user;
SELECT MAX(score) FROM user;

UPDATE user SET score=100 WHERE name='小明';

DELETE FROM user WHERE score<90;
相关推荐
复园电子3 小时前
企业级PDF批量盖章方案选型指南
数据库·pdf
AI-好学者10 小时前
阶段一-图数据库基础与PropertyGraph模型
数据库·rag·knowledge graph·graphrag
其实防守也摸鱼11 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
懒鸟一枚11 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
龙仔72511 小时前
SQL Server 创建只读账号完整操作(分两种场景:SSMS图形界面 + T-SQL脚本)
数据库·sql·oracle
霁月的小屋12 小时前
生产环境中的事务实践——银行系统上线记(四)
数据库
Database_Cool_12 小时前
AI 应用数据底座首选:阿里云 PolarDB 为大模型 RAG 提供一体化支撑
数据库·阿里云
玖玥拾12 小时前
C# 语言进阶(十五)C# 游戏服务端 MySQL 数据库
服务器·开发语言·网络·数据库·mysql·c#
IvorySQL13 小时前
PG 日报|社区讨论重构 pg_hba 配置文件格式
数据库·人工智能·postgresql·重构·ivorysql
逝水无殇14 小时前
C# 文件的输入与输出详解
开发语言·数据库·后端·c#