Định danh mysql
Cơ sở dữ liệu, bảng, chỉ mục, cột, bí danh, dạng xem, quy trình được lưu trữ, trình kích hoạt, sự kiện, biến, phân vùng, không gian bảng, điểm lưu trữ, nhãn, người dùng, vai trò, được gọi chung là số nhận dạng và có các quy tắc đặt tên nhất định Show Định danh có thể được trích dẫn bằng cách sử dụng ký tự backtick - SELECT test . t1 . i FROM t1; +------+ | i | +------+ | 10 | +------+4. Trích dẫn là tùy chọn đối với số nhận dạng không chứa ký tự đặc biệt hoặc đối với số nhận dạng không phải là từ dành riêng. Nếu cờ ________ 15 SQL_MODE được đặt, dấu ngoặc kép (________ 00) cũng có thể được sử dụng để trích dẫn định danh. Nếu cờ SELECT test . t1 . i FROM t1; +------+ | i | +------+ | 10 | +------+1 được đặt, dấu ngoặc vuông ( SELECT test . t1 . i FROM t1; +------+ | i | +------+ | 10 | +------+2 và SELECT test . t1 . i FROM t1; +------+ | i | +------+ | 10 | +------+3) có thể được sử dụng để trích dẫn Ngay cả khi sử dụng các từ dành riêng làm tên, các tên đủ điều kiện không cần phải trích dẫn. Ví dụ: SELECT test . t1 . i FROM t1; +------+ | i | +------+ | 10 | +------+4 chỉ có một nghĩa có thể, vì vậy nó được phân tích cú pháp chính xác ngay cả khi không có dấu ngoặc kép không trích dẫnCác ký tự sau hợp lệ và cho phép các mã định danh không được trích dẫn
trích dẫnCác ký tự sau hợp lệ, nhưng số nhận dạng sử dụng chúng phải được trích dẫn
Quy tắc khácCó một số quy tắc khác cho định danh
trích dẫn nhân vậtKý tự trích dẫn thông thường là ký tự backtick - SELECT test . t1 . i FROM t1; +------+ | i | +------+ | 10 | +------+4, nhưng nếu tùy chọn SQL_MODE ____ của _15 được chỉ định, thì một trích dẫn kép thông thường - SELECT test . t1 . i FROM t1; +------+ | i | +------+ | 10 | +------+0 cũng có thể được sử dụng Ký tự backtick có thể được sử dụng như một phần của mã định danh. Trong trường hợp đó, số nhận dạng cần được trích dẫn. Ký tự trích dẫn có thể là dấu gạch ngược, nhưng trong trường hợp đó, dấu gạch ngược trong tên phải được thoát bằng một dấu gạch ngược khác Chiều dài tối đa
Nhiều định danhMariaDB cho phép tên cột được sử dụng riêng nếu tham chiếu rõ ràng hoặc tên bảng được sử dụng với tên cột hoặc cả ba tên cơ sở dữ liệu, bảng và tên cột. Dấu chấm được sử dụng để phân tách các mã định danh và dấu chấm có thể được bao quanh bởi khoảng trắng Hầu như mọi câu lệnh SQL đều sử dụng các mã định danh theo một cách nào đó để tham chiếu đến cơ sở dữ liệu hoặc các thành phần cấu thành của nó, chẳng hạn như bảng, dạng xem, cột, chỉ mục, quy trình được lưu trữ, trình kích hoạt hoặc sự kiện. Khi bạn đề cập đến các thành phần của cơ sở dữ liệu, các mã định danh phải tuân theo các quy tắc sau Ký tự pháp lý trong định danh. Số nhận dạng không được trích dẫn có thể bao gồm các chữ cái Latinh a-z trong bất kỳ chữ cái nào, các chữ số 0-9, đô la, dấu gạch dưới và các ký tự mở rộng Unicode trong phạm vi U+0080 đến U+FFFF. Số nhận dạng có thể bắt đầu bằng bất kỳ ký tự nào hợp pháp trong số nhận dạng, bao gồm cả chữ số. Tuy nhiên, một mã định danh không được trích dẫn không thể bao gồm toàn bộ các chữ số vì điều đó sẽ khiến nó không thể phân biệt được với một số. Sự hỗ trợ của MySQL cho các mã định danh bắt đầu bằng một số hơi bất thường trong các hệ thống cơ sở dữ liệu. Nếu bạn sử dụng mã định danh như vậy, hãy đặc biệt cẩn thận nếu mã đó có chứa chữ 'E' hoặc 'e' vì những ký tự đó có thể dẫn đến các biểu thức không rõ ràng. Ví dụ: biểu thức 23e + 14 (có dấu cách bao quanh dấu '+') có nghĩa là cột 23e cộng với số 14, nhưng còn 23e+14 thì sao? Các mã định danh có thể được trích dẫn (được phân tách) trong các ký tự backtick (‘`’), cho phép sử dụng bất kỳ ký tự nào ngoại trừ byte NUL hoặc ký tự bổ sung Unicode (U+10000 trở lên) CREATE TABLE `my table` (`my-int-column` INT); Trích dẫn rất hữu ích khi một mã định danh là một từ dành riêng cho SQL hoặc chứa khoảng trắng hoặc các ký tự đặc biệt khác. Việc trích dẫn một mã định danh cũng cho phép nó hoàn toàn là số, một điều không đúng với các mã định danh không được trích dẫn. Để bao gồm ký tự trích dẫn của mã định danh trong mã định danh được trích dẫn, hãy nhân đôi ký tự đó Hệ điều hành của bạn có thể áp đặt các ràng buộc bổ sung đối với cơ sở dữ liệu và số nhận dạng bảng. Xem Phần 11. 2. 6, “Các ràng buộc của hệ điều hành đối với tên đối tượng cơ sở dữ liệu. ” Bí danh cho tên cột và bảng có thể khá tùy ý. Bạn nên trích dẫn một bí danh trong các ký tự trích dẫn mã định danh nếu đó là một từ dành riêng cho SQL, hoàn toàn là số hoặc chứa khoảng trắng hoặc các ký tự đặc biệt khác. Bí danh cột cũng có thể được trích dẫn bằng dấu ngoặc đơn hoặc dấu ngoặc kép Chế độ máy chủ SQL. Nếu chế độ SQL ANSI_QUOTES được bật, bạn có thể trích dẫn các mã định danh bằng dấu ngoặc kép (mặc dù dấu gạch ngược vẫn được phép) CREATE TABLE "my table" ("my-int-column" INT); Kích hoạt ANSI_QUOTES có tác dụng bổ sung là các chuỗi ký tự phải được viết bằng dấu nháy đơn. Nếu bạn sử dụng dấu ngoặc kép, máy chủ sẽ diễn giải giá trị dưới dạng số nhận dạng, không phải dưới dạng chuỗi Tên của các chức năng tích hợp thường không được đặt trước và có thể được sử dụng làm định danh mà không cần trích dẫn. Tuy nhiên, nếu chế độ SQL IGNORE_SPACE được bật, tên hàm sẽ được bảo lưu và phải được trích dẫn nếu được sử dụng làm định danh Để biết hướng dẫn về cách đặt chế độ SQL, hãy xem Phần 2. 1, “Chế độ máy chủ SQL. ” chiều dài định danh. Hầu hết các mã định danh có độ dài tối đa là 64 ký tự. Độ dài tối đa cho bí danh là 256 ký tự vòng loại định danh. Tùy thuộc vào ngữ cảnh, một số nhận dạng có thể cần phải đủ điều kiện để làm rõ những gì nó đề cập đến. Để tham khảo một cơ sở dữ liệu, chỉ cần chỉ định tên của nó Để tham khảo một bảng, bạn có hai lựa chọn
Nếu không có cơ sở dữ liệu nào được chọn, sẽ xảy ra lỗi khi tham chiếu đến một bảng không có bộ định tính cơ sở dữ liệu vì cơ sở dữ liệu mà bảng thuộc về không xác định Những cân nhắc tương tự về tên bảng đủ điều kiện áp dụng cho tên của chế độ xem (là bảng “ảo”) và chương trình được lưu trữ Để tham chiếu đến một cột trong bảng, bạn có ba lựa chọn
Thông thường, không cần thiết phải cung cấp tên đủ điều kiện, mặc dù làm như vậy luôn hợp pháp. Nếu bạn chọn một cơ sở dữ liệu có câu lệnh USE, nó sẽ trở thành cơ sở dữ liệu mặc định cho các câu lệnh tiếp theo và ẩn trong mọi tham chiếu bảng không đủ tiêu chuẩn. Nếu bạn viết một câu lệnh SELECT chỉ đề cập đến một bảng, thì bảng đó là ẩn đối với mọi tham chiếu cột trong câu lệnh. Chỉ cần xác định số nhận dạng đủ điều kiện khi không thể xác định bảng hoặc cơ sở dữ liệu từ ngữ cảnh. Ví dụ: nếu một câu lệnh đề cập đến các bảng từ nhiều cơ sở dữ liệu, bạn phải tham chiếu bất kỳ bảng nào không có trong cơ sở dữ liệu mặc định bằng cách sử dụng db_name. cú pháp tbl_name để cho MySQL biết cơ sở dữ liệu nào chứa bảng. Tương tự, nếu một truy vấn sử dụng nhiều bảng và đề cập đến một tên cột được sử dụng trong nhiều bảng, hãy định tính mã định danh cột bằng một mã định danh bảng để làm rõ cột mà bạn muốn nói Nếu bạn sử dụng dấu ngoặc kép khi đề cập đến một tên đủ điều kiện, hãy trích dẫn các số nhận dạng riêng lẻ trong tên đó. Ví dụ SELECT test . t1 . i FROM t1; +------+ | i | +------+ | 10 | +------+2 Đừng trích dẫn tên như một toàn bộ. tuyên bố này là không chính xác SELECT test . t1 . i FROM t1; +------+ | i | +------+ | 10 | +------+3 Yêu cầu một từ dành riêng được trích dẫn nếu được sử dụng làm định danh sẽ được miễn nếu từ đó tuân theo khoảng thời gian hạn định vì khi đó ngữ cảnh quy định rằng từ dành riêng là một định danh Mã định danh trong MySQL là gì?Một số đối tượng trong MySQL, bao gồm cơ sở dữ liệu, bảng, chỉ mục, cột, bí danh, dạng xem, thủ tục lưu sẵn, phân vùng, vùng bảng, nhóm tài nguyên và các tên đối tượng khác được gọi là định danh.
Bộ định danh định danh là gì?Các phiên bản định danh cho phép bạn lấy các tập hợp con cụ thể của dữ liệu dựa trên sự xuất hiện của một giá trị dữ liệu đã chỉ định (một vòng loại).
Độ dài tối đa của mã định danh trong SQL là bao nhiêu?9. 2. 1 Giới hạn độ dài định danh MySQL có cho phép gạch dưới không?Tìm hiểu MySQL từ đầu về Khoa học dữ liệu và Phân tích
. Nếu bạn vẫn muốn tạo một bảng mới có dấu gạch dưới, hãy bao quanh nó bằng dấu gạch ngược, không phải dấu nháy đơn. You cannot give underscore in table name. If you still want to create a new table with underscore, surround it using backticks, not single quotes. |