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ệcCách làm
Chạy lệnhCtrl+Enter hoặc nút Execute
Nhiều lệnhHiện danh sách chọn; luôn có mục chạy tất cả
Chạy một phầnBô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 SQLMở 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 windowAlt+7 → chọn lệnh → chuột phải → Execute
Chạy SELECT và lưu thẳng ra fileChuột phải câu SELECT → Execute to File → chọn định dạng
Chạy stored procedure/functionChuột phải hàm → Run Function → nhập tham số → OK (hỗ trợ PostgreSQL, SQL Server, Oracle, MySQL)
Huỷ lệnh đang chạyNú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 choHành viDùng khi
PlaygroundQuery consoleMọi đối tượng resolve về cùng một ngữ cảnhCác lệnh rời rạc, không chạy như một script
ScriptFile 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 sauCode 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 ở trang User 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ả script CREATE DDL.
  • 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)

  1. Chọn data source SQL Server → F4.
  2. 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.
  3. 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)

  1. Vào Database | Query Execution | User Parameters, thêm pattern \?(\w+).
  2. Chạy SELECT * FROM my_table WHERE a = ?x OR b = ?x; → xác nhận chỉ được hỏi một giá trị cho x.

Nguồn