2008-10-18 42 views

Trả lời

31

Việc sử dụng dấu ngoặc kép này được gọi là số nhận dạng được phân tách. Đó là một phần quan trọng của SQL bởi vì nếu không bạn không thể sử dụng định danh (ví dụ như tên bảng và tên cột) rằng:

  • Bao gồm khoảng trắng: "bàn của tôi"
  • Bao gồm ký tự đặc biệt và dấu chấm câu: "my-bảng "
  • Bao gồm ký tự quốc tế: "私 の テ ー ブ ル"
  • Are trường hợp nhạy cảm: "MyTable"
  • từ khóa
  • trận đấu SQL: "bảng"

Ngôn ngữ SQL chuẩn sử dụng dấu ngoặc kép cho số nhận dạng phân cách:

SELECT * FROM "my table"; 

MySQL sử dụng dấu ngoặc kép theo mặc định. MySQL có thể sử dụng dấu ngoặc kép tiêu chuẩn:

SELECT * FROM `my table`; 
SET GLOBAL SQL_MODE=ANSI_QUOTES; 
SELECT * FROM "my table"; 

Microsoft SQL Server sử dụng dấu ngoặc theo mặc định. Microsoft có thể sử dụng dấu ngoặc kép tiêu chuẩn:

SELECT * FROM [my table]; 
SET QUOTED_IDENTIFIER ON; 
SELECT * FROM "my table"; 

InterBase và Firebird cần đặt phương ngữ SQL thành 3 để hỗ trợ định danh phân cách.

Hầu hết các nhãn hiệu cơ sở dữ liệu khác sử dụng dấu ngoặc kép chính xác.

+0

Tôi đang cố gắng định dạng lại dấu kiểm theo cú pháp đánh dấu nhưng tôi dường như không thể làm đúng. –

+0

Hãy thử cách này: \ 'spam spam \ ' –

+0

Cảm ơn, đó là những gì tôi đang làm. Nó xuất hiện chính xác trong bản xem trước nhưng sau khi tôi lưu bản chỉnh sửa, nó sẽ hoàn nguyên để hiển thị các dấu gạch chéo ngược và đặt từ trong phông chữ đơn cách. Than ôi. –

2

SQL Server sử dụng [dấu ngoặc vuông] hoặc "đôi dấu ngoặc kép "khi tùy chọn QUOTED_IDENTIFIER được BẬT.

Tôi tin rằng dấu ngoặc kép nằm trong tiêu chuẩn SQL-92.

2

Ngắn gọn, đúng vậy.

Chuẩn SQL sử dụng dấu ngoặc kép xung quanh tên để chỉ ra 'số nhận dạng được phân tách'.

Thông tin theo mặc định sử dụng dấu ngoặc kép đơn và kép thay thế cho nhau để chỉ chuỗi ký tự. Tuy nhiên, bằng cách thiết lập biến môi trường DELIMIDENT, bạn có thể bật hành vi chuẩn SQL - các dấu nháy đơn xung quanh các chuỗi và dấu ngoặc kép xung quanh các mã định danh phân cách.

Những người khác đã liệt kê các hành vi khác cho DBMS khác; Tôi không cần lặp lại chúng.

Các vấn đề liên quan