游客发表
Navicat 里写 SQL,用s语句最直接的用s语句方式就是打开一个查询窗口。工具栏上那个“新建查询”按钮,用s语句或者直接按 Ctrl+Q,用s语句就能弹出一个空白编辑器。用s语句别把它想复杂了,用s语句它就是用s语句个带语法高亮和自动补全的记事本,你敲什么它执行什么。用s语句我见过有人非要去点“工具”菜单里找“SQL 编辑器”,用s语句其实右键点数据库连接,用s语句选“新建查询”一样快。用s语句
连上数据库之后,用s语句左边列表里选中你要操作的用s语句库或表,再开查询窗口。用s语句如果你没选库,用s语句直接写 SELECT * FROM users,Navicat 会报错说没指定数据库——它不会自动帮你猜。这时候要么在查询窗口上方那个下拉框里选库,要么在 SQL 里写全名,比如 mydb.users。我习惯先选库再写,省得每次都要加前缀。
写 SELECT 的时候,Navicat 的自动补全会弹出来。你打 sel,它可能提示 SELECT;你打表名开头,它列出所有匹配的表。但别太依赖它,有时候它补全的字段名不对,尤其是多表连接时。我一般关掉自动补全,手动敲,快且准。按 Ctrl+Enter 执行,结果集出现在下方网格里。想改数据?直接双击单元格就能编辑,改完点对勾保存。这比写 UPDATE 语句方便,但批量改还是得用 SQL。
执行多条语句时,Navicat 默认只跑光标所在的那一条。如果你想一次跑完整个脚本,得选中所有语句,或者用“执行当前查询”旁边的下拉箭头选“执行整个脚本”。我踩过坑:写了个建表加插数据的脚本,只跑了建表,插数据没执行,还以为是语法错了。后来发现是没选中全部。现在我都习惯 Ctrl+A 再 Ctrl+Enter。
导出查询结果很简单。结果网格右上角有个“导出”按钮,选 CSV 或 Excel,下一步下一步就行。但注意:如果结果集很大,比如几十万行,Navicat 会卡一会儿。我试过导 50 万行到 CSV,它内存直接飙到 2G。后来学乖了,先用 LIMIT 限制行数,或者用 SELECT ... INTO OUTFILE 让 MySQL 自己导,快得多。
写 UPDATE 或 DELETE 之前,强烈建议先写 SELECT 看看影响哪些行。Navicat 有个“事务”按钮,默认是自动提交。你执行一条 DELETE,没加 WHERE,它真删。我同事干过这事,删了整张表,还好有备份。现在我都先开事务:点工具栏那个“开始事务”,执行完检查行数,确认无误再提交。回滚按钮就在旁边,点一下全撤销。
Navicat 的 SQL 预览功能挺实用。你右键一张表,选“转储 SQL 文件” → “仅结构”,它能生成建表语句。想改字段类型?不用手写 ALTER,在表设计界面改完,点“保存”,Navicat 自动生成并执行 ALTER 语句。你可以在“历史日志”里看到它到底跑了什么 SQL。这个日志在“工具” → “历史日志”里,排错时很有用。
最后说个细节:Navicat 的查询窗口支持变量。比如你写 SET @id = 5; SELECT * FROM users WHERE id = @id;,它能跑。但别指望它像存储过程那样复杂。我一般只用它做临时参数,省得反复改数字。另外,不同数据库的 SQL 方言不一样,Navicat 不会帮你翻译。你在 MySQL 里写 LIMIT,换到 SQL Server 就得改成 TOP。它只是客户端,不负责语法转换。
友情链接