Khi bạn tạo bảng Oracle, bạn phải chỉ định kiểu dữ liệu cho mỗi cột, kiểu dữ liệu này được liên kết với định dạng lưu trữ cụ thể, các ràng buộc và phạm vi giá trị hợp lệ. Kiến thức về kiểu dữ liệu là cần thiết trước khi tạo bảng. Ở đây trong bài viết này, chúng ta sẽ thấy các kiểu dữ liệu oracle quan trọng mà bạn sẽ sử dụng trong PLSQL, SQL khá thường xuyên khi làm việc với cơ sở dữ liệu Oracle
Oracle cung cấp các danh mục kiểu dữ liệu tích hợp sau:
Kiểu dữ liệu ký tự
Kiểu dữ liệu số
DATE Datatype
LOB Datatypes
Kiểu dữ liệu RAW và LONG RAW
ROWID và UROWID Datatypes
Kiểu dữ liệu ký tự
-CHAR, NCHAR, VARCHAR2 &NVARCHAR2.
Kiểu dữ liệu CHAR là một chuỗi chữ và số có độ dài cố định có độ dài tối đa tính bằng byte.
-Khi tạo kiểu dữ liệu CHAR, cơ sở dữ liệu sẽ bảo toàn không gian cho dữ liệu đến và nếu dữ liệu ngắn hơn kích thước tối đa, nó sẽ được đệm khoảng cách ở bên phải
Ví dụ:nếu bạn khai báo một biến / cột kiểu dữ liệu CHAR (5), thì nó sẽ luôn chiếm 5 byte bất kể bạn đang lưu trữ 1 ký tự hay 5 ký tự trong biến hoặc cột này. Và trong ví dụ này, vì chúng tôi đã khai báo biến / cột này là CHAR (5), vì vậy chúng tôi có thể lưu trữ tối đa 5 ký tự trong cột này.
-Kiểu dữ liệu VARCHAR2 là một chuỗi chữ và số có độ dài thay đổi, có độ dài tối đa tính bằng byte. Nó có thể lưu trữ lên đến 4000 byte.
VARCHAR2 là kiểu dữ liệu có độ dài thay đổi. Ví dụ:nếu bạn khai báo một biến / cột kiểu dữ liệu VARCHAR 2 (10), nó sẽ lấy số byte bằng số ký tự được lưu trong cột này. Vì vậy, trong biến / cột này, nếu bạn chỉ lưu trữ một ký tự, thì nó sẽ chỉ chiếm một byte và nếu chúng ta lưu trữ 10 ký tự, thì nó sẽ chiếm 10 byte. Và trong ví dụ này, vì chúng ta đã khai báo biến / cột này là VARCHAR2 (10), vì vậy chúng ta có thể lưu trữ tối đa 10 ký tự trong cột này. Không gian được sử dụng sẽ tùy thuộc vào các giá trị trong cột và sẽ không lãng phí dung lượng.
Ngoài ra, tôi muốn nhấn mạnh ở đây một điều rằng khi chúng ta cho VARCHAR2 (10) ở đây là 10 là số byte không phải ký tự. Số ký tự và byte tương tự khi ký tự ASCII có liên quan, nhưng phương trình được thay đổi, chúng tôi bắt đầu sử dụng ký tự khác với ASCII
The length semantics of character datatypes can be measured in bytes or characters. Byte semantics treat strings as a sequence of bytes. This is the default for character datatypes. Character semantics treat strings as a sequence of characters. A character is technically a codepoint of the database character set. So VARCHAR (10 Byte) has length measured in byte. VARCHAR (10 CHAR) has length measured in character. The default for VARCHAR is based on NLS_LENGTH_SEMANTICS parameter set in the database. By default this is set to Byte,so when we use VARCHAR(10) , it uses length measured in byte
-Kiểu dữ liệu VARCHAR đồng nghĩa với kiểu dữ liệu VARCHAR2. Để tránh những thay đổi có thể xảy ra trong hành vi, hãy luôn sử dụng kiểu dữ liệu VARCHAR2 để lưu trữ các chuỗi ký tự có độ dài thay đổi.
-NCHAR và NVARCHAR2 là kiểu dữ liệu Unicode lưu trữ dữ liệu ký tự Unicode. Bộ ký tự của kiểu dữ liệu NCHAR và NVARCHAR2 chỉ có thể là AL16UTF16 hoặc UTF8 và được chỉ định tại thời điểm tạo cơ sở dữ liệu làm bộ ký tự quốc gia. AL16UTF16 và UTF8 đều là mã hóa Unicode.
Example create table test ( First_name char(6), Last_name varchar2(10));
Kiểu dữ liệu số
-NUMBER hoặc NUMBER (p, s)
-Kiểu dữ liệu NUMBER (p, s) lưu trữ số với độ chính xác và tỷ lệ.
- Kiểu dữ liệu NUMBER lưu trữ độ chính xác lên đến 38 chữ số
-Kiểu dữ liệu số lưu trữ số nguyên âm và số nguyên dương, số dấu phẩy động và số dấu phẩy động
-Khi một cột được xác định là SỐ (6, 2), phạm vi giá trị có thể được lưu trữ từ –9999,99 đến 9999,99. Vì vậy, chúng ta có tổng chữ số là 6 và 4 chữ số trước số thập phân và 2 chữ số sau số thập phân Oracle làm tròn số dấu phẩy động.
Example create table test ( First_name char(6), Last_name varchar2(10) age number; Salary number(10,2) );
Ngày và giờ
–DATE, TIMESTAMP (với múi giờ hoặc múi giờ địa phương),
-Kiểu dữ liệu DATE được sử dụng để lưu trữ thông tin ngày và giờ.
-Kiểu dữ liệu này có một số chức năng cụ thể để thao tác, định dạng và xem dữ liệu của nó.
-Kiểu dữ liệu DATE lưu trữ bảy byte và có thông tin về thế kỷ, năm, tháng, ngày, giờ, phút và giây.-Tham số NLS_DATE_FORMAT có thể được thay đổi để kiểm soát việc xem dữ liệu. Hàm SYSDATE trả về ngày hiện tại
–Cơ sở dữ liệu thần kỳ cũng cung cấp loại dữ liệu DATE nhận biết múi giờ
THỜI GIAN THEO Múi Giờ
Example create table test ( First_name char(6), Last_name varchar2(10) age number, Salary number(10,2), start_date date );
Đối tượng lớn
-BLOB (đối tượng lớn nhị phân) , CLOB (đối tượng lớn ký tự) , NCLOB &BFILE
-Các cột của các kiểu dữ liệu này có thể lưu trữ dữ liệu phi cấu trúc bao gồm văn bản, hình ảnh, video và dữ liệu không gian. -Kiểu dữ liệu CLOB có thể lưu trữ tối đa tám terabyte dữ liệu ký tự bằng cách sử dụng bộ ký tự cơ sở dữ liệu CHAR.
-Kiểu dữ liệu BLOB được sử dụng để lưu trữ các đối tượng lớn nhị phân không có cấu trúc, chẳng hạn như những đối tượng được liên kết với dữ liệu hình ảnh và video trong đó dữ liệu chỉ đơn giản là một luồng giá trị "bit".
-Giá trị kiểu dữ liệu BFILE hoạt động như một bộ định vị tệp hoặc con trỏ đến tệp trên hệ thống tệp của máy chủ. Kích thước tệp tối đa được hỗ trợ là 8 TB đến 128 TB.
Dài
Dữ liệu ký tự có độ dài thay đổi lên đến 2 G
rowid
Hệ thống số cơ sở 64 đại diện cho địa chỉ duy nhất của hàng trong bảng
Hy vọng bạn thích nội dung này về kiểu dữ liệu Oracle
Các bài viết có liên quan
Chỉ mục Oracle
Câu hỏi phỏng vấn Oracle
Hàm ngày trong Oracle
Câu lệnh INSERT trong Oracle
Câu lệnh cập nhật trong oracle
cách kiểm tra tất cả các ràng buộc trên một bảng trong oracle
https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832