# 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