- สร้างตารางพร้อมกำหนดค่า auto id
- สร้างตารางพร้อมกำหนดค่า ENUM
- สร้างตารางพร้อมกำหนดค่า Default
- เพิ่มคอลัมน์ DATE และ DATETIME
- แก้ไขขนาดของคอลัมน์
1.สร้างตารางพร้อมกำหนดค่า auto id
create table tbtest ( id SERIAL PRIMARY KEY, firstname VARCHAR(50) NOT NULL, username CHAR(14) NOT NULL, num INT, age INTEGER, amount DECIMAL(15,5), url LVARCHAR(500) );
SERIAL ใช้กำหนดให้เป็น sequential integers
คอลัมน์ id เป็นค่า auto increment
คอลัมน์ num และ age เป็นข้อมูลชนิด int และ integer ซึ่งเป็นข้อมูลชนิดเดียวกัน
คอลัมน์ amount เป็นข้อมูลชนิด decimal ที่มีทศนิยม 5 ตำแหน่ง
คอลัมน์ username เป็นข้อมูลชนิด CHAR ขนาด 14 bytes
คอลัมน์ firstname เป็นข้อมูลชนิด VARCHAR ขนาด 50 bytes (varchar จะมีขนาดได้ไม่เกิน 255 bytes)
คอลัมน์ url เป็นข้อมูลชนิด LVARCHAR ขนาด 500 bytes (LVARCHAR จะมีขนาดได้ไม่เกิน 32,739 bytes)
ตัวอย่างการใส่ข้อมูล
insert into tbtest (firstname, username, num, age, amount, url) values ('phaisarn', 'phaisarn', 5, 30, 123.50, 'https://phaisarn.com');
หรือ กำหนด PRIMARY KEY อีกแบบได้ดังนี้
create table tbtest ( id SERIAL NOT NULL, firstname VARCHAR(50) NOT NULL, username CHAR(14) NOT NULL, num INT, age INTEGER, amount DECIMAL(15,5), url LVARCHAR(500), PRIMARY KEY (id) );
2.สร้างตารางพร้อมกำหนดค่า ENUM
create table tbtest ( id SERIAL NOT NULL, firstname VARCHAR(50) NOT NULL, username CHAR(14) NOT NULL, gender VARCHAR(6) NOT NULL, check (gender IN ('MALE' ,'FEMALE' ,'OTHER' )), PRIMARY KEY (id) );
คอลัมน์ gender มีค่าได้เป็น MALE, FEMALE หรือ OTHER
ตัวอย่างการใส่ข้อมูล
insert into tbtest (firstname, username, gender) values ('phaisarn', 'phaisarn', 'MALE' );
3.สร้างตารางพร้อมกำหนดค่า Default
create table tbtest ( id SERIAL PRIMARY KEY, firstname varchar(50) NOT NULL, active Boolean DEFAULT 'f', timestamp DATETIME YEAR TO FRACTION(5) DEFAULT SYSDATE YEAR TO FRACTION(5) );
บรรทัดที่ 6 : ดึงค่าจาก SYSDATE
มาเป็นค่า default
DATETIME YEAR TO FRACTION(5)
ก็คือ TIMESTAMP
นั่นเอง
ตัวอย่างการใส่ข้อมูล
insert into tbtest (firstname) values ('phaisarn' );
ถ้าจะกำหนดค่าให้ Boolean ใช้ ‘f’ หรือ ‘t’ เช่น
insert into tbtest (firstname, active) values ('jack', 't' );
การค้นหาค่าจาก Boolean ใช้ ‘f’ หรือ ‘t’
select * from tbtest where active = 't'
4.เพิ่มคอลัมน์ DATE และ DATETIME
เพิ่มคอลัมน์ DATE
alter table tbtest add (date1 DATE);
ตัวอย่างการใส่ข้อมูล
insert into tbtest (firstname, date1) values ('phaisarn', '20/02/2019');
สำหรับ DATE
รูปแบบเป็น dd/MM/yyyy
เพิ่มคอลัมน์ DATETIME YEAR TO FRACTION(3)
และ DATETIME YEAR TO FRACTION(5)
alter table tbtest add ( date3 DATETIME YEAR TO FRACTION(3) ); alter table tbtest add ( date5 DATETIME YEAR TO FRACTION(5) );
ตัวอย่างการใส่ข้อมูล
insert into tbtest (firstname, date1, date3, date5) values ('phaisarn', '22/11/2018', '2018-11-22 09:10:30.123', '2018-11-22 09:10:30.12345' );
สำหรับ DATETIME YEAR TO FRACTION(3)
รูปแบบเป็น yyyy-MM-dd HH:mm:ss.fff
สำหรับ DATETIME YEAR TO FRACTION(5)
รูปแบบเป็น yyyy-MM-dd HH:mm:ss.fffff
C# ใช้
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff", new CultureInfo("en-US"));
5.แก้ไขขนาดของคอลัมน์
สร้างตารางทดสอบ
create table tbtest ( id SERIAL PRIMARY KEY, col1 CHAR(14) NOT NULL, timestamp DATETIME YEAR TO FRACTION(5) DEFAULT SYSDATE YEAR TO FRACTION(5) );
ลองใส่ข้อมูล
insert into tbtest (col1) values ('abcdefghijklmnopqrstuvwxyz')
จะเห็นแค่ a-n
ทีนี้ปรับขนาดคอลัมน์จาก 14 เป็น 26
ALTER TABLE tbtest modify col1 char(26)
จะเห็น a-z
ละ