Hướng dẫn what characters are allowed in mysql database name? - những ký tự nào được phép trong tên cơ sở dữ liệu mysql?

Tôi đang xây dựng một hệ thống trong khi quản trị viên đang cài đặt nó, một trong các bước là tạo cơ sở dữ liệu (từ hệ thống). Vì vậy, câu hỏi của tôi là, làm thế nào tôi nên xác nhận tên cơ sở dữ liệu? Tôi thấy nó không thể dài hơn 64 chars nhưng đây có phải là hạn chế duy nhất? Tôi đã thử nghiệm một số tên DB với các ký tự đặc biệt trong phpmyadmin không gây ra lỗi.

Đã hỏi ngày 2 tháng 3 năm 2012 lúc 17:34Mar 2, 2012 at 17:34

Hướng dẫn what characters are allowed in mysql database name? - những ký tự nào được phép trong tên cơ sở dữ liệu mysql?

1

Hạn chế đặt tên cơ sở dữ liệu MySQL:

  • Không thể dài hơn 64 ký tự.
  • Không thể chứa các ký tự / \ hoặc ..
  • Không thể chứa các ký tự không được phép trong tên tệp.
  • Không thể kết thúc với các ký tự không gian.

Thêm thông tin ở đây.

Hướng dẫn what characters are allowed in mysql database name? - những ký tự nào được phép trong tên cơ sở dữ liệu mysql?

Nyedidikeke

6.3127 Huy hiệu vàng43 Huy hiệu bạc54 Huy hiệu đồng7 gold badges43 silver badges54 bronze badges

Đã trả lời ngày 2 tháng 3 năm 2012 lúc 17:46Mar 2, 2012 at 17:46

0

Regex cho điều này:

^[^\\/?%*:|\"<>.]{1,64}$

Đã trả lời ngày 16 tháng 2 năm 2018 lúc 11:36Feb 16, 2018 at 11:36

VerbeverbeVerbe

5745 Huy hiệu bạc13 Huy hiệu Đồng5 silver badges13 bronze badges

Các loại dữ liệu ký tự trong MySQL là gì?

Các loại char và varchar được khai báo với độ dài cho biết số lượng ký tự tối đa bạn muốn lưu trữ. Ví dụ, char (30) có thể giữ tới 30 ký tự. Độ dài của cột char được cố định theo chiều dài mà bạn khai báo khi bạn tạo bảng. Độ dài có thể là bất kỳ giá trị nào từ 0 đến 255.must quote it whenever you refer to it. (Exception: A reserved word that follows a period in a qualified name must be an identifier, so it need not be quoted.) Reserved words are listed at Section 9.3, “Keywords and Reserved Words”.

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, chế độ xem, thủ tục lưu trữ, phân vùng, không gian bảng, nhóm tài nguyên và các tên đối tượng khác được gọi là định danh. Phần này mô tả cú pháp cho phép cho các định danh trong MySQL. Phần & NBSP; 9.2.1, Giới hạn độ dài định danh, chỉ ra độ dài tối đa của từng loại định danh. Phần & NBSP; 9.2.3, Độ nhạy của trường hợp định danh, mô tả loại định danh nào nhạy cảm với trường hợp và trong các điều kiện nào.

  • Một định danh có thể được trích dẫn hoặc không được trích dẫn. Nếu một mã định danh chứa các ký tự đặc biệt hoặc là một từ dành riêng, bạn phải trích dẫn nó bất cứ khi nào bạn tham khảo nó. .

    • Trong nội bộ, các định danh được chuyển đổi và được lưu trữ dưới dạng Unicode (UTF-8). Các ký tự unicode cho phép trong các định danh là các ký tự trong mặt phẳng đa ngôn ngữ cơ bản (BMP). Các ký tự bổ sung không được phép. Do đó, số nhận dạng có thể chứa các ký tự sau:

    • Các ký tự được phép trong các định danh chưa được trích dẫn:

  • ASCII: [0-9, A-Z, A-Z $ _] (chữ cái Latin cơ bản, chữ số 0-9, Dollar, Undercore)

    • Mở rộng: U+0080 .. U+FFFF

    • Các ký tự được phép trong các định danh chưa được trích dẫn:

  • ASCII: [0-9, A-Z, A-Z $ _] (chữ cái Latin cơ bản, chữ số 0-9, Dollar, Undercore)

  • Mở rộng: U+0080 .. U+FFFF

  • Các ký tự được phép trong các định danh được trích dẫn bao gồm toàn bộ mặt phẳng đa ngôn ngữ cơ bản (BMP), ngoại trừ U+0000:

ASCII: U+0001 .. U+007F

mysql> SELECT * FROM `select` WHERE `select`.id > 100;

ASCII NUL (U+0000) và các ký tự bổ sung (U+10000 trở lên) không được phép trong các định danh được trích dẫn hoặc chưa được trích dẫn.

mysql> CREATE TABLE "test" (col INT);
ERROR 1064: You have an error in your SQL syntax...
mysql> SET sql_mode='ANSI_QUOTES';
mysql> CREATE TABLE "test" (col INT);
Query OK, 0 rows affected (0.00 sec)

Định danh có thể bắt đầu bằng một chữ số nhưng trừ khi được trích dẫn có thể không chỉ bao gồm các chữ số.

Cơ sở dữ liệu, bảng và tên cột không thể kết thúc bằng các ký tự không gian.

mysql> CREATE TABLE `a``b` (`c"d` INT);

Ký tự trích dẫn định danh là backtick (`):

mysql> SELECT 1 AS `one`, 2 AS 'two';
+-----+-----+
| one | two |
+-----+-----+
|   1 |   2 |
+-----+-----+

Nếu chế độ ANSI_QUOTES SQL được bật, thì cũng được phép trích dẫn các định danh trong dấu ngoặc kép: Dấu hiệu:

Chế độ ANSI_QUOTES khiến máy chủ diễn giải các chuỗi được trích dẫn kép là định danh. Do đó, khi chế độ này được bật, các chuỗi chữ phải được đặt trong các dấu ngoặc kép. Chúng không thể được đặt trong các dấu ngoặc kép. Chế độ SQL máy chủ được điều khiển như được mô tả trong Phần & NBSP; 5.1.11, chế độ SQL Server SQL.

Hãy cẩn thận khi sử dụng

mysql> CREATE TABLE "test" (col INT);
ERROR 1064: You have an error in your SQL syntax...
mysql> SET sql_mode='ANSI_QUOTES';
mysql> CREATE TABLE "test" (col INT);
Query OK, 0 rows affected (0.00 sec)
2 để tạo tên bảng vì nó có thể tạo ra tên ở các định dạng bất hợp pháp hoặc mơ hồ như những người vừa được mô tả.

Chúng tôi cũng khuyên bạn không sử dụng tên cột bắt đầu bằng

mysql> CREATE TABLE "test" (col INT);
ERROR 1064: You have an error in your SQL syntax...
mysql> SET sql_mode='ANSI_QUOTES';
mysql> CREATE TABLE "test" (col INT);
Query OK, 0 rows affected (0.00 sec)
3 để đảm bảo rằng các tên mới không va chạm với các tên được sử dụng bởi các cột ẩn hiện có cho các chỉ mục chức năng.

Một biến người dùng không thể được sử dụng trực tiếp trong câu lệnh SQL như một định danh hoặc là một phần của định danh. Xem Phần & NBSP; 9.4, các biến do người dùng xác định, để biết thêm thông tin và ví dụ về cách giải quyết.

Các ký tự đặc biệt trong tên cơ sở dữ liệu và tên bảng được mã hóa trong các tên hệ thống tệp tương ứng như được mô tả trong Phần & NBSP; 9.2.4, ánh xạ của các định danh vào tên tệp.

Những nhân vật nào được phép trong MySQL?

Các ký tự được phép trong các định danh được trích dẫn bao gồm toàn bộ mặt phẳng đa ngôn ngữ cơ bản (BMP), ngoại trừ U+0000:..
ASCII: U+0001 .. U+007F ..
Mở rộng: U+0080 .. U+FFFF ..

MySQL có cho phép các ký tự đặc biệt không?

1 câu trả lời..
ASCII: U+0001 .. U+007F ..
Mở rộng: U+0080 .. U+FFFF ..

MySQL có cho phép các ký tự đặc biệt không?

Ngoài ra, MySQL cũng có trình tự thoát ký tự đặc biệt như được hiển thị bên dưới: \ 0 - ký tự ASCII NUL (0x00).\ ' - một ký tự trích dẫn duy nhất (').\ " - một ký tự trích dẫn kép (").MySQL also has special character escape sequences as shown below: \0 - An ASCII NUL (0x00) character. \' - A single quote ( ' ) character. \" - A double quote ( " ) character.

Các loại dữ liệu ký tự trong MySQL là gì?

Các loại char và varchar được khai báo với độ dài cho biết số lượng ký tự tối đa bạn muốn lưu trữ.Ví dụ, char (30) có thể giữ tới 30 ký tự.Độ dài của cột char được cố định theo chiều dài mà bạn khai báo khi bạn tạo bảng.Độ dài có thể là bất kỳ giá trị nào từ 0 đến 255.CHAR and VARCHAR types are declared with a length that indicates the maximum number of characters you want to store. For example, CHAR(30) can hold up to 30 characters. The length of a CHAR column is fixed to the length that you declare when you create the table. The length can be any value from 0 to 255.