Postgresql 7.4.30 Tài cách đọc kèo bóng đá | ||||
---|---|---|---|---|
prev | Backward nhanh | Chuyển tiếp nhanh | NEXT |
PostgreSQLcó một bộ phong phú Các loại dữ cách đọc kèo bóng đá bản địa có sẵn cho người dùng. Người dùng có thể thêm các loại mới vàoPostgreSQLSử dụngTạo cách đọc kèo bóng đálệnh.
Bảng 8-1Hiển thị tất cả tích hợp các loại dữ cách đọc kèo bóng đá đa năng. Hầu hết các thay thế Tên được liệt kê trong"Bí danh"Cột cách đọc kèo bóng đá tên được sử dụng trong nội bộ bởiPostgreSQLVì lý do lịch sử. TRONG Ngoài ra, một số cách đọc kèo bóng đá được sử dụng nội bộ hoặc không dùng nữa có sẵn, Nhưng chúng không được liệt kê ở đây.
Bảng 8-1. Kiểu dữ cách đọc kèo bóng đá
tên | Bí danh | Mô tả |
---|---|---|
Bigint | INT8 | Đã ký số nguyên tám byte |
BigSerial | serial8 | Autoincrementing Eight-byte Integer |
bit | Chuỗi bit có độ dài cố định | |
Bit khác nhau (n) | varbit (n) | Chuỗi bit có độ dài biến đổi |
Boolean | bool | Boolean logic (Đúng/Sai) |
Box | Hộp hình chữ nhật trong mặt phẳng | |
bytea | Dữ cách đọc kèo bóng đá nhị phân | |
Nhân vật khác nhau (n) | Varchar (n) | Chuỗi ký tự có độ dài thay đổi |
ký tự (n) | char (n) | Chuỗi ký tự có độ dài cố định |
CIDR | IPv4 hoặc địa chỉ mạng IPv6 | |
Circle | vòng tròn trong mặt phẳng | |
ngày | Ngày lịch (năm, tháng, ngày) | |
Double Precision | float8 | Số điểm nổi chính xác gấp đôi |
inet | IPv4 hoặc địa chỉ máy chủ IPv6 | |
Số nguyên | int, INT4 | Đã ký Byte Integer |
Khoảng thời gian (P) | Khoảng thời gian | |
Line | dòng vô hạn trong mặt phẳng (không hoàn toàn đã triển khai) | |
LSEG | Phân đoạn dòng trong mặt phẳng | |
MacAddr | Địa chỉ MAC | |
tiền | Số tiền tiền tệ | |
Số [(P, S)] | thập phân [(P, S)] | Số chính xác với độ chính xác có thể chọn |
đường dẫn | Đường dẫn hình học mở và đóng trong mặt phẳng | |
điểm | Điểm hình học trong mặt phẳng | |
Polygon | 19653_19689 | |
Real | float4 | Số điểm nổi chính xác đơn |
SmallInt | int2 | Đã ký hai byte |
sê -ri | serial4 | Số nguyên bốn byte tự động |
Text | Chuỗi ký tự độ dài biến | |
Thời gian [(P)] [Không có múi giờ ] | Thời gian trong ngày | |
Thời gian [(P)] với múi giờ | Timetz | Thời gian trong ngày, bao gồm múi giờ |
dấu thời gian [(P)] [Không có múi giờ ] | Dấu thời gian | Ngày và giờ |
dấu thời gian [(P)] với múi giờ | TIMESTAMPTZ | Ngày và giờ, bao gồm múi giờ |
Khả năng tương thích:cách đọc kèo bóng đá loại sau (hoặc chính tả của nó) được chỉ định bởiSQL: 21603_21608, Bit thay đổi, Boolean, char, Nhân vật khác nhau, ký tự, Varchar, ngày, Double Độ chính xác, Số nguyên, Khoảng, Số, 22043_22052, Real, SmallInt, thời gian(có hoặc không có múi giờ),dấu thời gian(có hoặc không có múi giờ).
Mỗi loại dữ cách đọc kèo bóng đá có biểu diễn bên ngoài được xác định bởi Chức năng đầu vào và đầu ra của nó. Nhiều loại tích hợp có các định dạng bên ngoài rõ ràng. Tuy nhiên, một số loại là duy nhất choPostgreSQL, chẳng hạn như đường dẫn mở và đóng, hoặc có một số khả năng cho cách đọc kèo bóng đá định dạng, chẳng hạn như cách đọc kèo bóng đá loại ngày và thời gian. Một số đầu vào và đầu ra cách đọc kèo bóng đá chức năng không thể đảo ngược. Nghĩa là kết quả của đầu ra chức năng có thể mất độ chính xác khi so sánh với bản gốc đầu vào.
Một số toán tử và chức năng (ví dụ: bổ sung và phép nhân) không thực hiện kiểm tra lỗi thời gian chạy trong Lợi ích của việc cải thiện tốc độ thực hiện. Trên một số hệ thống, cho Ví dụ, các toán tử số cho một số loại dữ cách đọc kèo bóng đá có thể âm thầm Nguyên nhân Dòng chảy hoặc tràn.
cách đọc kèo bóng đá loại số bao gồm hai, bốn, bốn và tám byte số nguyên, số lượng nổi bốn và tám byte, và Số thập phân có chính xác cố định.Bảng 8-2liệt kê cách đọc kèo bóng đá loại có sẵn.
Bảng 8-2. cách đọc kèo bóng đá loại 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 thông thường 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 | Không giới hạn |
Số | Biến | Độ chính xác do người dùng chỉ định, chính xác | Không giới hạn |
Real | 4 byte | biến đổi chính xác, không chính xác | 6 chữ số thập phân chính xác |
Double Precision | 8 byte | biến đổi chính xác, không chính xác | 15 chữ số thập phân chính xác |
sê -ri | 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 đá loại số được mô tả TRONGPhần 4.1.2. cách đọc kèo bóng đá loại số có một bộ đầy đủ tương ứng cách đọc kèo bóng đá toán tử và chức năng số học. Tham khảoChương 9Để biết thêm thông tin. cách đọc kèo bóng đá cách đọc kèo bóng đá phần sau mô tả cách đọc kèo bóng đá loại một cách chi tiết.
cách đọc kèo bóng đá loạiSmallInt, Số nguyênvàBigintCửa hàng toàn bộ số, nghĩa là cách đọc kèo bóng đá số không có phân số cách đọc kèo bóng đá thành phần, 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ị ngoài phạm vi được phép sẽ dẫn đến lỗi.
cách đọc kèo bóng đáSố nguyênlà thông thường sự lựa chọn, vì nó cung cấp sự cân bằng tốt nhất giữa phạm vi, lưu trữ Kích thước và hiệu suất. Thesmallint27135_27213Bigintcách đọc kèo bóng đá chỉ nên được sử dụng nếu TheSố nguyênPhạm vi không đủ, bởi vì cái sau chắc chắn nhanh hơn.
TheBigintLoại không thể hoạt động chính xác trên tất cả cách đọc kèo bóng đá nền tảng, vì nó dựa vào trình biên dịch Hỗ trợ cho số nguyên tám byte. Trên máy không có ủng hộ,Biginthoạt động giống nhưSố nguyên(nhưng vẫn chiếm tám byte lưu trữ). Tuy nhiên, chúng tôi không biết về bất kỳ hợp lý nào nền tảng nơi này thực sự là trường hợp.
SQLChỉ chỉ định cách đọc kèo bóng đá loại số nguyênSố nguyên(hoặcint) vàsmallint. cách đọc kèo bóng đáBigintvà tên cách đọc kèo bóng đáINT2, INT4vàINT8là cách đọc kèo bóng đá phần mở rộng, được chia sẻ với khác nhauSQLCơ sở dữ cách đọc kèo bóng đá hệ thống.
Lưu ý:Nếu bạn có một cột cách đọc kèo bóng đáSmallInthoặcBigintvới một chỉ mục, bạn có thể gặp sự cố khi nhận được hệ thống để sử dụng chỉ mục đó. Chẳng hạn, một mệnh đề của biểu mẫu
... trong đó smallint_column = 42sẽ không sử dụng chỉ mục, vì hệ thống gán cách đọc kèo bóng đáSố nguyênvới hằng số 42 vàPostgreSQLHiện tại không thể sử dụng một chỉ mục khi hai loại dữ cách đọc kèo bóng đá khác nhau có liên quan. Một cách giải quyết là để duy nhất không đổi, Do đó:
... trong đó smallint_column = '42'Điều này sẽ khiến hệ thống trì hoãn độ phân giải cách đọc kèo bóng đá và sẽ gán đúng cách đọc kèo bóng đá cho hằng số.
cách đọc kèo bóng đáSốCó thể lưu trữ số với tối đa 1000 chữ số chính xác 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ữ tiền tệ Số lượng và cách đọc kèo bóng đá số lượng khác khi cần độ chính xác. Tuy nhiên,SốLoại rất chậm so với cách đọc kèo bóng đá loại điểm nổi được mô tả trong phần tiếp theo phần.
Trong phần tiếp theo, chúng tôi sử dụng cách đọc kèo bóng đá thuật ngữ sau:Scalecủa ASố30091_30200chính xáccủa ASốlà tổng số số cách đọc kèo bóng đá chữ số quan trọng trong toàn bộ số, nghĩa là, số chữ số cho cả hai bên của số thập phân điểm. Vì vậy, số 23.5141 có độ chính xác là 6 và tỷ lệ trong số 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 và tỷ lệ của cách đọc kèo bóng đá số 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ố (độ chính xác, Scale)
Độ chính xác phải dương, tỷ lệ 0 hoặc tích cực. Ngoài ra,
Số (chính xác)
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 cái này Loại sẽ không ép buộc cách đọc kèo bóng đá giá trị đầu vào cho bất kỳ quy mô cụ thể nào, trong khiSốcách đọc kèo bóng đá cột có được khai báo Thang đo sẽ ép buộc cách đọc kèo bóng đá giá trị đầu vào cho thang đo đó. (TheSQL31566_31788
31801_32051
cách đọc kèo bóng đá loạithập phânvàSốtương đương. Cả hai cách đọc kèo bóng đá đều là một phần của TheSQLtiêu chuẩn.
Các loại dữ cách đọc kèo bóng đáRealvàđộ chính xác gấp đôi32700_32818IEEETiêu chuẩn 754 cho số học dấu phẩy nổi nhị phân (đơn và đơn và độ chính xác 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à in lại một giá trị có thể hiển thị nhẹ sự khác biệt. Quản lý cách đọc kèo bóng đá lỗi này và cách chúng lan truyền thông qua cách đọc kèo bóng đá 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 Xa hơ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ư Đối với số tiền tiền tệ), hãy sử dụngSốcách đọc kèo bóng đá thay thế.
Nếu bạn muốn thực hiện cách đọc kèo bóng đá tính toán phức tạp với những điều này cách đọc kèo bóng đá loại 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ách đọc kèo bóng đá 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ể hoặc có thể khô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ó một phạm vi ít nhất 1E-37 đến 1E+37 với độ chính xác của AT ít nhất 6 chữ số thập phân. TheDouble Độ chính xácLoạ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ố. Giá trị đó Quá lớn hoặc quá nhỏ sẽ gây ra lỗi. Vòng tròn có thể diễn ra nếu độ chính xác của một 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 cho khác biệt với số 0 sẽ gây ra lỗi dòng chảy.
POSTGRESQLCũng hỗ trợ cách đọc kèo bóng đá ký hiệu tiêu chuẩn SQLfloatvàfloat (P)Để chỉ định số không chính xác cách đọc kèo bóng đá. Đây,P35040_35110PostgreSQLChấp nhậnFloat (1)đếnFloat (24)như ChọnRealcách đọc kèo bóng đá, trong khiFloat (25)đếnFloat (53)ChọnDouble Độ chính xác35433_35447PBên ngoài phạm vi được phép vẽ lỗi.floatKhông có độ chính xác được chỉ định được đưa đến nghĩa làDouble Precision.
Lưu ý:trướcPOSTGRESQL7.4, độ chính xác trongfloat (P)Đã được coi là rất nhiều chữ số thập phân. Điều này đã được sửa chữa để phù hợp với SQL tiêu chuẩn, trong đó chỉ định rằng độ chính xác được đo lường trong cách đọc kèo bóng đá chữ số nhị phân. Giả định rằngRealvàDouble Độ chính xác36210_36455Pđược sử dụng trên tất cả nền tảng.
Các loại dữ cách đọc kèo bóng đásê -rivàBigSerialkhông phải là loại đúng, mà chỉ là một Notational thuận tiện cho việc thiết lập định danh duy nhất cách đọc kèo bóng đá cột (tương tự nhưauto_incrementthuộc tính được hỗ trợ bởi một số cơ sở dữ cách đọc kèo bóng đá khác). Trong việc thực hiện hiện tại, Chỉ định
Tạo bảngTableName(colnameSê -ri );
tương đương với chỉ định:
Tạo chuỗiTableName_colname_SEQ; Tạo bảngTableName(colnameSố nguyên mặc định NextVal ('TableName_colname_seq ') không phải null );
Vì vậy, 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ừ một trình tạo chuỗi. MỘTkhông null38062_38218độc đáohoặcKhóa chínhràng buộc để ngăn chặn trùng lặp cách đọc kèo bóng đá giá trị từ việc bị chèn vào do tai nạn, nhưng điều này không tự động.
Lưu ý:trướcPOSTGRESQL7.3,nối tiếpngụ ýđộc đáo. Điều này không còn tự động. Nếu như bạn muốn một cột nối tiếp ở trong một ràng buộc duy nhất hoặc một khóa chính, bây giờ nó phải được chỉ định, giống như với bất kỳ Kiểu dữ cách đọc kèo bóng đá khác.
Để chèn giá trị tiếp theo của chuỗi vàosê -riCột, chỉ định rằngnối tiếpCột nên được gán giá trị mặc định. Điều này có thể được thực hiện bằng cách loại trừ cột từ 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ê -rivàserial4là tương đương: cả hai đều tạoSố nguyênCột. Tên cách đọc kèo bóng đáBigSerialvàserial8làm việc giống như vậy, 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àn.
Trình tự được tạo cho ANối tiếpCột bị bỏ tự động khi cột sở hữu là
Bị bỏ, và không thể bị cách đọc kèo bóng đá bỏ khác. (Điều này không đúng
TRONGPostgreSQLPhát hành
trước 7.3. Lưu ý rằng liên kết thả tự động này sẽ không
xảy ra cho một chuỗi được tạo bằng cách tải lại một bãi rác từ một
Cơ sở dữ cách đọc kèo bóng đá trước 7.3; Tệp kết xuất không chứa
thông tin cần thiết để thiết lập liên kết phụ thuộc.)
Hơn nữa, sự phụ thuộc này giữa trình tự và cột là
chỉ làm chosê -riCột chính;
Nếu bất kỳ cột nào khác tham chiếu chuỗi (có lẽ bằng cách
gọi thủ côngNextVal
Hàm), chúng sẽ bị phá vỡ nếu trình tự bị xóa.
Sử dụng Asê -richuỗi của cột trong
Một thời trang như vậy được coi là hình thức xấu; Nếu bạn muốn cho ăn
một số cột từ cùng một trình tạo chuỗi, tạo
trình tự như một đối tượng độc lập.