Hướng dẫn float default value in mysql - thả nổi giá trị mặc định trong mysql

Thông số kỹ thuật kiểu dữ liệu có thể có các giá trị mặc định rõ ràng hoặc ẩn.

Một mệnh đề DEFAULT value trong một đặc tả kiểu dữ liệu chỉ ra một giá trị mặc định cho một cột. Ví dụ:

CREATE TABLE t1 (
  i     INT DEFAULT -1,
  c     VARCHAR(10) DEFAULT '',
  price DOUBLE(16,2) DEFAULT 0.00
);

SERIAL DEFAULT VALUE là một trường hợp đặc biệt. Trong định nghĩa của một cột số nguyên, nó là bí danh cho NOT NULL AUTO_INCREMENT UNIQUE.

Một số khía cạnh của xử lý mệnh đề

CREATE TABLE t1 (
  -- literal defaults
  i INT         DEFAULT 0,
  c VARCHAR(10) DEFAULT '',
  -- expression defaults
  f FLOAT       DEFAULT (RAND() * RAND()),
  b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
  d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
  p POINT       DEFAULT (Point(0,0)),
  j JSON        DEFAULT (JSON_ARRAY())
);
0 rõ ràng phụ thuộc vào phiên bản, như được mô tả sau đây.

  • Xử lý mặc định rõ ràng kể từ MySQL 8.0.13

  • Xử lý mặc định rõ ràng trước MySQL 8.0.13

  • Xử lý mặc định ngầm

Xử lý mặc định rõ ràng kể từ MySQL 8.0.13

Xử lý mặc định rõ ràng trước MySQL 8.0.13

CREATE TABLE t1 (
  -- literal defaults
  i INT         DEFAULT 0,
  c VARCHAR(10) DEFAULT '',
  -- expression defaults
  f FLOAT       DEFAULT (RAND() * RAND()),
  b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
  d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
  p POINT       DEFAULT (Point(0,0)),
  j JSON        DEFAULT (JSON_ARRAY())
);

Xử lý mặc định ngầm

Giá trị mặc định được chỉ định trong mệnh đề

CREATE TABLE t1 (
  -- literal defaults
  i INT         DEFAULT 0,
  c VARCHAR(10) DEFAULT '',
  -- expression defaults
  f FLOAT       DEFAULT (RAND() * RAND()),
  b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
  d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
  p POINT       DEFAULT (Point(0,0)),
  j JSON        DEFAULT (JSON_ARRAY())
);
0 có thể là một hằng số hoặc biểu thức theo nghĩa đen. Với một ngoại lệ, bao gồm các giá trị mặc định biểu thức trong ngoặc đơn để phân biệt chúng với các giá trị mặc định không đổi theo nghĩa đen. Ví dụ:

  • Ngoại lệ là, đối với các cột

    CREATE TABLE t1 (
      -- literal defaults
      i INT         DEFAULT 0,
      c VARCHAR(10) DEFAULT '',
      -- expression defaults
      f FLOAT       DEFAULT (RAND() * RAND()),
      b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
      d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
      p POINT       DEFAULT (Point(0,0)),
      j JSON        DEFAULT (JSON_ARRAY())
    );
    2 và
    CREATE TABLE t1 (
      -- literal defaults
      i INT         DEFAULT 0,
      c VARCHAR(10) DEFAULT '',
      -- expression defaults
      f FLOAT       DEFAULT (RAND() * RAND()),
      b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
      d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
      p POINT       DEFAULT (Point(0,0)),
      j JSON        DEFAULT (JSON_ARRAY())
    );
    3, bạn có thể chỉ định hàm
    CREATE TABLE t1 (
      -- literal defaults
      i INT         DEFAULT 0,
      c VARCHAR(10) DEFAULT '',
      -- expression defaults
      f FLOAT       DEFAULT (RAND() * RAND()),
      b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
      d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
      p POINT       DEFAULT (Point(0,0)),
      j JSON        DEFAULT (JSON_ARRAY())
    );
    4 là mặc định, mà không bao gồm dấu ngoặc đơn. Xem Phần & NBSP; 11.2.5, Khởi tạo tự động và cập nhật cho dấu thời gian và DateTime.

    CREATE TABLE t2 (b BLOB DEFAULT ('abc'));
  • Các loại dữ liệu

    CREATE TABLE t1 (
      -- literal defaults
      i INT         DEFAULT 0,
      c VARCHAR(10) DEFAULT '',
      -- expression defaults
      f FLOAT       DEFAULT (RAND() * RAND()),
      b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
      d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
      p POINT       DEFAULT (Point(0,0)),
      j JSON        DEFAULT (JSON_ARRAY())
    );
    5,
    CREATE TABLE t1 (
      -- literal defaults
      i INT         DEFAULT 0,
      c VARCHAR(10) DEFAULT '',
      -- expression defaults
      f FLOAT       DEFAULT (RAND() * RAND()),
      b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
      d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
      p POINT       DEFAULT (Point(0,0)),
      j JSON        DEFAULT (JSON_ARRAY())
    );
    6,
    CREATE TABLE t1 (
      -- literal defaults
      i INT         DEFAULT 0,
      c VARCHAR(10) DEFAULT '',
      -- expression defaults
      f FLOAT       DEFAULT (RAND() * RAND()),
      b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
      d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
      p POINT       DEFAULT (Point(0,0)),
      j JSON        DEFAULT (JSON_ARRAY())
    );
    7 và
    CREATE TABLE t1 (
      -- literal defaults
      i INT         DEFAULT 0,
      c VARCHAR(10) DEFAULT '',
      -- expression defaults
      f FLOAT       DEFAULT (RAND() * RAND()),
      b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
      d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
      p POINT       DEFAULT (Point(0,0)),
      j JSON        DEFAULT (JSON_ARRAY())
    );
    8 chỉ có thể được gán giá trị mặc định nếu giá trị được viết làm biểu thức, ngay cả khi giá trị biểu thức là chữ:

    CREATE TABLE t2 (b BLOB DEFAULT 'abc');

Điều này được cho phép (mặc định theo nghĩa đen được chỉ định là biểu thức):

  • Điều này tạo ra một lỗi (mặc định theo nghĩa đen không được chỉ định là biểu thức):

  • Biểu thức Giá trị mặc định phải tuân thủ các quy tắc sau. Một lỗi xảy ra nếu một biểu thức chứa các cấu trúc không được phép.

  • Nghĩa đen, các chức năng tích hợp (cả xác định và không xác định) và các toán tử được cho phép.

  • Các mục tiêu con, tham số, biến, chức năng được lưu trữ và các hàm có thể tải không được phép.

    Giá trị mặc định biểu thức không thể phụ thuộc vào một cột có thuộc tính

    CREATE TABLE t1 (
      -- literal defaults
      i INT         DEFAULT 0,
      c VARCHAR(10) DEFAULT '',
      -- expression defaults
      f FLOAT       DEFAULT (RAND() * RAND()),
      b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
      d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
      p POINT       DEFAULT (Point(0,0)),
      j JSON        DEFAULT (JSON_ARRAY())
    );
    9.

Giá trị mặc định biểu thức cho một cột có thể tham khảo các cột bảng khác, ngoại trừ các tham chiếu đến các cột hoặc cột được tạo với các giá trị mặc định biểu thức phải là các cột xảy ra trước đó trong định nghĩa bảng. Nghĩa là, các giá trị mặc định biểu thức không thể chứa các tham chiếu chuyển tiếp đến các cột hoặc cột được tạo với các giá trị mặc định biểu thức.

Hạn chế đặt hàng cũng áp dụng cho việc sử dụng

CREATE TABLE t2 (b BLOB DEFAULT ('abc'));
0 để sắp xếp lại các cột bảng. Nếu bảng kết quả sẽ có giá trị mặc định biểu thức chứa tham chiếu chuyển tiếp đến cột hoặc cột được tạo có giá trị mặc định biểu thức, câu lệnh sẽ không thành công.

Ghi chú

Nếu bất kỳ thành phần nào của giá trị mặc định biểu thức phụ thuộc vào chế độ SQL, các kết quả khác nhau có thể xảy ra đối với các cách sử dụng khác nhau của bảng trừ khi chế độ SQL giống nhau trong tất cả các mục đích sử dụng.

Đối với

CREATE TABLE t2 (b BLOB DEFAULT ('abc'));
1 và
CREATE TABLE t2 (b BLOB DEFAULT ('abc'));
2, bảng đích lưu giữ các giá trị mặc định biểu thức từ bảng gốc.

mysql> CREATE TABLE t4 (uid BINARY(16) DEFAULT (UUID_TO_BIN(UUID())));
mysql> INSERT INTO t4 () VALUES();
mysql> INSERT INTO t4 () VALUES(DEFAULT);
mysql> SELECT BIN_TO_UUID(uid) AS uid FROM t4;
+--------------------------------------+
| uid                                  |
+--------------------------------------+
| f1109174-94c9-11e8-971d-3bf1095aa633 |
| f110cf9a-94c9-11e8-971d-3bf1095aa633 |
+--------------------------------------+

Nếu một giá trị mặc định biểu thức đề cập đến một hàm không xác định, bất kỳ câu lệnh nào khiến biểu thức được đánh giá là không an toàn để sao chép dựa trên câu lệnh. Điều này bao gồm các tuyên bố như

CREATE TABLE t2 (b BLOB DEFAULT ('abc'));
3 và
CREATE TABLE t2 (b BLOB DEFAULT ('abc'));
4. Trong tình huống này, nếu ghi nhật ký nhị phân bị vô hiệu hóa, câu lệnh được thực thi là bình thường. Nếu ghi nhật ký nhị phân được bật và
CREATE TABLE t2 (b BLOB DEFAULT ('abc'));
5 được đặt thành
CREATE TABLE t2 (b BLOB DEFAULT ('abc'));
6, câu lệnh được ghi lại và thực thi nhưng thông báo cảnh báo được ghi vào nhật ký lỗi, vì nô lệ sao chép có thể phân kỳ. Khi
CREATE TABLE t2 (b BLOB DEFAULT ('abc'));
5 được đặt thành
CREATE TABLE t2 (b BLOB DEFAULT ('abc'));
8 hoặc
CREATE TABLE t2 (b BLOB DEFAULT ('abc'));
9, câu lệnh được thực thi là bình thường.

Khi chèn một hàng mới, giá trị mặc định cho một cột có mặc định biểu thức có thể được chèn bằng cách bỏ qua tên cột hoặc bằng cách chỉ định cột là

CREATE TABLE t1 (
  -- literal defaults
  i INT         DEFAULT 0,
  c VARCHAR(10) DEFAULT '',
  -- expression defaults
  f FLOAT       DEFAULT (RAND() * RAND()),
  b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
  d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
  p POINT       DEFAULT (Point(0,0)),
  j JSON        DEFAULT (JSON_ARRAY())
);
0 (giống như đối với các cột có mặc định theo nghĩa đen):

Tuy nhiên, việc sử dụng

CREATE TABLE t2 (b BLOB DEFAULT 'abc');
1) để chỉ định giá trị mặc định cho cột được đặt tên chỉ được phép cho các cột có giá trị mặc định theo nghĩa đen, không phải cho các cột có giá trị mặc định biểu thức.

Xử lý mặc định rõ ràng trước MySQL 8.0.13

Xử lý mặc định ngầm

Các loại dữ liệu

CREATE TABLE t1 (
  -- literal defaults
  i INT         DEFAULT 0,
  c VARCHAR(10) DEFAULT '',
  -- expression defaults
  f FLOAT       DEFAULT (RAND() * RAND()),
  b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
  d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
  p POINT       DEFAULT (Point(0,0)),
  j JSON        DEFAULT (JSON_ARRAY())
);
5,
CREATE TABLE t1 (
  -- literal defaults
  i INT         DEFAULT 0,
  c VARCHAR(10) DEFAULT '',
  -- expression defaults
  f FLOAT       DEFAULT (RAND() * RAND()),
  b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
  d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
  p POINT       DEFAULT (Point(0,0)),
  j JSON        DEFAULT (JSON_ARRAY())
);
6,
CREATE TABLE t1 (
  -- literal defaults
  i INT         DEFAULT 0,
  c VARCHAR(10) DEFAULT '',
  -- expression defaults
  f FLOAT       DEFAULT (RAND() * RAND()),
  b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
  d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
  p POINT       DEFAULT (Point(0,0)),
  j JSON        DEFAULT (JSON_ARRAY())
);
7 và
CREATE TABLE t1 (
  -- literal defaults
  i INT         DEFAULT 0,
  c VARCHAR(10) DEFAULT '',
  -- expression defaults
  f FLOAT       DEFAULT (RAND() * RAND()),
  b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
  d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
  p POINT       DEFAULT (Point(0,0)),
  j JSON        DEFAULT (JSON_ARRAY())
);
8 không thể được gán giá trị mặc định.

Nếu một giá trị mặc định đánh giá thành một loại dữ liệu khác với loại cột được khai báo, thì sự ép buộc ngầm với loại được khai báo xảy ra theo các quy tắc chuyển đổi loại MySQL thông thường. Xem Phần & NBSP; 12.3, Chuyển đổi loại trong đánh giá biểu thức.

Xử lý mặc định ngầm

Nếu một đặc điểm kỹ thuật kiểu dữ liệu bao gồm không có giá trị

CREATE TABLE t1 (
  -- literal defaults
  i INT         DEFAULT 0,
  c VARCHAR(10) DEFAULT '',
  -- expression defaults
  f FLOAT       DEFAULT (RAND() * RAND()),
  b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
  d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
  p POINT       DEFAULT (Point(0,0)),
  j JSON        DEFAULT (JSON_ARRAY())
);
0 rõ ràng, MySQL sẽ xác định giá trị mặc định như sau:

Nếu cột có thể lấy

mysql> CREATE TABLE t4 (uid BINARY(16) DEFAULT (UUID_TO_BIN(UUID())));
mysql> INSERT INTO t4 () VALUES();
mysql> INSERT INTO t4 () VALUES(DEFAULT);
mysql> SELECT BIN_TO_UUID(uid) AS uid FROM t4;
+--------------------------------------+
| uid                                  |
+--------------------------------------+
| f1109174-94c9-11e8-971d-3bf1095aa633 |
| f110cf9a-94c9-11e8-971d-3bf1095aa633 |
+--------------------------------------+
4 làm giá trị, cột được xác định với mệnh đề
mysql> CREATE TABLE t4 (uid BINARY(16) DEFAULT (UUID_TO_BIN(UUID())));
mysql> INSERT INTO t4 () VALUES();
mysql> INSERT INTO t4 () VALUES(DEFAULT);
mysql> SELECT BIN_TO_UUID(uid) AS uid FROM t4;
+--------------------------------------+
| uid                                  |
+--------------------------------------+
| f1109174-94c9-11e8-971d-3bf1095aa633 |
| f110cf9a-94c9-11e8-971d-3bf1095aa633 |
+--------------------------------------+
5 rõ ràng.

Nếu cột không thể lấy

mysql> CREATE TABLE t4 (uid BINARY(16) DEFAULT (UUID_TO_BIN(UUID())));
mysql> INSERT INTO t4 () VALUES();
mysql> INSERT INTO t4 () VALUES(DEFAULT);
mysql> SELECT BIN_TO_UUID(uid) AS uid FROM t4;
+--------------------------------------+
| uid                                  |
+--------------------------------------+
| f1109174-94c9-11e8-971d-3bf1095aa633 |
| f110cf9a-94c9-11e8-971d-3bf1095aa633 |
+--------------------------------------+
4 làm giá trị, MySQL định nghĩa cột không có mệnh đề
CREATE TABLE t1 (
  -- literal defaults
  i INT         DEFAULT 0,
  c VARCHAR(10) DEFAULT '',
  -- expression defaults
  f FLOAT       DEFAULT (RAND() * RAND()),
  b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
  d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
  p POINT       DEFAULT (Point(0,0)),
  j JSON        DEFAULT (JSON_ARRAY())
);
0 rõ ràng.

Đối với mục nhập dữ liệu vào cột

mysql> CREATE TABLE t4 (uid BINARY(16) DEFAULT (UUID_TO_BIN(UUID())));
mysql> INSERT INTO t4 () VALUES();
mysql> INSERT INTO t4 () VALUES(DEFAULT);
mysql> SELECT BIN_TO_UUID(uid) AS uid FROM t4;
+--------------------------------------+
| uid                                  |
+--------------------------------------+
| f1109174-94c9-11e8-971d-3bf1095aa633 |
| f110cf9a-94c9-11e8-971d-3bf1095aa633 |
+--------------------------------------+
8 không có mệnh đề
CREATE TABLE t1 (
  -- literal defaults
  i INT         DEFAULT 0,
  c VARCHAR(10) DEFAULT '',
  -- expression defaults
  f FLOAT       DEFAULT (RAND() * RAND()),
  b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
  d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
  p POINT       DEFAULT (Point(0,0)),
  j JSON        DEFAULT (JSON_ARRAY())
);
0 rõ ràng, nếu câu lệnh
CREATE TABLE t2 (b BLOB DEFAULT ('abc'));
3 hoặc
CREATE TABLE t (i INT NOT NULL);
1 không bao gồm giá trị cho cột hoặc câu lệnh
CREATE TABLE t2 (b BLOB DEFAULT ('abc'));
4 đặt cột thành
mysql> CREATE TABLE t4 (uid BINARY(16) DEFAULT (UUID_TO_BIN(UUID())));
mysql> INSERT INTO t4 () VALUES();
mysql> INSERT INTO t4 () VALUES(DEFAULT);
mysql> SELECT BIN_TO_UUID(uid) AS uid FROM t4;
+--------------------------------------+
| uid                                  |
+--------------------------------------+
| f1109174-94c9-11e8-971d-3bf1095aa633 |
| f110cf9a-94c9-11e8-971d-3bf1095aa633 |
+--------------------------------------+
4, MySQL xử lý cột theo chế độ SQL có hiệu lực tại thời gian:

  • Nếu chế độ SQL nghiêm ngặt được bật, xảy ra lỗi đối với các bảng giao dịch và câu lệnh được cuộn lại. Đối với các bảng không chuyển hóa, xảy ra lỗi, nhưng nếu điều này xảy ra cho hàng thứ hai hoặc hàng tiếp theo của một câu lệnh nhiều hàng, các hàng trước được chèn.

  • Nếu chế độ nghiêm ngặt không được bật, MySQL sẽ đặt cột thành giá trị mặc định ngầm cho kiểu dữ liệu cột.

Giả sử rằng một bảng

CREATE TABLE t (i INT NOT NULL);
4 được xác định như sau:

CREATE TABLE t (i INT NOT NULL);

Trong trường hợp này,

CREATE TABLE t (i INT NOT NULL);
5 không có mặc định rõ ràng, vì vậy ở chế độ nghiêm ngặt, mỗi câu lệnh sau đây tạo ra một lỗi và không có hàng nào được chèn vào. Khi không sử dụng chế độ nghiêm ngặt, chỉ có câu lệnh thứ ba tạo ra lỗi; Mặc định ngầm được chèn cho hai câu lệnh đầu tiên, nhưng lần thứ ba thất bại vì
CREATE TABLE t (i INT NOT NULL);
6 không thể tạo ra một giá trị:

INSERT INTO t VALUES();
INSERT INTO t VALUES(DEFAULT);
INSERT INTO t VALUES(DEFAULT(i));

Xem Phần & NBSP; 5.1.11, Chế độ SQL Server SQL.

Đối với một bảng đã cho, câu lệnh

CREATE TABLE t (i INT NOT NULL);
7 hiển thị các cột nào có mệnh đề
CREATE TABLE t1 (
  -- literal defaults
  i INT         DEFAULT 0,
  c VARCHAR(10) DEFAULT '',
  -- expression defaults
  f FLOAT       DEFAULT (RAND() * RAND()),
  b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
  d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
  p POINT       DEFAULT (Point(0,0)),
  j JSON        DEFAULT (JSON_ARRAY())
);
0 rõ ràng.

Mặc định ngầm được xác định như sau:

  • Đối với các loại số, mặc định là

    CREATE TABLE t (i INT NOT NULL);
    9, ngoại trừ đối với các loại số nguyên hoặc dấu phẩy động được khai báo với thuộc tính
    CREATE TABLE t1 (
      -- literal defaults
      i INT         DEFAULT 0,
      c VARCHAR(10) DEFAULT '',
      -- expression defaults
      f FLOAT       DEFAULT (RAND() * RAND()),
      b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
      d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
      p POINT       DEFAULT (Point(0,0)),
      j JSON        DEFAULT (JSON_ARRAY())
    );
    9, mặc định là giá trị tiếp theo trong chuỗi.

  • Đối với các loại ngày và thời gian khác với

    CREATE TABLE t1 (
      -- literal defaults
      i INT         DEFAULT 0,
      c VARCHAR(10) DEFAULT '',
      -- expression defaults
      f FLOAT       DEFAULT (RAND() * RAND()),
      b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
      d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
      p POINT       DEFAULT (Point(0,0)),
      j JSON        DEFAULT (JSON_ARRAY())
    );
    2, mặc định là giá trị không phù hợp với loại. Điều này cũng đúng với
    CREATE TABLE t1 (
      -- literal defaults
      i INT         DEFAULT 0,
      c VARCHAR(10) DEFAULT '',
      -- expression defaults
      f FLOAT       DEFAULT (RAND() * RAND()),
      b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
      d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
      p POINT       DEFAULT (Point(0,0)),
      j JSON        DEFAULT (JSON_ARRAY())
    );
    2 nếu biến hệ thống
    INSERT INTO t VALUES();
    INSERT INTO t VALUES(DEFAULT);
    INSERT INTO t VALUES(DEFAULT(i));
    3 được bật (xem Phần & NBSP; 5.1.8, các biến hệ thống máy chủ của Hồi giáo). Mặt khác, đối với cột
    CREATE TABLE t1 (
      -- literal defaults
      i INT         DEFAULT 0,
      c VARCHAR(10) DEFAULT '',
      -- expression defaults
      f FLOAT       DEFAULT (RAND() * RAND()),
      b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
      d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
      p POINT       DEFAULT (Point(0,0)),
      j JSON        DEFAULT (JSON_ARRAY())
    );
    2 đầu tiên trong bảng, giá trị mặc định là ngày và giờ hiện tại. Xem Phần & NBSP; 11.2, các loại dữ liệu ngày và thời gian.zero value for the type. This is also true for
    CREATE TABLE t1 (
      -- literal defaults
      i INT         DEFAULT 0,
      c VARCHAR(10) DEFAULT '',
      -- expression defaults
      f FLOAT       DEFAULT (RAND() * RAND()),
      b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
      d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
      p POINT       DEFAULT (Point(0,0)),
      j JSON        DEFAULT (JSON_ARRAY())
    );
    2 if the
    INSERT INTO t VALUES();
    INSERT INTO t VALUES(DEFAULT);
    INSERT INTO t VALUES(DEFAULT(i));
    3 system variable is enabled (see Section 5.1.8, “Server System Variables”). Otherwise, for the first
    CREATE TABLE t1 (
      -- literal defaults
      i INT         DEFAULT 0,
      c VARCHAR(10) DEFAULT '',
      -- expression defaults
      f FLOAT       DEFAULT (RAND() * RAND()),
      b BINARY(16)  DEFAULT (UUID_TO_BIN(UUID())),
      d DATE        DEFAULT (CURRENT_DATE + INTERVAL 1 YEAR),
      p POINT       DEFAULT (Point(0,0)),
      j JSON        DEFAULT (JSON_ARRAY())
    );
    2 column in a table, the default value is the current date and time. See Section 11.2, “Date and Time Data Types”.

  • Đối với các loại chuỗi khác với

    INSERT INTO t VALUES();
    INSERT INTO t VALUES(DEFAULT);
    INSERT INTO t VALUES(DEFAULT(i));
    5, giá trị mặc định là chuỗi trống. Đối với
    INSERT INTO t VALUES();
    INSERT INTO t VALUES(DEFAULT);
    INSERT INTO t VALUES(DEFAULT(i));
    5, mặc định là giá trị liệt kê đầu tiên.

Phạm vi cho float trong mysql là gì?

Một số điểm nổi nhỏ (chính xác đơn).Các giá trị cho phép là -3.402823466E+38 đến -1.175494351E -38, 0 và 1.175494351E -38 đến 3.402823466E+38.Đây là các giới hạn lý thuyết, dựa trên tiêu chuẩn của IEEE.-3.402823466E+38 to -1.175494351E-38 , 0 , and 1.175494351E-38 to 3.402823466E+38 . These are the theoretical limits, based on the IEEE standard.

Có nổi trong MySQL không?

MySQL cho phép cú pháp không tiêu chuẩn: Float (M, D) hoặc Real (M, D) hoặc Double Precision (M, D).Ở đây, (m, d) có nghĩa là các giá trị có thể được lưu trữ với tổng số các chữ số m, trong đó các chữ số d có thể là sau điểm thập phân.Ví dụ, một cột được xác định là float (7,4) được hiển thị là -999.9999. . Here, ( M , D ) means than values can be stored with up to M digits in total, of which D digits may be after the decimal point. For example, a column defined as FLOAT(7,4) is displayed as -999.9999 .

MYSQL nổi bao nhiêu byte?

Yêu cầu lưu trữ loại số.

Phao có nghĩa là gì trong mysql?

Float là một số điểm nổi chính xác duy nhất.MySQL sử dụng bốn byte để lưu trữ giá trị nổi.Double là một số điểm nổi chính xác gấp đôi.MySQL sử dụng tám byte để lưu trữ giá trị kép.MySQL coi Double là một từ đồng nghĩa với độ chính xác gấp đôi (tiện ích mở rộng không chuẩn).a single precision floating point number. MySQL uses four bytes to store a FLOAT value. DOUBLE is a double precision floating point number. MySQL uses eight bytes to store a DOUBLE value. MySQL treats DOUBLE as a synonym for DOUBLE PRECISION (a non-standard extension).