Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Lệnh Oracle CREATE TABLE trong PL / SQL với 10 ví dụ

Trong bài viết này, chúng ta sẽ nói về CREATE TABLE yêu cầu. Nói chính xác hơn, chúng ta sẽ tập trung vào cách tạo một bảng trong Oracle với khóa chính và khóa ngoại, cũng như không phải cột null và cột ngày tháng, hãy xem kỹ cách tạo bảng mới trên cơ sở bảng hiện có. , và hơn thế nữa. Ngoài ra, chúng tôi sẽ xem xét các đặc quyền và lợi ích của việc sử dụng dbForge Studio cho Oracle khi làm việc với các bảng.

Nội dung

  • Cú pháp câu lệnh Oracle CREATE TABLE
    • Ví dụ về CREATE TABLE
  • TẠO BẢNG với ràng buộc KHÓA CHÍNH
  • TẠO BẢNG bằng FOREIGN KEY
  • TẠO BẢNG với cột KHÔNG ĐẦY ĐỦ
  • TẠO BẢNG với cột ngày
  • Oracle thay thế cho SQL CREATE TABLE NẾU KHÔNG TỒN TẠI
  • Tạo một bảng mới từ một bảng khác bằng cách sử dụng TẠO BẢNG NHƯ CHỌN
  • TẠO BẢNG từ CHỌN trong PL / SQL
  • Cách tạo và chèn dữ liệu vào bảng tạm thời
  • TẠO BẢNG trong nháy mắt bằng cách sử dụng dbForge cho Oracle
  • Kết luận

Tạo bảng trong Oracle là một trong những cách sắp xếp dữ liệu, vì vậy điều quan trọng là phải tìm hiểu càng nhiều càng tốt về CREATE TABLE yêu cầu. Có một số cách khác nhau để tạo bảng trong Oracle và chúng tôi sẽ trình bày sâu hơn về chúng trong hướng dẫn này.

Xin lưu ý rằng bạn phải có đặc quyền hệ thống TẠO BẢNG để tạo một bảng mới. Nếu bạn muốn tạo một bảng trong lược đồ của người dùng khác, bạn phải có đặc quyền hệ thống TẠO BẤT KỲ BẢNG nào. Trong trường hợp bạn là chủ sở hữu của bảng, bạn phải có đặc quyền hệ thống KHÔNG GIỚI HẠN TABLESPACE hoặc hạn ngạch cho vùng bảng mà bảng đó chứa.

Ngoài ra, bạn phải có đặc quyền THỰC HIỆN đối tượng hoặc đặc quyền hệ thống THỰC HIỆN BẤT KỲ LOẠI NÀO để tạo bảng đối tượng hoặc bảng quan hệ có chứa cột loại đối tượng nếu bạn muốn có quyền truy cập vào tất cả các loại được tham chiếu bởi bảng.

Các ví dụ trong bài viết này liên quan đến phiên bản Oracle 19c, nhưng các phương pháp đều giống nhau đối với tất cả các phiên bản Oracle đang sử dụng (bao gồm Oracle 10g, 11g, 12c, v.v.).

Cú pháp câu lệnh Oracle CREATE TABLE

Hãy để chúng tôi bắt đầu với những điều cơ bản. Để tạo một bảng mới trong cơ sở dữ liệu Oracle, hãy CREATE TABLE câu lệnh có thể được sử dụng. CREATE TABLE cú pháp trong Oracle như sau:

CREATE TABLE schema_name.table_name (
    column_1 data_type column_constraint,
    column_2 data_type column_constraint,
    ...
    table_constraint
 );

Hãy để chúng tôi xem xét kỹ hơn cú pháp được cung cấp:

  1. schema_name.table_name :tên của bảng và lược đồ mà bảng mới thuộc về.
  2. column_1column_2 data_type column_constraints :trình giữ chỗ cho tên cột.
  3. data_type :NUMBER, VARCHAR, v.v.
  4. column_constraint :KHÔNG ĐỦ, khóa chính, kiểm tra, v.v.
  5. table_constraint :ràng buộc bảng (khóa chính, khóa ngoại, dấu kiểm).

Bạn sẽ tìm thấy Oracle CREATE TABLE thêm ví dụ về cú pháp trong bài viết này.

Lưu ý :
Ngoài việc học cách tạo bảng trong Oracle, bạn cũng có thể muốn đào sâu kiến ​​thức của mình về Câu lệnh Oracle ALTER TABLE .

Ví dụ về TẠO BẢNG

Nó luôn luôn tốt hơn để học hỏi từ thực tế. Do đó, hãy nhìn vào CREATE TABLE của Oracle ví dụ:

Ví dụ sau đây cho thấy cách tạo bảng ba cột có tên nhân viên :

CREATE TABLE employees
( employee_id number(10) NOT NULL,
  employee_name varchar2(50) NOT NULL,
  city varchar2(50)
);
  • Cột 1 có tên là worker_id và có kiểu dữ liệu số (độ dài tối đa 10 chữ số). Nó không được chứa giá trị rỗng.
  • Cột 2 có tên là customer_name và có kiểu dữ liệu varchar2 (độ dài tối đa là 50 ký tự) và cũng không được chứa giá trị rỗng.
  • Cột 3 được đặt tên là thành phố và có kiểu dữ liệu varchar2. Không giống như hai cột trước, cột này có thể chứa các giá trị rỗng.

TẠO BẢNG với ràng buộc KHÓA CHÍNH

Bây giờ, hãy xem cách tạo bảng trong Oracle bằng khóa chính. Để xác định khóa chính cho bảng, bạn có thể sử dụng bảng Nhân viên đã tạo trước đây của chúng tôi , chỉnh sửa Oracle SQL CREATE TABLE và xác định worker_id làm khóa chính:

CREATE TABLE employees
( employee_id number(10) NOT NULL,
  employee_name varchar2(50) NOT NULL,
  city varchar2(50),
  CONSTRAINT employees_pk PRIMARY KEY (employee_id)
);

PRIMARY KEY mệnh đề cho phép chỉ định một cột làm khóa chính. Bạn có thể sử dụng cú pháp khóa chính để xác định từng hàng duy nhất trong bảng. Ngược lại với các cơ sở dữ liệu khác, Oracle cho phép một bảng chỉ bao gồm một khóa chính và mỗi trường của khóa chính phải chứa các giá trị khác với NULL để bảng được coi là hợp lệ. Trong ví dụ trên, chúng tôi xác định worker_id dưới dạng Cột khóa chính .

TẠO BẢNG bằng NGOẠI KHÓA

Hãy xem cú pháp của CREATE TABLE trong Oracle câu lệnh FOREIGN Chìa khóa. Nó có thể được xác định cả ở cấp cột hoặc cấp bảng:

CREATE TABLE table_name
(
col1 datatype [ NULL | NOT NULL ],
col2 datatype [ NULL | NOT NULL ],
...
col_n datatype [ NULL | NOT NULL ]
constraint <name> FOREIGN KEY (col1,col2) REFERENCES table(col1,col2)
)  tablespace <tablepace name>

CREATE TABLE table_name
(
col1 datatype [ NULL | NOT NULL ] constraint <name> primary key
,
col2 datatype [ NULL | NOT NULL ],
...
col_n datatype [ NULL | NOT NULL ]
)  tablespace <tablepace name>;

CREATE TABLE dept
( dept_id number(10) NOT NULL,
dept_name varchar2(50) NOT NULL,
CONSTRAINT dept_pk PRIMARY KEY (dept_id)
);

CREATE TABLE emp
( emp_no number(10) NOT NULL,
emp_name varchar2(50) NOT NULL,
dept_id number(10),
salary number(6),
CONSTRAINT emp_pk PRIMARY KEY (emp_no),
CONSTRAINT dept_fk
FOREIGN KEY (dept_id)
REFERENCES dept(dept_id) );

Trong cú pháp này:

  • Cột 1 được gắn nhãn emp_no , và nó được định dạng là một số, có nghĩa là nó không thể bao gồm bất kỳ giá trị null nào.
  • Cột 2 có tiêu đề là emp_name , được xây dựng dưới dạng varchar2 (50) và không thể bao gồm bất kỳ giá trị null nào.
  • Cột 3 được đặt tên là dept_id và có một kiểu dữ liệu số.
  • Cột 4 được gọi là salary và cũng được định dạng là một cột số.
  • Ràng buộc khóa chính cấp bảng emp_pk được xác định trên khóa (emp_no ).
  • Ràng buộc khóa ngoại cấp bảng dept_fk tham chiếu đến bảng ghi nợ dept_id .

TẠO BẢNG với cột KHÔNG ĐẦY ĐỦ

Nếu bạn muốn chỉ định rằng cột không được để trống và phải chứa một số giá trị, bạn có thể định nghĩa nó là KHÔNG ĐẦY ĐỦ. Tìm cú pháp cho CREATE TABLE lệnh với cột NOT NULL trong Oracle bên dưới:

CREATE TABLE employees_bdays
(
emp_name VARCHAR(30),
bday DATE
emp_id VARCHAR(15) NOT NULL
);

Như bạn có thể thấy, emp_id ngụ ý nhập một giá trị cho mỗi hàng dữ liệu vì nó KHÔNG ĐẦY ĐỦ.

TẠO BẢNG với cột ngày

Nếu bạn cần tạo một bảng với cột ngày trong Oracle, thì cú pháp sau có thể hữu ích:

CREATE TABLE employees_bdays (
bday DATE
);

Để chèn ngày vào cột một cách hiệu quả, bạn cần có đến_ngày hàm chấp nhận một chuỗi ký tự có chứa ngày tháng cũng như một chuỗi ký tự khác hướng dẫn nó cách diễn giải ngày nhận được.

to_date('01 December 2021','DD Month YYYY')
to_date('01/12/2021','DD/MM/YYYY')

Oracle thay thế cho SQL CREATE TABLE NẾU KHÔNG TỒN TẠI

Những người dùng đó, những người đã quen với một SQL CREATE TABLE IF NOT EXISTS , có thể thất vọng vì không có câu lệnh nào như vậy trong Oracle. Nhưng nếu bạn vẫn cần xác định xem một bảng đã tồn tại hay chưa trước khi tạo nó trong Oracle, bạn sẽ tìm thấy các giải pháp thay thế cho vấn đề này bên dưới.

Nếu bạn nhận được lỗi (ORA-00955:tên đã được một đối tượng hiện có sử dụng) trong khi cố gắng tạo một bảng, nó có thể đóng vai trò như một chỉ báo rằng một bảng như vậy đã có ở đó.

Tạo một bảng mới từ một bảng khác bằng cách sử dụng TẠO BẢNG NHƯ CHỌN

Đôi khi, bạn cần sao chép dữ liệu từ một bảng và chèn nó vào một bảng khác. Việc tạo một bảng giống như một bảng khác trong Oracle khá dễ dàng, ngoài ra nó còn rất hữu ích. Bạn tiết kiệm thời gian và công sức của mình nếu bạn muốn tạo một bảng với cấu trúc tương tự. Nó cũng đơn giản hóa quá trình thử nghiệm.

Để xem cách tạo bảng từ một bảng khác trong Oracle, hãy xem đoạn mã bên dưới:

CREATE TABLE table_name AS (
SELECT select_query
);

Nó còn được gọi là TẠO BẢNG NHƯ CHỌN (CTAS).

Bạn có thể nhập tên_bảng cho bảng mới của bạn hoặc sử dụng SELECT truy vấn để sao chép nó. Ngoài ra, bạn có thể nhập SELECT * FROM old_table nếu bạn cần sao chép tất cả dữ liệu vào bảng mới. Nếu bạn cần hạn chế các giá trị được sao chép qua, WHERE điều khoản sẽ hữu ích cho bạn.

TẠO BẢNG từ CHỌN trong PL / SQL

Trong Oracle, bạn cũng có thể tạo một bảng từ một bảng khác bằng cách nhập SELECT câu lệnh ở cuối CREATE TABLE tuyên bố. Trong trường hợp này, tất cả các bản ghi từ bảng cũ sẽ được sao chép sang bảng mới. Cú pháp của Oracle CREATE TABLE từ SELECT như sau:

CREATE TABLE new_table
  AS (SELECT * FROM old_table);

Như bạn có thể thấy, tạo bảng PL / SQL từ SELECT lệnh rất hữu ích. Lưu ý rằng bạn cũng có thể tạo một bảng tạm thời từ SELECT .

Cách tạo và chèn dữ liệu vào bảng tạm thời

Các bảng tạm thời được sử dụng trong Oracle để lưu trữ dữ liệu thuộc về một phiên hoặc một giao dịch.

Bảng tạm thời ORACLE là một đối tượng DDL có tất cả các hạn chế.

Vậy làm thế nào để tạo một bảng tạm thời trong Oracle? Bạn có thể sử dụng câu lệnh CREATE GLOBAL TEMPORARY TABLE để tạo một bảng tạm thời. Để xác định xem dữ liệu trong bảng là dành riêng cho giao dịch (mặc định) hay dành riêng cho phiên, hãy sử dụng mệnh đề ON COMMIT.

Cú pháp cho dữ liệu giao dịch cụ thể như sau:

CREATE GLOBAL TEMPORARY TABLE admin_work_area
        (startdate DATE,
         enddate DATE,
         operation CHAR(20))
      ON COMMIT DELETE ROWS;

TẠO BẢNG trong nháy mắt bằng cách sử dụng dbForge cho Oracle

Thời gian luôn là một trong những nguồn tài nguyên quý giá nhất ngoài kia. Do đó, bạn có thể thấy việc sử dụng một IDE thích hợp sẽ hữu ích trong việc tiết kiệm thời gian của mình. Một trong những giải pháp tốt nhất là dbForge Studio cho Oracle. Nó là một công cụ phổ quát có thể được sử dụng để phát triển, quản trị và quản lý cơ sở dữ liệu Oracle. Ứng dụng khách GUI hiệu quả này rất phù hợp cho các DBA, nhà phát triển cơ sở dữ liệu, kỹ sư phần mềm và nhà phân tích. dbForge Studio cho Oracle cho phép đồng bộ hóa dữ liệu giữa một số máy chủ Oracle và tạo điều kiện tự động hóa quy trình phát triển cơ sở dữ liệu.

Khi mở IDE lần đầu tiên, bạn sẽ thấy Thuộc tính kết nối cơ sở dữ liệu cửa sổ. Để mở nó theo cách thủ công, hãy chọn Cơ sở dữ liệu và nhấp vào Kết nối mới .

Sau đó, điền vào các trường tương ứng và nhấn Kiểm tra kết nối .

Nếu mọi thứ được định cấu hình đúng, bạn sẽ thấy thông báo Đã kết nối thành công nó sẽ trông giống như thế này:

Sau khi kết nối với máy chủ Oracle của bạn, hãy chọn người dùng bạn muốn tạo bảng mới. Bài đăng trên blog gần đây của chúng tôi về cách tạo người dùng mới trong Oracle có thể hữu ích ở bước này.

Bước đầu tiên để tạo một bảng mới là nhấp chuột phải vào lược đồ được yêu cầu. Trỏ đến Đối tượng mới và nhấp vào tùy chọn đầu tiên: Bảng .

1. Trong Tên hộp văn bản của Trình chỉnh sửa bảng , nhập tên bảng. Trong ví dụ dưới đây, chúng tôi đang tạo một bảng có tiêu đề nhân viên .

2. Trong lưới bên dưới, hãy nhập tên cho các cột trong tương lai, chọn kiểu dữ liệu và chúng có phải là KHÔNG ĐẦY ĐỦ hay không.

3. Thuộc tính cột sẽ được hiển thị ở phía bên phải của Trình chỉnh sửa bảng .

4. Bạn sẽ thấy rằng tất cả các tác vụ bạn thực hiện trong Trình chỉnh sửa bảng , được phản ánh trong truy vấn SQL ở cuối cửa sổ.

Sau khi các thuộc tính của bảng được định cấu hình, hãy nhấp vào Áp dụng thay đổi và thế là xong!

Kết luận

Tạo bảng là một trong những tác vụ phổ biến nhất khi làm việc với cơ sở dữ liệu Oracle vì nó giúp tổ chức dữ liệu. Trong hướng dẫn của chúng tôi, chúng tôi đã đưa ra hướng dẫn chi tiết về cách tạo bảng trong Oracle bằng 10 cách khác nhau. Bạn có thể sử dụng câu lệnh Oracle SQL CREATE TABLE và thực hiện truy vấn theo cách thủ công hoặc sử dụng IDE thích hợp để tự động hóa quy trình. Trong trường hợp này, dbForge Studio cho Oracle là lựa chọn tốt nhất.

Liên kết hữu ích

  • Tạo Cơ sở dữ liệu trong Oracle
  • Đổi tên bảng trong Oracle
  • Định dạng PL / SQL

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Không thể định vị Oracle.DataAccess.dll mặc dù nó tồn tại

  2. Định cấu hình Tích hợp dữ liệu Pentaho để sử dụng Oracle Wallet cho Oracle Cloud

  3. Cách kiểm tra định dạng ngày của phiên Oracle của bạn

  4. Cách tốt nhất để rút ngắn chuỗi UTF8 dựa trên độ dài byte

  5. Câu lệnh INSERT trong Oracle