03 – Query console & chạy truy vấn
↩️ Mục lục · ⬅️ Kết nối cơ sở dữ liệu · ➡️ Data editor & giao dịch
1. Query console là gì?
Query console (cửa sổ soạn và chạy SQL) là file SQL được tạo tự động cho mỗi data source, luôn gắn với data source đó và lưu ngoài project của IDE. Dùng giống terminal: gõ lệnh, bấm Ctrl+Enter.
- Mở console mặc định: chọn data source trong Database Explorer →
F4. - Tạo console mới:
Ctrl+Shift+Q, hoặc chuột phải data source →New | Query Console. - Vị trí: Files tool window (
Alt+2) → Scratches and Consoles | Database Consoles. - Có thể duplicate, rename (
Shift+F6), gom vào thư mục theo data source. - Chọn default schema ở danh sách
<schema>góc phải trên: khi đó có thể bỏ tên schema/database trong câu lệnh.
2. Chạy lệnh
| Việc | Cách làm |
|---|---|
| Chạy lệnh | Ctrl+Enter hoặc nút Execute |
| Nhiều lệnh | Hiện danh sách chọn; luôn có mục chạy tất cả |
| Chạy một phần | Bôi đen (select) đoạn mã → DataGrip chỉ chạy phần được chọn (có thể là subquery hoặc nhóm lệnh) |
| Chạy lệnh từ file SQL | Mở file trong Files tool window; nếu file chưa gắn data source thì chọn ở danh sách <data source> |
| Chạy từ Structure tool window | Alt+7 → chọn lệnh → chuột phải → Execute |
| Chạy SELECT và lưu thẳng ra file | Chuột phải câu SELECT → Execute to File → chọn định dạng |
| Chạy stored procedure/function | Chuột phải hàm → Run Function → nhập tham số → OK (hỗ trợ PostgreSQL, SQL Server, Oracle, MySQL) |
| Huỷ lệnh đang chạy | Nút Cancel Running Statements |
Giới hạn file SQL: tối đa 20 MB; nếu lớn hơn, chỉ hiển thị 2.5 MB đầu.
Thông báo: DataGrip có thể báo khi truy vấn chạy quá 20 giây (bật ở Appearance & Behavior | Notifications → nhóm Database queries that took much time).
Huỷ truy vấn
- Bấm Cancel Running Statements hai lần → DataGrip hiện cảnh báo cho phép terminate remote process hoặc chờ thêm.
- Nút Deactivate trên Database Explorer chỉ dừng truy vấn ở phía DataGrip, truy vấn vẫn chạy trong CSDL.
- Có thể huỷ cả việc đang tạo kết nối (quan trọng với lệnh đầu tiên của console vì nó cũng tạo kết nối).
3. Kết quả truy vấn
- Lệnh trả dữ liệu (như
SELECT) → hiện ở tab Result (tên tab là tên bảng đầy đủ) trong Services tool window. - Lệnh không trả dữ liệu → hiện ở tab Output.
- Bật In-Editor Results để kết quả hiện ngay dưới console.
- Chi tiết thao tác với lưới dữ liệu: Data editor & giao dịch.
4. Resolve mode (chế độ phân giải đối tượng)
DataGrip cần “resolve” (xác định) tên bảng/cột trong code thuộc ngữ cảnh nào để gợi ý code và điều hướng đúng.
| Chế độ | Mặc định cho | Hành vi | Dùng khi |
|---|---|---|---|
| Playground | Query console | Mọi đối tượng resolve về cùng một ngữ cảnh | Các lệnh rời rạc, không chạy như một script |
| Script | File SQL cục bộ | Lệnh USE (T-SQL) hoặc SET search_path TO (PostgreSQL) đổi ngữ cảnh cho các lệnh phía sau | Code là một script chạy liền mạch |
Ví dụ (từ tài liệu): ở chế độ Script, sau SET search_path TO information_schema, bảng actor không còn được resolve nếu nó không tồn tại trong schema đó.
5. Tham số người dùng (User parameters)
Nếu câu lệnh có tham số, DataGrip hỏi giá trị trước khi chạy. Cấu hình mẫu nhận diện tham số (bằng regex) tại Ctrl+Alt+S → Database | Query Execution | User Parameters.
- Positional (theo thứ tự): mỗi lần xuất hiện là một tham số riêng.
- Named (có tên): thêm
()quanh phần tên trong pattern → mọi chỗ cùng tên chỉ hỏi một lần.
-- Ví dụ từ tài liệu JetBrains
SELECT * FROM my_table WHERE a = ?x OR b = ?x;
-- Pattern \?\w+ : hai ?x là hai tham số riêng (hỏi 2 lần)
-- Pattern \?(\w+) : hai ?x là cùng một tham số tên "x" (hỏi 1 lần)Note
Dấu
?mặc định được xem là tham số tuỳ theo hãng CSDL. Muốn nhận diện cú pháp khác (ví dụ@ten_tham_so), tự thêm pattern ở trangUser Parameters. Tài liệu không liệt kê sẵn pattern cho@nên hãy tự kiểm tra trên môi trường của bạn.
6. Xem cấu trúc bảng và lịch sử
- Quick Documentation (
Ctrl+Q) trên tên bảng → hiện popup có cả scriptCREATEDDL. - Query History: nút Browse Query History hoặc
Ctrl+Alt+E— lọc bằng cách gõ, double-click để dán lại vào console,Deleteđể xoá bản ghi.
7. Bài tập thực hành
Bài 1 – Quen thao tác (T-SQL)
- Chọn data source SQL Server →
F4.- Gõ hai lệnh khác nhau, bôi đen chỉ một lệnh, bấm
Ctrl+Enter→ quan sát chỉ lệnh đó chạy.- Mở Query History (
Ctrl+Alt+E) và tìm lại lệnh vừa chạy.
Bài 2 – Tham số có tên (PostgreSQL)
- Vào
Database | Query Execution | User Parameters, thêm pattern\?(\w+).- Chạy
SELECT * FROM my_table WHERE a = ?x OR b = ?x;→ xác nhận chỉ được hỏi một giá trị chox.