Thứ Hai, 24 tháng 7, 2023

Lệnh tạo bảng trong Oracle - Create Table

Trong Oracle, để tạo một table mới thì bạn có thể sử dụng lệnh CREATE TABLE và phải chạy nó trong một database cụ thể.

Chúng ta có hai thành phần quan trọng khi tạo table đó là tên của table và các fields sẽ có trong table. Mỗi field sẽ có tên, loại dữ liệu, giới hạn dữ liệu và các thuộc tính bổ sung như: khóa ngoại, khóa chính, giá trị mặc định, tăng tự động ...

Mục lục

  • 1. Lệnh Create Table
  • 2. Thêm khóa chính vào table
  • 3. Lệnh Create Table As
  • 4. Lời kết

1. Lệnh Create Table

Sau đây là cú pháp lệnh tạo bảng:

Create Table
1
2
3
4
5
6
7
CREATE TABLE table_name 
(  
  column1 datatype [ NULL | NOT NULL ], 
  column2 datatype [ NULL | NOT NULL ], 
  ... 
  column_n datatype [ NULL | NOT NULL
);

Trong đó:

  • table_name: là tên của table, nó phải là duy nhất trong một database, nghĩa là không được trùng tên table
  • column1, column2, ... column n: Là các field của table, mỗi field sẽ có các thông tin bổ sung khác như kiểu dữ liệu, giá trị dữ liệu, giá trị mặc định ... và NULL hoặc NOT NULL.

Sau đây là một ví dụ, mình sẽ tạo bảng customers.

1
2
3
4
5
CREATE TABLE customers 
( customer_id number(10) NOT NULL
  customer_name varchar2(50) NOT NULL
  city varchar2(50) 
);

Trong bảng này chứa ba cột như sau:

  • customer_id: Mã số của khách hàng, đây sẽ là khóa chính, kiểu dữ liệu của nó là number có chiều dài tối đa 10 ký tự, và không được NULL, nghĩa là phải nhập dữ liệu lúc thêm.
  • customer_name: tên của khách hàng, kiểu dữ liệu của nó là varchar2 (chuỗi) có chiều dài tối đa là 50 ký tự, có thẻ NULL
  • city: Tên thành phố mà nhân viên đang ở, đây là kiểu varchar2 (chuỗi) có chiều dài tối đa là 50 ký tự, không được NULL.

2. Thêm khóa chính vào table

Nếu bạn muốn bổ sung khóa chính ngay trong lúc tạo bảng thì hãy sử dụng lệnh CONSTRAINT.

Như ở ví dụ trên mình sẽ tạo khóa chính như sau:

1
2
3
4
5
6
CREATE TABLE customers 
( customer_id number(10) NOT NULL
  customer_name varchar2(50) NOT NULL
  city varchar2(50), 
  CONSTRAINT customers_pk PRIMARY KEY (customer_id) 
);

Tới đây thì bạn sẽ có thắc mắc khóa chính là gì phải không nào? Mình sẽ giải thích sơ lược như sau: Khóa chính là những field có dữ liệu không được trùng, nó được dùng để phân biệt gữa các record trong bảng. Ví dụ như khi bạn đi học sẽ có mã sinh viên, mỗi sinh viên sẽ có một mã duy nhất. Hoặc chứng minh nhân dân hay thẻ căn cước của bạn cũng là duy nhất.

3. Lệnh Create Table As

Ngoài cách tạo bảng trên thì bạn còn một cách khác đó là tạo bảng từ một lệnh SELECT khác, nó sẽ thực hiện copy tất cả columns và dữ liệu từ lênh SELECT vào bảng mới.

Cú pháp như sau:

1
2
CREATE TABLE new_table 
AS (SELECT * FROM old_table);

Ví dụ: Hãy tạo một bảng newcustomers từ bảng customers 

1
2
CREATE TABLE newcustomers 
AS (SELECT *   FROM customers  WHERE customer_id < 5000);

Đương nhiên lệnh này sẽ chạy chậm hơn vì phải mất thời gian thực hiện lệnh select rồi mới tạo bảng.

Ví dụ: hãy Tạo bảng newcustomers từ bảng customer và chỉ lấy 2 columns customer_idcustomer_name.

1
2
3
4
CREATE TABLE newcustomers2 
AS (SELECT customer_id, customer_name 
    FROM customers 
    WHERE customer_id < 5000);

Ngoài ra bạn cũng có thể sử dụng lệnh JOIN trong lệnh select để ghép nhiều bảng với nhau, điều này sẽ giúp bạn tạo bảng từ nhiều cột từ nhiều table khác nhau.

4. Lời kết

Trên là tất cả những kiến thức căn bản về lệnh Create Table trong Oracle, bạn hãy cố gắng hiểu vì đó là nền tảng để bạn học những lệnh nâng cao hơn. Ngoài ra cần phải chú ý tới lệnh create table as, đây là lệnh rất ít khi sử dụng nên rất dễ quên. Bài tiếp theo mình sẽ nói tới lệnh alter table.

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master