Hướng dẫn why does mysql use backticks? - tại sao mysql sử dụng backticks?

Theo quan điểm của tôi, @Mr.Brownstone trả lời chỉ chính xác một phần.

Backtick

SELECT notexistingcolumn FROM atable;
5 được sử dụng trong MySQL để phân định nghĩa đen đại diện cho số nhận dạng (không phải chuỗi).

Điều này cho phép bạn sử dụng các ký tự không được chấp nhận như không gian, từ dành riêng, vv làm định danh. Ví dụ:

SELECT * FROM `Strange table name`;

Cũng quan trọng là nó cũng cho phép trình phân tích cú pháp biết liệu bạn có đang làm gì đó không đúng như chọn một cột không tồn tại. Ví dụ:

SELECT notexistingcolumn FROM atable;

Nếu

SELECT notexistingcolumn FROM atable;
6 tồn tại nhưng cột
SELECT notexistingcolumn FROM atable;
7 không tồn tại, nó sẽ được hiểu là chuỗi "NotExistingColumn" theo nghĩa đen chọn nó làm giá trị (và có thể phát ra cảnh báo).

Thay vào đó, nếu bạn sử dụng:

SELECT `notexistingcolumn` FROM `atable`;

Nó sẽ nhận ra rằng

SELECT notexistingcolumn FROM atable;
7 là tên của một cột không tồn tại và ném lỗi.

Tôi nghĩ rằng luôn luôn thích hợp hơn để bao quanh các định danh với các backtick bao gồm bí danh và cố gắng tránh sử dụng các từ dành riêng và ký tự lạ cho các định danh.

Bạn có thể đọc thêm về Backtick MySQL.

Backticks (

SELECT notexistingcolumn FROM atable;
5) được sử dụng để chỉ ra cơ sở dữ liệu, bảng và tên cột. Trừ khi bạn đang sử dụng các từ dành riêng hoặc xung đột cho tên bảng và cơ sở dữ liệu, bạn sẽ không cần sử dụng chúng.

Trích dẫn (

SELECT `notexistingcolumn` FROM `atable`;
0 hoặc
SELECT `notexistingcolumn` FROM `atable`;
1) được sử dụng để phân định chuỗi và phân biệt chúng với tên cột.

Ví dụ:

SELECT * FROM `database`.`table` WHERE `column` = "value";

Như tôi đã đề cập, không cần thiết, nếu bạn sử dụng tên bảng và cột hợp lý:

SELECT * FROM mydb.users WHERE username = "jim";

Nhưng chuỗi sẽ luôn cần báo giá. Truy vấn này đang so sánh giá trị trong cột

SELECT `notexistingcolumn` FROM `atable`;
2 với giá trị trong cột
SELECT `notexistingcolumn` FROM `atable`;
3, thay vì giá trị chuỗi "Bob":

SELECT * FROM mydb.users WHERE username = bob;

Nếu bạn muốn xóa một bản ghi từ bất kỳ bảng MySQL nào, thì bạn có thể sử dụng lệnh xóa lệnh SQL. Bạn có thể sử dụng lệnh này tại lời nhắc MySQL> cũng như trong bất kỳ tập lệnh nào như PHP.

Trường hợp SQL có nhạy cảm không?

Các từ khóa trong SQL không nhạy cảm trường hợp cho các DBMS phổ biến nhất. Máy tính không quan tâm bạn viết, chọn, chọn hoặc chọn; Vì vậy, về lý thuyết, bạn có thể viết theo cách bạn thích.

Ví dụ: khi bạn tạo một bảng với một cột có tên "

SELECT `notexistingcolumn` FROM `atable`;
5", bạn sẽ nhận được cảnh báo. Điều này là do bạn có thể thực hiện truy vấn sau:

SELECT student_name, AVG(test_score) FROM student GROUP BY group

Để đảm bảo bạn không gặp lỗi trong truy vấn, bạn phải sử dụng BackTicks để truy vấn của bạn trở thành:

SELECT student_name, AVG(test_score) FROM student GROUP BY `group`

Bàn


Không chỉ tên cột có thể được bao quanh bởi các backticks, mà cả tên bảng. Ví dụ: khi bạn cần

SELECT `notexistingcolumn` FROM `atable`;
6 nhiều bảng.

SELECT `users`.`username`, `groups`.`group` FROM `users`

Dễ đọc hơn


Như bạn có thể thấy bằng cách sử dụng Backticks xung quanh tên bảng và cột cũng giúp việc truy vấn dễ đọc hơn.

Ví dụ: khi bạn đã quen viết tất cả các truy vấn trong chữ thường:

select student_name, AVG(test_score) from student group by group
select `student_name`, AVG(`test_score`) from `student` group by `group`

Vui lòng xem trang Hướng dẫn sử dụng MySQL có tên từ khóa và từ dành riêng. Những người có (r) là từ dành riêng. Những người khác chỉ là từ khóa. Người bảo lưu đòi hỏi sự thận trọng đặc biệt.




MySQL hỗ trợ các trích dẫn đơn, trích dẫn kép và backticks cho các mục đích khác nhau. Trong bài viết này, chúng tôi sẽ xem xét khi nào nên sử dụng các trích dẫn đơn, trích dẫn kép và backticks trong MySQL.

Điều quan trọng là phải nhớ:

  1. Báo giá đơn và trích dẫn đôi được sử dụng xung quanh chuỗi
  2. Backticks được sử dụng xung quanh tên cơ sở dữ liệu, tên bảng và tên cột

Dấu nháy đơn

Dưới đây là một số ví dụ về việc sử dụng các trích dẫn đơn trong MySQL.

SELECT notexistingcolumn FROM atable;
0

Như bạn có thể thấy ở trên, nếu bạn thêm dấu ngoặc kép bên trong các trích dẫn đơn, chúng được coi là ký tự chuỗi và được hiển thị as-is. Vì vậy, nếu bạn muốn hiển thị các trích dẫn kép trong kết quả của bạn, hãy bọc chúng bên trong các trích dẫn đơn.

Nếu bạn cần hiển thị các trích dẫn đơn trong một chuỗi và cũng bọc chúng trong các trích dẫn đơn, thì bạn cần thoát khỏi các trích dẫn đơn bên trong bằng cách sử dụng Backslash (\) như được hiển thị bên dưới.

SELECT notexistingcolumn FROM atable;
1

Dấu ngoặc kép

Dưới đây là một số ví dụ về việc sử dụng trích dẫn kép trong MySQL.

SELECT notexistingcolumn FROM atable;
2

Như bạn có thể thấy ở trên, nếu bạn thêm các trích dẫn duy nhất bên trong trích dẫn kép, chúng được coi là ký tự chuỗi và được hiển thị as-is. Vì vậy, nếu bạn muốn hiển thị các trích dẫn đơn trong kết quả của bạn, hãy bọc chúng bên trong các trích dẫn kép.

Nếu bạn cần hiển thị các trích dẫn đơn trong một chuỗi và cũng bọc chúng trong các trích dẫn đơn, thì bạn cần thoát khỏi các trích dẫn đơn bên trong bằng cách sử dụng Backslash (\) như được hiển thị bên dưới.

SELECT notexistingcolumn FROM atable;
3

Backticks

Backticks được sử dụng xung quanh tên cơ sở dữ liệu, tên bảng, tên cột. Chúng được yêu cầu đặc biệt là nếu tên cơ sở dữ liệu/bảng/cột của bạn chứa các ký tự khoảng trắng.

Đây là một ví dụ. Chúng tôi sẽ thử tạo một cơ sở dữ liệu có tiêu đề Dữ liệu mẫu.

SELECT notexistingcolumn FROM atable;
4

Backticks là tùy chọn nếu cơ sở dữ liệu, tên bảng và cột của bạn không chứa các ký tự khoảng trắng.

Cần một công cụ báo cáo cho MySQL? & NBSP; UBIQ & NBSP; giúp bạn dễ dàng trực quan hóa dữ liệu trong vài phút và giám sát trong bảng điều khiển thời gian thực.

Bài viết liên quan:

  • về tác giả

Hướng dẫn why does mysql use backticks? - tại sao mysql sử dụng backticks?

Tôi có thể sử dụng dấu ngoặc kép trong mysql không?

Báo giá kép cũng được MySQL hỗ trợ cho các giá trị chuỗi, nhưng các trích dẫn đơn được các RDBM khác chấp nhận rộng rãi hơn, do đó, đó là một thói quen tốt để sử dụng các trích dẫn đơn thay vì gấp đôi., but single quotes are more widely accepted by other RDBMS, so it is a good habit to use single quotes instead of double.

Postgres có sử dụng backticks không?

PostgreSQL chỉ sử dụng các trích dẫn đơn cho việc này (nghĩa là tên = 'john').Báo giá kép được sử dụng để trích dẫn định danh hệ thống;Tên trường, tên bảng, v.v. (tức là trong đó "Tên cuối cùng" = 'Smith').MySQL sử dụng `(Accent Mark hoặc Backtick) để trích dẫn các định danh hệ thống, được quyết định là không chuẩn.MySQL uses ` (accent mark or backtick) to quote system identifiers, which is decidedly non-standard.

Làm thế nào bạn có thể xóa một bản ghi bằng MySQL?

Nếu bạn muốn xóa một bản ghi từ bất kỳ bảng MySQL nào, thì bạn có thể sử dụng lệnh xóa lệnh SQL.Bạn có thể sử dụng lệnh này tại lời nhắc MySQL> cũng như trong bất kỳ tập lệnh nào như PHP.use the SQL command DELETE FROM. You can use this command at the mysql> prompt as well as in any script like PHP.

Trường hợp SQL có nhạy cảm không?

Các từ khóa trong SQL không nhạy cảm trường hợp cho các DBMS phổ biến nhất.Máy tính không quan tâm bạn viết, chọn, chọn hoặc chọn;Vì vậy, về lý thuyết, bạn có thể viết theo cách bạn thích.. The computer doesn't care whether you write SELECT , select, or sELeCt ; so, in theory, you can write however you like.