Phiên bản được hỗ trợ:hiện tại3531_356117) /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ạiPhiên bản hoặc một trong kèo bóng đá euro phiên bản được hỗ trợ khác được liệt kê ở trên thay thế.

8.1. kèo bóng đá euro số

kèo bóng đá euro 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 chính xác.Bảng 8-2Liệt kê kèo bóng đá euro có sẵn.

Bảng 8-2. kèo bóng đá euro 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 byte 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 Độ kèo bóng đá euro do người dùng chỉ định, kèo bóng đá euro Không giới hạn
Số Biến Độ kèo bóng đá euro do người dùng chỉ định, kèo bóng đá euro Không giới hạn
Real 4 byte kèo bóng đá euro biến, không kèo bóng đá euro 6 chữ số thập phân kèo bóng đá euro
Double Precision 8 byte kèo bóng đá euro biến, không kèo bóng đá euro 15 chữ số thập phân kèo bóng đá euro
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 kèo bóng đá euro số được mô tả trongPhần 4.1.2. kèo bóng đá euro số có một bộ đầy đủ tương ứng Các toán tử và chức năng số học. Tham khảoChương 9Để biết thêm thông tin. Các Các phần sau mô tả kèo bóng đá euro một cách chi tiết.

8.1.1. kèo bóng đá euro số nguyên

kèo bóng đá euroSmallInt, Số nguyênBigint12727_12908

kèo bóng đá euroSố nguyênlà lựa chọn phổ biến, vì nó cung cấp sự cân bằng tốt nhất giữa phạm vi, kích thước lưu trữ và hiệu suất. TheSmallIntkèo bóng đá euro là Nói chung chỉ được sử dụng nếu không gian đĩa ở mức cao. TheBigintkèo bóng đá euro chỉ nên được sử dụng nếuSố nguyênphạm vi không đủ, vì cái sau chắc chắn nhanh hơn.

Trên kèo bóng đá euro hệ điều hành rất tối thiểuBigintLoại có thể không hoạt động chính xác, vì Nó dựa vào hỗ trợ của trình biên dịch cho kèo bóng đá euro số nguyên tám byte. Trên như vậy máy,Biginthoạt động giống nhưSố nguyên, nhưng vẫn chiếm tám byte lưu trữ. (Chúng tôi không biết về bất kỳ nền tảng hiện đại nào nơi này là trường hợp.)

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

8.1.2. Độ kèo bóng đá euro tùy ý Số

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

Chúng tôi sử dụng kèo bóng đá euro thuật ngữ sau đây: Thetỷ lệcủa ASốlà số lượng kèo bóng đá euro chữ số thập phân trong phần phân số, ở bên phải của Điểm thập phân. Thekèo bóng đá eurocủa ASốlà tổng số lượng đáng kể kèo bóng đá euro chữ số trong toàn bộ số, nghĩa là số chữ số để cả hai bên của điểm thập phân. Vì vậy, số 23.5141 có một Độ chính xác của 6 và tỷ lệ 4. kèo bóng đá euro số nguyên có thể được xem xét để có tỷ lệ bằng không.

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

Số (Precision, tỷ lệ)

Độ kèo bóng đá euro phải dương, tỷ lệ 0 hoặc dương. Cách khác:

Số (kèo bóng đá euro)

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

Số

Không có bất kỳ độ chính xác hoặc tỷ lệ nào tạo ra một cột trong đó giá trị số của bất kỳ độ chính xác và tỷ lệ nào có thể được lưu trữ, lên đến Giới hạn thực hiện về độ chính xác. Một cột của loại này sẽ không ép buộc kèo bóng đá euro giá trị đầu vào cho bất kỳ quy mô cụ thể nào, trong khiSốkèo bóng đá euro cột có thang đo được khai báo sẽ ép buộc kèo bóng đá euro giá trị đầu vào cho thang đo đó. (TheSQLTiêu chuẩn yêu cầu tỷ lệ mặc định là 0, tức là, ép buộc đến độ kèo bóng đá euro số nguyên. Chúng tôi thấy điều này một chút vô ích. Nếu bạn lo lắng về tính di động, luôn luôn chỉ định độ kèo bóng đá euro và tỷ lệ rõ ràng.)

Nếu tỷ lệ của một giá trị được lưu trữ lớn hơn Tỷ lệ được khai báo của cột, hệ thống sẽ làm tròn giá trị đến số lượng kèo bóng đá euro chữ số phân số được chỉ định. Sau đó, nếu Số chữ số ở bên trái của điểm thập phân vượt quá tuyên bố độ chính xác trừ thang đo được khai báo, một lỗi là nâng lên.

16950_17154Sốkèo bóng đá euro gần giống vớiVarchar (n)hơnchar (n).) The 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 năm đến tám byte trên đầu.

Ngoài kèo bóng đá euro giá trị số thông thường,Sốkèo bóng đá euro cho phép giá trị đặc biệtNAN, có nghĩa là17669_17685. Bất kỳ hoạt động nào trênNANmang lại cái khácNAN. Khi viết giá trị này dưới dạng hằng số trong lệnh SQL, bạn phải đặt báo giá xung quanh nó, ví dụBảng cập nhật đặt x = 'nan'. Trên đầu vào, chuỗi17999_18004được công nhận trong A cách không nhạy cảm trường hợp.

Lưu ý:Trong hầu hết kèo bóng đá euro 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ố (bao gồmNAN). TRONG thứ tự cho phépSốGiá trị sẽ được được sắp xếp và sử dụng trong kèo bóng đá euro chỉ mục dựa trên cây,PostgreSQLTreatsnan18583_18636NANGiá trị.

kèo bóng đá eurothập phânSốtương đương. Cả hai kèo bóng đá euro là một phần củaSQLtiêu chuẩn.

8.1.3. kèo bóng đá euro điểm nổi

kèo bóng đá euro dữ liệuRealđộ kèo bóng đá euro gấp đôi19131_19245IEEETiêu chuẩn 754 cho số học dấu phẩy nổi nhị phân (đơn và đơn và độ kèo bóng đá euro gấp đôi, tương ứng), đến mức Bộ xử lý cơ bản, hệ điều hành và hỗ trợ trình biên dịch Nó.

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 đến định dạng nội bộ và được lưu trữ dưới dạng xấp xỉ, vì vậy Việc lưu trữ và truy xuất một giá trị có thể hiển thị nhẹ sự khác biệt. Quản lý kèo bóng đá euro lỗi này và cách chúng lan truyền thông qua kèo bóng đá euro tính toán là chủ đề của toàn bộ nhánh của 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ừ kèo bóng đá euro điểm sau:

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

  • Nếu bạn muốn thực hiện các tính toán phức tạp với những điều này kèo bóng đá euro cho bất cứ điều gì quan trọng, đặc biệt là nếu bạn dựa vào một số hành vi trong các trường hợp biên (vô cực, dòng chảy), bạn nên đánh giá cẩn thận việc triển khai.

  • So sánh hai giá trị dấu phẩy động 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 kèo bóng đá euro nền tảng,Realkèo bóng đá euro có a Phạm vi ít nhất 1E-37 đến 1e+37 với độ chính xác ít nhất là 6 chữ số thập phân. TheĐộ kèo bóng đá euro gấp đôikèo bóng đá euro thường có phạm vi khoảng 1E-307 đến 1E+308 với Độ chính xác của ít nhất 15 chữ số. 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 một số đầu vào là quá cao. Số quá gần với số không có thể được thể hiện là khác biệt với số không gây ra lỗi dòng chảy.

Lưu ý:TheExtra_float_digitsThiết lập kiểm soát số lượng chữ số có ý nghĩa thêm Bao gồm khi một 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 sản lượng điều đó đại diện kèo bóng đá euro hơn là 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, điểm nổi kèo bóng đá euro có một số giá trị đặc biệt:

Vô cực
-Infinity
NAN

Chúng đại diện cho IEEE 754 Giá trị đặc biệt"Infinity", "Vô cực tiêu cực""Not-a-number", tương ứng. (Trên a máy có số học nổi không theo IEEE 754, những giá trị này có thể sẽ không hoạt động như mong đợi.) Khi Viết kèo bóng đá euro giá trị này dưới dạng hằng số trong lệnh SQL, bạn phải Đặt báo giá xung quanh họ, ví dụ22444_22481. Trên đầu vào, kèo bóng đá euro chuỗi này là được công nhận theo cách nhạy cảm trường hợp.

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

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

Lưu ý:trướcPostgreSQL7.4, độ kèo bóng đá euro trongfloat (P)24291_24328thập phânchữ số. Điều này đã được sửa chữa để phù hợp với tiêu chuẩn SQL, trong đó Chỉ định rằng độ chính xác được đo bằng kèo bóng đá euro chữ số nhị phân. Giả định rằngRealDouble Precisioncó chính xác 24 và 53 bit trong mantissa tương ứng là chính xác cho Việc triển khai điểm nổi theo tiêu chuẩn. Trên không phải là người yêu kèo bóng đá euro nền tảng nó có thể tắt một chút, nhưng để đơn giản cùng phạm vi củaPđược sử dụng Trên tất cả kèo bóng đá euro nền tảng.

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

kèo bóng đá euro dữ liệusê -riBigSerialkhông phải là loại đúng, mà chỉ là một Notational thuận tiện cho việc tạo kèo bóng đá euro cột định danh duy nhất (Tương tự nhưAuto_incrementthuộc tính được hỗ trợ bởi một số cơ sở dữ liệu khác). Trong hiện tại Thực hiện, chỉ định:

Tạo bảngTableName(colnameSê -ri
);

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;

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

Lưu ý:trướcPostgreSQL7.3,nối tiếpngụ ýđộc đáo. Điều này không còn tự động. Nếu bạn muốn một cột nối tiếp có một ràng buộc duy nhất hoặc là một khóa chính, bây giờ nó phải được chỉ định, giống như bất kỳ kèo bóng đá euro dữ liệu nào khác.

Để chèn giá trị tiếp theo của chuỗi vàonối tiếpCột, chỉ định rằngnối tiếpCột phải đượ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ủa kèo bóng đá euro cột trongChènCâu lệnh, hoặc thông qua việc sử dụngMặc địnhkhóa từ.

tên kèo bóng đá euronối tiếpserial4là tương đương: cả hai đều tạoSố nguyênCột. Tên kèo bóng đá euroBigSerialserial8Công việc cùng một cách, ngoại trừ việc họ 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.

Trình tự được tạo cho mộtsê -riCột bị bỏ tự động khi cột sở hữu là rơi xuống. Bạn có thể bỏ trình tự mà không cần thả cột, Nhưng điều này sẽ buộc phải kèo bóng đá euro bỏ mặc định cột sự biểu lộ.