Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2
Tài liệu này dành cho phiên bản không được hỗ trợ của PostgreSQL.
Bạn có thể muốn xem cùng một trang chohiện tạiversion, or one of the other supported versions listed above instead.

8.1. cách đọc kèo bóng đá số

cách đọc kèo bóng đá số bao gồm các số nguyên hai, bốn, và tám byte, số điểm nổi bốn và tám byte và số thập phân có thể chọn có thể lựa chọn.Bảng 8-2liệt kê cách đọc kèo bóng đá có sẵn.

Table 8-2. cách đọc kèo bóng đá số

tên Kích thước lưu trữ Mô tả phạm vi
smallint 2 byte Số nguyên phạm vi nhỏ -32768 đến +32767
Số nguyên 4 bytes Lựa chọn điển hình cho số nguyên -2147483648 đến +2147483647
Bigint 8 byte Số nguyên phạm vi lớn -9223372036854775808 đến +9223372036854775807
thập phân Biến Độ chính xác do người dùng chỉ định, chính xác lên đến 131072 chữ số trước điểm thập phân; Lên đến 16383 chữ số sau dấu thập phân
Số biến Độ chính xác do người dùng chỉ định, chính xác lên đến 131072 chữ số trước điểm thập phân; Lên đến 16383 chữ số sau dấu thập phân
Real 4 byte Chính xác biến, không chính xác 6 chữ số thập phân chính xác
Double Precision 8 byte Chính xác biến, không chính xác 15 chữ số thập phân chính xác
SmallSerial 11242_11251 Số nguyên tự động thuc nhỏ 1 đến 32767
nối tiếp 4 byte Số nguyên tự động 1 đến 2147483647
BigSerial 8 byte Số nguyên tự động lớn 1 đến 9223372036854775807

Cú pháp của hằng số cho cách đọc kèo bóng đá số được mô tả trongPhần 4.1.2. cách đọc kèo bóng đá số có đầy đủ các toán tử và chức năng số học tương ứng. Tham khảoChương 9Để biết thêm thông tin. Các phần sau mô tả cách đọc kèo bóng đá một cách chi tiết.

8.1.1. cách đọc kèo bóng đá số nguyên

cách đọc kèo bóng đáSmallInt, Số nguyênBigintLưu trữ toàn bộ số, nghĩa là cách đọc kèo bóng đá số không có thành phần phân số, của cách đọc kèo bóng đá phạm vi khác nhau. Nỗ lực lưu trữ cách đọc kèo bóng đá giá trị bên ngoài phạm vi được phép sẽ dẫn đến lỗi.

cách đọc kèo bóng đáSố nguyên12397_12502smallinttype is generally only used if disk space is at a premium. TheBigintcách đọc kèo bóng đá được thiết kế để sử dụng khi phạm vi củaSố nguyêncách đọc kèo bóng đá không đủ.

SQLChỉ chỉ định cách đọc kèo bóng đá số nguyêninteger(hoặcint),SmallIntbigint. Tên cách đọc kèo bóng đáINT2, INT4INT8là phần mở rộng, cũng được sử dụng bởi một số khácSQLHệ thống cơ sở dữ liệu.

8.1.2. Số chính xác tùy ý

cách đọc kèo bóng đáSốCó thể lưu trữ số với số lượng rất lớn cách đọc kèo bóng đá chữ số và thực hiện cách đọc kèo bóng đá tính toán chính xác. Nó đặc biệt được khuyến nghị để lưu trữ số lượng tiền tệ và cách đọc kèo bóng đá số lượng khác khi cần độ chính xác. Tuy nhiên, số học trênSốGiá trị rất chậm so với cách đọc kèo bóng đá số nguyên hoặc cách đọc kèo bóng đá điểm nổi được mô tả trong phần tiếp theo.

Chúng tôi sử dụng cách đọc kèo bóng đá thuật ngữ sau đây: Thechính xáccủa ASốis the total count of significant digits in the whole number, that is, the number of digits to both sides of the decimal point. Thetỷ lệcủa ASốlà số lượng cách đọc kèo bóng đá chữ số thập phân trong phần phân số, ở bên phải của điểm thập phân. Vì vậy, số 23.5141 có độ chính xác là 6 và tỷ lệ 4. cách đọc kèo bóng đá số nguyên có thể được coi là có tỷ lệ bằng không.

Cả độ chính xác tối đa và tỷ lệ tối đa của ASốCột có thể được cấu hình. Để khai báo một cột cách đọc kèo bóng đáSốSử dụng cú pháp:

Số (Precision, tỷ lệ)

14540_14616

Số (chính xác)

Chọn thang đo 0. Chỉ định:

Số

14790_15035Sốcách đọc kèo bóng đá cột có thang đo được khai báo sẽ ép buộc cách đọc kèo bóng đá giá trị đầu vào theo thang đo đó. (TheSQLTiêu chuẩn yêu cầu tỷ lệ mặc định là 0, tức là, ép buộc với độ chính xác số nguyên. Chúng tôi thấy điều này một chút vô dụng. Nếu bạn quan tâm đến tính di động, hãy luôn chỉ định độ chính xác và tỷ lệ rõ ràng.)

Lưu ý:Độ chính xác cho phép tối đa khi được chỉ định rõ ràng trong khai báo cách đọc kèo bóng đá là 1000;SốKhông có độ chính xác được chỉ định là theo giới hạn được mô tả trongBảng 8-2.

If the scale of a value to be stored is greater than the declared scale of the column, the system will round the value to the specified number of fractional digits. Then, if the number of digits to the left of the decimal point exceeds the declared precision minus the declared scale, an error is raised.

cách đọc kèo bóng đá giá trị số được lưu trữ vật lý mà không cần thêm bất kỳ số 0 dẫn đầu hoặc theo dõi. Do đó, độ chính xác và tỷ lệ được khai báo của một cột là tối đa, không phân bổ cố định. (Theo nghĩa nàySốcách đọc kèo bóng đá gần giống vớiVarchar (n)than tochar (n).) Yêu cầu lưu trữ thực tế là hai byte cho mỗi nhóm bốn chữ số thập phân, cộng với ba đến tám byte trên đầu.

Ngoài cách đọc kèo bóng đá giá trị số thông thường,Sốcách đọc kèo bóng đá cho phép giá trị đặc biệtNAN, có nghĩa là"Not-a-number"16722_16743NANmang lại cái khácNaN. When writing this value as a constant in an SQL command, you must put quotes around it, for exampleBảng cập nhật đặt x = 'nan'. On input, the stringNANđược công nhận theo cách không nhạy cảm trường hợp.

Lưu ý:Trong hầu hết cách đọc kèo bóng đá triển khai của"Not-a-number"Khái niệm,NANkhông được coi là bằng bất kỳ giá trị số nào khác (bao gồmNAN). Để cho phépSốGiá trị được sắp xếp và sử dụng trong cách đọc kèo bóng đá chỉ mục dựa trên cây,PostgreSQLTreatsNANGiá trị bằng nhau và lớn hơn tất cả khôngNANGiá trị.

cách đọc kèo bóng đáthập phân17657_17664Số17691_17737SQLtiêu chuẩn.

8.1.3. cách đọc kèo bóng đá điểm nổi

The data typesRealDouble Precisionlà cách đọc kèo bóng đá số không chính xác, chính xác. Trong thực tế, cách đọc kèo bóng đá này thường được triển khaiIEEE18145_18330

Không chính xác có nghĩa là một số giá trị không thể được chuyển đổi chính xác sang định dạng nội bộ và được lưu trữ dưới dạng xấp xỉ, do đó lưu trữ và truy xuất một giá trị có thể hiển thị sự khác biệt nhỏ. Quản lý cách đọc kèo bóng đá lỗi này và cách chúng tuyên truyền thông qua cách đọc kèo bóng đá tính toán là chủ đề của toàn bộ ngành toán học và khoa học máy tính và sẽ không được thảo luận ở đây, ngoại trừ cách đọc kèo bóng đá điểm sau:

  • Nếu bạn yêu cầu lưu trữ và tính toán chính xác (chẳng hạn như số tiền tiền tệ), hãy sử dụngSốcách đọc kèo bóng đá thay thế.

  • If you want to do complicated calculations with these types for anything important, especially if you rely on certain behavior in boundary cases (infinity, underflow), you should evaluate the implementation carefully.

  • So sánh hai giá trị điểm nổi cho sự bình đẳng có thể không phải lúc nào cũng hoạt động như mong đợi.

Trên hầu hết cách đọc kèo bóng đá nền tảng,Realcách đọc kèo bóng đá có phạm vi ít nhất 1e-37 đến 1e+37 với độ chính xác ít nhất 6 chữ số thập phân. TheDouble PrecisionLoại thường có phạm vi khoảng 1E-307 đến 1E+308 với độ chính xác ít nhất 15 chữ số. cách đọc kèo bóng đá giá trị quá lớn hoặc quá nhỏ sẽ gây ra lỗi. Làm tròn có thể diễn ra nếu độ chính xác của số đầu vào quá cao. cách đọc kèo bóng đá số quá gần với số 0 không thể đại diện vì số 0 sẽ gây ra lỗi dòng chảy.

Lưu ý:TheExtra_float_digitsCài đặt kiểm soát số lượng cách đọc kèo bóng đá chữ số có ý nghĩa thêm bao gồm khi giá trị điểm nổi được chuyển đổi thành văn bản cho đầu ra. Với giá trị mặc định của0, đầu ra giống nhau trên mọi nền tảng được hỗ trợ bởi PostgreSQL. Tăng nó sẽ tạo ra đầu ra thể hiện chính xác hơn giá trị được lưu trữ, nhưng có thể không thể tham dự.

Ngoài các giá trị số thông thường, cách đọc kèo bóng đá điểm nổi có một số giá trị đặc biệt:

Vô cực
-Infinity
NAN

Chúng đại diện cho cách đọc kèo bóng đá giá trị đặc biệt của IEEE 75420583_20595, "Vô cực tiêu cực""Not-a-number", tương ứng. .Bảng cập nhật đặt X = 'Infinity'. Trên đầu vào, cách đọc kèo bóng đá chuỗi này được công nhận theo cách không phân biệt trường hợp.

Lưu ý:IEEE754 Chỉ định rằng21167_21172Không nên so sánh bằng bất kỳ giá trị điểm nổi nào khác (bao gồmNAN). Để cho phép cách đọc kèo bóng đá giá trị điểm nổi được sắp xếp và sử dụng trong cách đọc kèo bóng đá chỉ mục dựa trên cây,PostgreSQLTreatsNANGiá trị bằng nhau và lớn hơn tất cả không phảiNANGiá trị.

PostgreSQLCũng hỗ trợ cách đọc kèo bóng đá ký hiệu tiêu chuẩn SQLfloatfloat (p)Để chỉ định cách đọc kèo bóng đá số không chính xác. Đây,PChỉ định độ chính xác tối thiểu chấp nhận được trongnhị phânchữ số.PostgreSQLChấp nhậnFloat (1)đếnFloat (24)Khi chọnrealcách đọc kèo bóng đá, trong khiFloat (25)đếnFloat (53)Chọnđộ chính xác gấp đôi. Giá trị củaPBên ngoài phạm vi được phép vẽ lỗi.floatKhông có độ chính xác được chỉ định được đưa ra có nghĩa làDouble Precision.

Lưu ý:Giả định rằngRealDouble PrecisionCó chính xác 24 và 53 bit trong Mantissa tương ứng là chính xác cho cách đọc kèo bóng đá triển khai điểm nổi theo tiêu chuẩn của IEEE. Trên cách đọc kèo bóng đá nền tảng không phải là người yêupđược sử dụng trên tất cả cách đọc kèo bóng đá nền tảng.

8.1.4. cách đọc kèo bóng đá nối tiếp

cách đọc kèo bóng đá dữ liệuSmallSerial, nối tiếpBigSerial23079_23193auto_incrementthuộc tính được hỗ trợ bởi một số cơ sở dữ liệu khác). Trong triển khai hiện tại, chỉ định:

Tạo bảngTableName(colnameSERIAL
);

tương đương với việc chỉ định:

Tạo chuỗiTableName_colname_seq;
Tạo bảngTableName(colnameSố nguyên không phải là mặc định NEXTVAL ('TableName_colname_seq ')
);
Thay đổi trình tựTableName_colname_SEQ thuộc sở hữu củaTableName.colname;

Do đó, chúng tôi đã tạo một cột số nguyên và được sắp xếp cho cách đọc kèo bóng đá giá trị mặc định của nó được gán từ trình tạo chuỗi. MỘTkhông nullràng buộc được áp dụng để đảm bảo rằng giá trị null không thể được chèn. (Trong hầu hết cách đọc kèo bóng đá trường hợp, bạn cũng muốn đính kèmđộc đáohoặcKhóa chínhràng buộc để ngăn cách đọc kèo bóng đá giá trị trùng lặp được chèn do tai nạn, nhưng điều này không tự động.) Cuối cùng, trình tự được đánh dấu là"Được sở hữu bởi"Cột, để nó bị hủy nếu cột hoặc bảng bị rơi.

Lưu ý:BecauseSmallSerial, sê -riBigSerialđược triển khai bằng cách sử dụng cách đọc kèo bóng đá chuỗi, có thể có "lỗ hổng" hoặc khoảng cách trong chuỗi cách đọc kèo bóng đá giá trị xuất hiện trong cột, ngay cả khi không có hàng nào bị xóa. Một giá trị được phân bổ từ chuỗi vẫn "được sử dụng" ngay cả khi một hàng chứa giá trị đó không bao giờ được chèn thành công vào cột bảng. Điều này có thể xảy ra, ví dụ, nếu việc chèn giao dịch quay trở lại. Nhìn thấyNextVal ()inPhần 9.16Để biết chi tiết.

Để chèn giá trị tiếp theo của chuỗi vàosê -riCột, chỉ định rằngsê -riCột nên được gán giá trị mặc định của nó. Điều này có thể được thực hiện bằng cách loại trừ cột khỏi danh sách cách đọc kèo bóng đá cột trongChèncâu lệnh hoặc thông qua việc sử dụngMặc địnhTừ khóa.

tên cách đọc kèo bóng đásê -riserial4tương đương: cả hai đều tạoSố nguyênCột. Tên cách đọc kèo bóng đáBigSerialserial8Làm việc theo cùng một cách, ngoại trừ việc chúng tạo ra mộtBigintcột.BigSerialnên được sử dụng nếu bạn dự đoán việc sử dụng nhiều hơn 231Định danh trong suốt vòng đời của bảng. Tên cách đọc kèo bóng đáSmallSerialserial2Cũng hoạt động theo cùng một cách, ngoại trừ việc chúng tạo ra mộtSmallIntcột.

Trình tự được tạo cho mộtsê -ricột tự động bị rơi khi cột sở hữu bị rơi. Bạn có thể bỏ trình tự mà không bỏ cột, nhưng điều này sẽ buộc cách đọc kèo bóng đá bỏ biểu thức mặc định cột.