devStandard/docs/learning/4-nodejs/7-免费的DBeaver.md
2025-03-29 14:35:49 +08:00

130 lines
4.0 KiB
Markdown
Executable File

# DBeaver
> macos上, 用来代替Navicat的开源免费工具
## 下载
直接google搜索下载社区版就行
## 语言设置
如果需要设置中文, `Preferences --> 搜索language`
虽然可以, 但不推荐, 因为出了问题, 搜答案还是搜英文来得快
## 驱动镜像
`Preferences 搜索 Maven`, 添加 `http://maven.aliyun.com/nexus/content/groups/public/`并置顶, 不然驱动下载很慢
## 连接mysql
1. 点右上角的加号, 输入主机, 端口, 数据库名(似乎不填也可以), 用户名, 密码
2. mysql 8 需要在 Drive 里打开一项设置, `allowPublicKeyRetrieval TRUE`, 不然会报错`Public Key Retrieval is not allowed
3. 第一次连接需要下两个jar驱动, 速度实在够慢的
## 建表
1. 建数据库: databases --> 右键:Create New Database
2. 建表: 展开数据库 --> Tables右键:Create New Table
3. 建列: 双击表 --> columns --> 右键:Create New Column
4. 自增键: 选约束 constraints --> 右键:Create New Constraint --> type选择 PRIMARY KEY -->勾中id
5. 外键: 先创建列, 点击 Foreign Keys --> Create New Foreign Key --> 选择 Reference table --> Column 选要约束的列
![|1052x408](https://img.081024.xyz/20230324134112.png)
* 点击 DDL 可以看到完整的建表语句
* 外键约束: ==尽量不使用,维护成本非常高. 只作为一个普通字段==
![7-免费的DBeaver-20240602031626797|541x356](https://img.081024.xyz/202406020316210.jpg)
## sql查询
注意点: 在2的位置,需要先选中要查的数据库
![|569x270](https://img.081024.xyz/20230324134120.png)
## 设置
### 外观
* sql字体大小`Preferences -> User Interface -> Appearance -> Colors and Fonts -> DBeaver Fonts -> Monospace font` , 适同于23.0.0版本, 有时不生效, 重启下软件
* 格式化: 搜索format, 选择Default formatter, 快捷键是 ctrl+shift+f
* 快捷键: `Preferences -> User Interface -> keys`, 把 resresh result set 改为 `⌘R`, 把 apply changes 改为 `⌘S`
## 技巧
### 复制为sql脚本
![](https://img.081024.xyz/20230324184644.png)
### 回滚功能
会记录每一步sql脚本变化
==truncate操作无法回滚==
![](https://img.081024.xyz/20230324184659.png)
### 字符集
utf8mb4 是 utf8的超集, 兼容4个字符的表情
使用数据库管理工具只修改库的字符集,修改前的表不会变,修改后新增表会变,字段同理
```mysql
-- 特殊emoji表情 ✊🙏😃😅🥹😀😇👴🤣
-- 查看库的字符集 [show varuables是查看mysql的系统参数]
show variables where Variable_name like 'collation%';
-- 查看表的字符集
SHOW table status from 库名 like '表名';
-- 表中所有字段的字符集
show full columns from 表名;
-- 修改库的字符集
ALTER DATABASE 库名 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
-- 修改表和表中所有字段的字符集
ALTER TABLE 表名 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- 只修改表的字符集
ALTER TABLE 表名 DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE utf8mb4_general_ci;
-- 修改某个字段字符集:
ALTER TABLE 表名 MODIFY nick_name VARCHAR(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
-- 修改库中所有表的字符集
SELECT
CONCAT("ALTER TABLE `", TABLE_NAME,"` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;")
AS target_tables
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA="库名" # 修改为需要更改的数据库名称
AND TABLE_TYPE="BASE TABLE"
```
## 模板
在设置里可以添加模板`Templates`, 类似关键字自动补全
```mysql
-- sf
select * from ${table};
```
## 复制表
1. 用shift+左键选中多个要复制的表
2. 右键, Generate SQL -- DDL, 生成多条创建表的sql脚本
3. 在需要导入的数据库, 执行这些sql脚本
4. ctrl+enter只能执行一条, 右键--->execute-->execute sql script
5. 在导入的表上, 右键-->import data --> table --> 一一对应
方法2:
1. 在数据库/表上右键选择转存数据库: tools--> Dump databasel
2. 在导入的数据库, tools --> Restore database