12.15

一、数据库常用操作(除了创建/删除)

1. 查看所有数据库
sql
SHOW DATABASES; -- 列出MySQL中所有数据库
 
2. 切换当前数据库(操作表/数据前必须执行)
sql
USE 数据库名; -- 示例:USE shop_db;
 
3. 查看当前使用的数据库
sql
SELECT DATABASE(); -- 输出当前活跃的数据库
 
4. 查看数据库创建语句(含字符集等配置)
sql
SHOW CREATE DATABASE 数据库名; -- 示例:SHOW CREATE DATABASE blog_db;

二、数据表常用操作(建表/查改删)

  1. 创建表(核心,需指定字段、类型、约束)

语法: CREATE TABLE [IF NOT EXISTS] 表名 (字段1 类型 约束, 字段2 类型 约束, ...); 
示例(创建用户表  user ,含主键、非空、唯一约束):

sql
CREATE TABLE IF NOT EXISTS user (
id INT PRIMARY KEY AUTO_INCREMENT, -- 主键,自增(唯一标识每行数据)
username VARCHAR(50) NOT NULL UNIQUE, -- 用户名,非空且唯一
age INT DEFAULT 0, -- 年龄,默认值0
create_time DATETIME DEFAULT CURRENT_TIMESTAMP -- 创建时间,默认当前时间
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 引擎(InnoDB支持事务)+ 字符集

  1. 查看表相关信息
  • 查看当前数据库所有表: SHOW TABLES;
  • 查看表结构(字段、类型、约束): DESC 表名; (或  DESCRIBE 表名; )
  • 查看表创建语句: SHOW CREATE TABLE 表名;
  1. 修改表(改字段/加字段/删字段)
  • 新增字段(示例:给  user  表加  phone  字段):
    sql
    ALTER TABLE user ADD phone VARCHAR(20) UNIQUE; -- 唯一约束(避免重复手机号)
  • 修改字段类型(示例:将  age  从  INT  改为  TINYINT ):
    sql
    ALTER TABLE user MODIFY age TINYINT DEFAULT 0;
  • 删除字段(示例:删除  user  表的  phone  字段):
    sql
    ALTER TABLE user DROP phone;
  1. 删除表

sql
DROP TABLE IF EXISTS 表名; -- 加IF EXISTS避免表不存在时报错

三、数据常用操作(增删改查,CRUD)

以  user  表为例,字段: id (自增)、 username 、 age 、 create_time 。

  1. 新增数据(INSERT)
  • 全字段插入(需按表字段顺序,自增字段可写  NULL  或省略):
    sql
    INSERT INTO user (username, age) VALUES ('zhangsan', 20); -- create_time用默认值
  • 批量插入(高效,避免多次执行INSERT):
    sql
    INSERT INTO user (username, age)
    VALUES ('lisi', 22), ('wangwu', 18);
  1. 查询数据(SELECT,最常用,支持筛选/排序/限制)
  • 查所有数据(慎用!数据量大时卡顿):
    sql
    SELECT * FROM user; -- * 代表所有字段
  • 查指定字段+筛选条件(示例:查年龄>18的用户名和年龄):
    sql
    SELECT username, age FROM user WHERE age > 18;
  • 排序+限制条数(示例:按年龄降序,取前2条):
    sql
    SELECT username, age FROM user ORDER BY age DESC LIMIT 2;
  1. 修改数据(UPDATE,必须加WHERE!否则改全表)

sql
UPDATE user SET age = 21 WHERE username = 'zhangsan'; -- 仅改zhangsan的年龄

  1. 删除数据(DELETE,必须加WHERE!否则删全表)

sql
DELETE FROM user WHERE username = 'wangwu'; -- 仅删wangwu的数据

四、权限常用操作(管理用户访问)

  1. 创建用户(示例:创建用户  dev ,允许本地访问)

sql
CREATE USER IF NOT EXISTS 'dev'@'localhost' IDENTIFIED BY '123456'; -- 密码123456

  • localhost  表示仅本地访问,远程访问用  % (如  'dev'@'%' )。
  1. 授予权限(示例:给  dev  授予  shop_db  库所有表的增删改查权限)

sql
GRANT SELECT, INSERT, UPDATE, DELETE ON shop_db.* TO 'dev'@'localhost';

  • 全权限用  ALL (如  GRANT ALL ON shop_db.* TO 'dev'@'localhost' );
  • 授予后需刷新权限: FLUSH PRIVILEGES;
  1. 查看用户权限

sql
SHOW GRANTS FOR 'dev'@'localhost';

  1. 撤销权限

sql
REVOKE DELETE ON shop_db.* FROM 'dev'@'localhost'; -- 撤销删除权限
FLUSH PRIVILEGES;

五、常用工具命令(终端操作)

1. 登录MySQL(远程登录需加  -h 服务器IP ):
bash
mysql -u 用户名 -p # 示例:mysql -u root -p;mysql -u dev -h 192.168.1.100 -p
 
2. 退出MySQL: EXIT;  或  QUIT; 
3. 执行SQL文件(导入数据,如备份文件):
bash
mysql -u root -p 数据库名 < 备份文件.sql # 示例:mysql -u root -p shop_db < shop_backup.sql

以上操作覆盖了 MySQL 日常使用的 90% 场景,重点记住 增删改查需加条件(WHERE/LIMIT)、创建表指定字符集和引擎、授权遵循最小权限原则,避免误操作导致数据丢失。以下是 MySQL 中 最常用的核心操作,覆盖数据库、表、数据、权限四大场景,均为日常开发/管理高频使用,附简洁语法和示例:

一、数据库常用操作(除了创建/删除)

1. 查看所有数据库
sql
SHOW DATABASES; -- 列出MySQL中所有数据库
 
2. 切换当前数据库(操作表/数据前必须执行)
sql
USE 数据库名; -- 示例:USE shop_db;
 
3. 查看当前使用的数据库
sql
SELECT DATABASE(); -- 输出当前活跃的数据库
 
4. 查看数据库创建语句(含字符集等配置)
sql
SHOW CREATE DATABASE 数据库名; -- 示例:SHOW CREATE DATABASE blog_db;

二、数据表常用操作(建表/查改删)

  1. 创建表(核心,需指定字段、类型、约束)

语法: CREATE TABLE [IF NOT EXISTS] 表名 (字段1 类型 约束, 字段2 类型 约束, ...); 
示例(创建用户表  user ,含主键、非空、唯一约束):

sql
CREATE TABLE IF NOT EXISTS user (
id INT PRIMARY KEY AUTO_INCREMENT, -- 主键,自增(唯一标识每行数据)
username VARCHAR(50) NOT NULL UNIQUE, -- 用户名,非空且唯一
age INT DEFAULT 0, -- 年龄,默认值0
create_time DATETIME DEFAULT CURRENT_TIMESTAMP -- 创建时间,默认当前时间
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; -- 引擎(InnoDB支持事务)+ 字符集

  1. 查看表相关信息
  • 查看当前数据库所有表: SHOW TABLES;
  • 查看表结构(字段、类型、约束): DESC 表名; (或  DESCRIBE 表名; )
  • 查看表创建语句: SHOW CREATE TABLE 表名;
  1. 修改表(改字段/加字段/删字段)
  • 新增字段(示例:给  user  表加  phone  字段):
    sql
    ALTER TABLE user ADD phone VARCHAR(20) UNIQUE; -- 唯一约束(避免重复手机号)
  • 修改字段类型(示例:将  age  从  INT  改为  TINYINT ):
    sql
    ALTER TABLE user MODIFY age TINYINT DEFAULT 0;
  • 删除字段(示例:删除  user  表的  phone  字段):
    sql
    ALTER TABLE user DROP phone;
  1. 删除表

sql
DROP TABLE IF EXISTS 表名; -- 加IF EXISTS避免表不存在时报错

三、数据常用操作(增删改查,CRUD)

以  user  表为例,字段: id (自增)、 username 、 age 、 create_time 。

  1. 新增数据(INSERT)
  • 全字段插入(需按表字段顺序,自增字段可写  NULL  或省略):
    sql
    INSERT INTO user (username, age) VALUES ('zhangsan', 20); -- create_time用默认值
  • 批量插入(高效,避免多次执行INSERT):
    sql
    INSERT INTO user (username, age)
    VALUES ('lisi', 22), ('wangwu', 18);
  1. 查询数据(SELECT,最常用,支持筛选/排序/限制)
  • 查所有数据(慎用!数据量大时卡顿):
    sql
    SELECT * FROM user; -- * 代表所有字段
  • 查指定字段+筛选条件(示例:查年龄>18的用户名和年龄):
    sql
    SELECT username, age FROM user WHERE age > 18;
  • 排序+限制条数(示例:按年龄降序,取前2条):
    sql
    SELECT username, age FROM user ORDER BY age DESC LIMIT 2;
  1. 修改数据(UPDATE,必须加WHERE!否则改全表)

sql
UPDATE user SET age = 21 WHERE username = 'zhangsan'; -- 仅改zhangsan的年龄

  1. 删除数据(DELETE,必须加WHERE!否则删全表)

sql
DELETE FROM user WHERE username = 'wangwu'; -- 仅删wangwu的数据

posted @ 2025-12-15 21:52  喜欢写轻小说的日央  阅读(2)  评论(0)    收藏  举报