本文档详细记录在 DataGrip 工具中操作 MySQL 数据库的全流程,包括登录 MySQL、创建数据库、切换用户、创建表、导入数据、查询数据等核心步骤
一、登录 MySQL 服务器
1.1 打开 DataGrip 并添加数据源
- 启动 DataGrip 软件,进入主界面;
- 打开左侧「Database」工具窗口(若未显示,通过顶部菜单栏「View > Tool Windows > Database」调出);
- 点击 Database 窗口左上角的「+」图标,在下拉菜单中选择「Data Source > MySQL」。
1.2 配置 MySQL 连接信息
在弹出的「Data Source Properties」窗口中,按以下要求填写信息:
|
配置项 |
说明 |
|
Host |
MySQL 服务器地址(本地连接默认填localhost或127.0.0.1) |
|
Port |
MySQL 端口号(默认3306,若修改过端口需填写自定义端口) |
|
User |
登录用户名(初始默认用户为root,若有其他用户可填写对应用户名) |
|
Password |
对应用户名的密码(输入时以圆点隐藏,确保密码正确) |
|
Database |
暂不填写(后续创建数据库后再指定) |
填写完成后,点击窗口下方的「Test Connection」按钮:
- 若提示「Su***ess」,说明连接配置正确;
- 若连接失败,检查:① MySQL 服务是否已启动;② 用户名 / 密码是否正确;③ 端口是否被占用。
1.3 完成登录
点击「Data Source Properties」窗口右下角的「OK」按钮,MySQL 服务器会显示在左侧 Database 窗口中,展开后可查看服务器上已存在的数据库,登录操作完成。
二、创建数据库
提供两种创建方式,可根据操作习惯选择:
2.1 图形化界面创建(推荐新手)
- 在左侧 Database 窗口中,右键点击已连接的 MySQL 服务器名称;
- 在下拉菜单中选择「New > Database」;
- 在弹出的「Create Database」窗口中,配置以下信息:
-
- Name:数据库名称(自定义,如school_db,需符合 MySQL 命名规范:不包含特殊字符、不与关键字重复);
-
- Character set:选择utf8mb4(支持中文、emoji 等特殊字符,避免乱码);
-
- Collation:默认选择utf8mb4_general_ci(与utf8mb4字符集匹配,无需手动修改);
- 点击「OK」按钮,新创建的数据库会自动显示在 MySQL 服务器的数据库列表中(若未显示,右键点击服务器名称选择「Refresh」刷新)。
2.2 SQL 命令创建(适合熟悉 SQL 的用户)
- 右键点击已连接的 MySQL 服务器名称,选择「New > SQL File」;
- 在弹出的窗口中输入 SQL 文件名(如create_database.sql),点击「OK」;
- 在 SQL 编辑器中输入以下代码(以创建school_db数据库为例):
-- 若数据库不存在则创建,指定字符集和排序规则
CREATE DATABASE IF NOT EXISTS school_db
CHARACTER SET utf8mb4
COLLATE utf8mb4_general_ci;
- 确认 SQL 编辑器右上角的「数据库连接」已选中当前 MySQL 服务器;
- 点击编辑器左侧的绿色「运行」按钮(或按快捷键Ctrl+Enter),执行 SQL 语句;
- 执行成功后,底部控制台会显示「Query executed su***essfully」,刷新数据库列表即可看到新创建的school_db。
三、切换用户(可选,多用户管理场景)
若需使用非root用户操作数据库(如只读用户、开发用户),可按以下步骤切换:
- 右键点击左侧 Database 窗口中的 MySQL 服务器名称,选择「Properties」;
- 在「Data Source Properties」窗口中,找到「User & Password」选项,点击右侧的「+」图标;
- 在弹出的「Add User」窗口中,输入新用户名和对应的密码,点击「OK」;
- 选中新添加的用户,点击「Test Connection」验证连接(确保该用户已在 MySQL 中创建并授予权限);
- 验证通过后,点击「OK」关闭窗口,完成用户切换。
补充说明:若新用户无操作权限,需用root用户登录后执行授权 SQL(示例:授予dev_user操作school_db的权限):
GRANT SELECT, INSERT, UPDATE, DELETE ON school_db.* TO 'dev_user'@'localhost';
FLUSH PRIVILEGES; -- 刷新权限使其生效
四、创建数据库表(以students表为例)
4.1 选择目标数据库
双击左侧 Database 窗口中的school_db数据库,使其名称变为粗体(表示当前工作数据库,后续操作默认在该数据库下执行)。
4.2 图形化界面创建表
- 展开school_db数据库下的「Tables」节点,右键点击「Tables」,选择「New > Table」;
- 在弹出的「Create Table」窗口中,先在顶部「Table name」输入框填写表名(如students);
- 点击窗口中间的「+」按钮,依次添加表字段并配置属性,示例配置如下:
|
列名(Name) |
数据类型(Data Type) |
约束(Constraints) |
说明(***ment) |
|
id |
INT |
PK(主键)+ AI(自增)+ NN(非空) |
学生唯一 ID(自动生成,不重复) |
|
name |
VARCHAR(50) |
NN(非空) |
学生姓名(必填) |
|
age |
INT |
- |
学生年龄(可选) |
|
gender |
VARCHAR(2) |
- |
学生性别(如 “男”“女”) |
|
score |
DECIMAL(5,2) |
- |
学生成绩(总 5 位,小数 2 位) |
- (可选)添加表注释:切换到「***ments」标签页,在输入框中填写表描述(如 “存储学生基本信息和成绩”);
- 点击窗口底部的「OK」按钮,students表会自动添加到「Tables」节点下,创建完成。
4.3 SQL 命令创建表
- 右键点击school_db数据库,选择「New > SQL File」,输入文件名(如create_students_table.sql);
- 在 SQL 编辑器中输入以下代码:
-- 若表不存在则创建,包含字段约束和注释
CREATE TABLE IF NOT EXISTS students (
id INT PRIMARY KEY AUTO_INCREMENT ***MENT '学生唯一ID(自增)',
name VARCHAR(50) NOT NULL ***MENT '学生姓名(必填)',
age INT ***MENT '学生年龄',
gender VARCHAR(2) ***MENT '学生性别(男/女)',
score DECIMAL(5,2) ***MENT '学生成绩(5位数字,2位小数)'
) ***MENT '学生信息表'; -- 表注释
- 选中 SQL 代码,点击「运行」按钮(或Ctrl+Enter),执行成功后刷新「Tables」列表,即可看到students表。
五、导入数据(以 CSV 文件为例)
5.1 准备 CSV 数据文件
- 用 Excel 或记事本创建students_data.csv文件,内容格式如下(第一行为列名,后续为数据,用逗号分隔):
name,age,gender,score
张三,18,男,92.50
李四,19,女,88.00
王五,17,男,95.50
赵六,18,女,90.00
- 保存文件时,选择编码格式为「UTF-8」(避免中文乱码),并确认文件后缀为.csv。
5.2 导入数据到students表
- 在左侧 Database 窗口中,右键点击students表,选择「Import Data from File」;
- 在文件选择窗口中,找到并选中students_data.csv,点击「Open」;
- 在弹出的「Import Data」配置窗口中,按以下要求检查配置:
-
- File Encoding:选择「UTF-8」(与 CSV 文件编码一致);
-
- First row is header:勾选(表示 CSV 第一行为列名,不视为数据);
-
- Column Mapping:确认 CSV 列与表字段一一对应(如 “name” 对应 “name”、“age” 对应 “age”,默认按名称匹配,无需手动调整);
- 点击「OK」按钮,开始导入数据,导入完成后会弹出提示(如 “4 rows imported su***essfully”,表示 4 条数据导入成功)。
六、查询数据
提供两种查询方式,满足不同操作需求:
6.1 可视化查看数据(快速浏览)
- 在左侧 Database 窗口中,右键点击students表;
- 在下拉菜单中选择「Edit Data」,会弹出数据编辑窗口;
- 窗口中以表格形式展示students表的所有数据,可直接手动添加、修改或删除数据(修改后点击「保存」按钮生效)。
6.2 SQL 命令查询数据(灵活筛选)
- 右键点击school_db数据库,选择「New > SQL File」,输入文件名(如query_students.sql);
- 在 SQL 编辑器中输入查询代码(示例如下),可根据需求修改条件:
-- 1. 查询所有学生的完整信息
SELECT * FROM students;
-- 2. 查询成绩大于90分的学生(只显示姓名和成绩)
SELECT name, score FROM students WHERE score > 90;
-- 3. 按年龄升序排列,查询前3名学生
SELECT name, age, score FROM students ORDER BY age ASC LIMIT 3;
-- 4. 统计不同性别的学生人数
SELECT gender, COUNT(*) AS student_count FROM students GROUP BY gender;
- 选中需要执行的 SQL 语句,点击「运行」按钮(或按Ctrl+Enter);
- 执行结果会显示在下方的「Result」窗口中,可通过窗口中的「导出」按钮将结果保存为 Excel、CSV 等格式。
七、常见问题及解决方案
|
问题现象 |
可能原因 |
解决方案 |
|
导入数据时提示 “列数量不匹配” |
CSV 列数与表字段数不一致;列名匹配错误 |
1. 检查 CSV 文件列数是否与表字段数一致;2. 在导入配置窗口手动调整列映射关系 |
|
查询中文数据显示乱码 |
数据库 / 表字符集不是 utf8mb4;CSV 编码不是 UTF-8 |
1. 重新创建数据库 / 表,指定字符集为 utf8mb4;2. 重新保存 CSV 为 UTF-8 编码 |
|
创建表时提示 “权限不足(A***ess denied)” |
当前用户无 CREATE TABLE 权限 |
1. 切换到 root 用户操作;2. 用 root 用户授予当前用户创建表权限(参考 “切换用户” 章节的授权 SQL) |
|
连接 MySQL 时提示 “端口 3306 被占用” |
其他程序占用了 3306 端口;MySQL 服务未启动 |
1. 关闭占用 3306 端口的程序;2. 重启 MySQL 服务(通过 Windows 服务管理器或命令行) |