สมาชิกกลุ่ม
1.นพรัตน์ ไพโรจน์พัฒนกุล 5601012620072
2.ชนานันน์ พงศ์กีรติกานต์ 5601012630043
3.นสิทธิ์ จูรอด 5601012630175
เนื้อหาของงาน : https://drive.google.com/file/d/0BzEWigZH50SVdmV0ajAtdHQzREE/view
Database System
วันจันทร์ที่ 23 พฤษภาคม พ.ศ. 2559
วันเสาร์ที่ 14 พฤษภาคม พ.ศ. 2559
วันอังคารที่ 12 เมษายน พ.ศ. 2559
PostgreSQL
PostgreSQL คืออะไร
PostgreSQL เป็นระบบจัดการฐานข้อมูลแบบ ORDBMS มีความสามารถ ACID และสนับสนุน SQL92 และ SQL99 โดยมีชนิดข้อมูลหลายประเภทรวมถึงมีชนิดข้อมูลแบบ user define ซึ่งผู้ใช้กำหนดขึ้น ทำงานในหลายแพลทฟอร์มได้แก่ Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), และ Windows เป็นซอฟต์แวร์ใช้ได้ฟรีโดยมีลิขสิทธิ์แบบ BSD ซึ่งหมายถึงผู้ใช้สามารถนำไปใช้งานได้ฟรี
ขั้นตอนการลงโปรแกรมใน Ubuntu 14.04
เปิดหน้าต่าง terminal ขึ้นมาพิมพ์คำสั่ง
$ sudo apt-get update
$ sudo apt-get install postgresql postgresql-contrib
การเข้าใช้งาน
พิมพ์คำสั่งเพื่อ login
$ sudo -i -u postgres
หลังจากนั้นเข้าใช้งานโดยพิมพ์
$ psql
หากต้องการออกจากโปรแกรมให้พิมพ์
# \q
การสร้าง database
หลังจาก login แล้วเราสามารถสร้าง database ได้โดย
$ createdb ชื่อdatabase
และเลือก database นั้นๆโดยพิมพ์
$ psql -d ชื่อdatabase
หากต้องการดูว่ามี database ใดบ้างให้พิมพ์
# \l
หากต้องการออกให้พิมพ์ \q
ส่วนวิธีการสร้างตารางนั้นเหมือน mysql ทุกอย่าง
ตัวอย่างคำสั่งการสร้างตาราง
create table instructor(id int,
name varchar(100),
salary int,
inst_dept varchar(100),
primary key(id),
foreign key(inst_dept)
references department(dept_name)
);
อ้างอิง http://admin.wikidot.com/pgsqlintro
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-14-04
PostgreSQL เป็นระบบจัดการฐานข้อมูลแบบ ORDBMS มีความสามารถ ACID และสนับสนุน SQL92 และ SQL99 โดยมีชนิดข้อมูลหลายประเภทรวมถึงมีชนิดข้อมูลแบบ user define ซึ่งผู้ใช้กำหนดขึ้น ทำงานในหลายแพลทฟอร์มได้แก่ Linux, UNIX (AIX, BSD, HP-UX, SGI IRIX, Mac OS X, Solaris, Tru64), และ Windows เป็นซอฟต์แวร์ใช้ได้ฟรีโดยมีลิขสิทธิ์แบบ BSD ซึ่งหมายถึงผู้ใช้สามารถนำไปใช้งานได้ฟรี
ขั้นตอนการลงโปรแกรมใน Ubuntu 14.04
เปิดหน้าต่าง terminal ขึ้นมาพิมพ์คำสั่ง
$ sudo apt-get update
$ sudo apt-get install postgresql postgresql-contrib
การเข้าใช้งาน
พิมพ์คำสั่งเพื่อ login
$ sudo -i -u postgres
หลังจากนั้นเข้าใช้งานโดยพิมพ์
$ psql
รูปภาพการเรียกใช้งานโปรแกรม Postgres |
# \q
การสร้าง database
หลังจาก login แล้วเราสามารถสร้าง database ได้โดย
$ createdb ชื่อdatabase
และเลือก database นั้นๆโดยพิมพ์
$ psql -d ชื่อdatabase
รูปภาพการเข้าใช้งาน database |
# \l
รูปภาพแสดง database ที่มีภายในเครื่อง |
ส่วนวิธีการสร้างตารางนั้นเหมือน mysql ทุกอย่าง
ตัวอย่างคำสั่งการสร้างตาราง
create table instructor(id int,
name varchar(100),
salary int,
inst_dept varchar(100),
primary key(id),
foreign key(inst_dept)
references department(dept_name)
);
อ้างอิง http://admin.wikidot.com/pgsqlintro
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-14-04
วันอาทิตย์ที่ 27 มีนาคม พ.ศ. 2559
Assignment 1 : University_enterprise
สมาชิกกลุ่ม
1.นพรัตน์ ไพโรจน์พัฒนกุล 5601012620072
2.ชนานันน์ พงศ์กีรติกานต์ 5601012630043
3.นสิทธิ์ จูรอด 5601012630175
เนื้อหาของงาน : https://drive.google.com/file/d/0BzEWigZH50SVU05JcXJ1c2YyWTA/view
1.นพรัตน์ ไพโรจน์พัฒนกุล 5601012620072
2.ชนานันน์ พงศ์กีรติกานต์ 5601012630043
3.นสิทธิ์ จูรอด 5601012630175
เนื้อหาของงาน : https://drive.google.com/file/d/0BzEWigZH50SVU05JcXJ1c2YyWTA/view
วันจันทร์ที่ 8 กุมภาพันธ์ พ.ศ. 2559
Relational Algebra Operations (Week4)
Relational Algebra โดยพื้นฐานแล้วมีอยู่ 6 คำสั่งได้แก่
- SELECT
- PROJECT
- UNION
- SET DIFFERENCE
- CARTESIAN PRODUCT
- RENAME
รูปภาพแสดงการสร้างตาราง |
รูปภาพแสดงการใส่ข้อมูลลงไป |
จากนั้นใส่ข้อมูลรายชื่อหนังสือ ผู้แต่ง และราคาลงไป
Select แทนด้วย สัญลักษณ์ σ ใช้สำหรับการเลือกแถว(Tuple)ที่ต้องการ เช่น
σauthor = J.R.R. Tolkien(fantasy_book_store_b)
σauthor = J.R.R. Tolkien(fantasy_book_store_b)
ภาพแสดงผลลัพธ์ที่ได้ |
จากรูปแสดงคำสั่งของ Mysql ที่เทียบเคียงกับ Relational Algebra Operations
Project แทนด้วยสัญลักษณ์ ∏ ใช้สำหรับการเลือก Column ที่เราสนใจ เช่น
∏name,price$(fantasy_book_store_a)
Project แทนด้วยสัญลักษณ์ ∏ ใช้สำหรับการเลือก Column ที่เราสนใจ เช่น
∏name,price$(fantasy_book_store_a)
ภาพแสดงผลลัพธ์ที่ได้ |
จากรูปแสดงคำสั่งของ Mysql ที่เทียบเคียงกับ Relational Algebra Operations
Union แทนด้วยสัญลักษณ์ U ใช้สำหรับการเลือกข้อมูลของทั้ง 2 ตารางทั้งหมดโดยตัวที่มีซ้ำกันนั้นจะแสดงค่าออกมาแค่ครั้งเดียว เช่น
∏name(fantasy_book_store_a) U ∏name(fantasy_book_store_b)
∏name(fantasy_book_store_a) U ∏name(fantasy_book_store_b)
ภาพแสดงผลลัพธ์ที่ได้ |
จากรูปจะเห็นว่า The Hobbit ที่มีอยู่ทั้ง 2 ร้านแต่จะแสดงเพียงแค่ครั้งเดียวเพราะเนื่องจากชื่อซ้ำกัน
Rename แทนด้วยสัญลักษณ์ ρ ใช้สำหรับเปลี่ยนชื่อตาราง หรือ attribute ในตาราง เช่น
ρsa(fantasy_book_store_a) คือเปลี่ยนชื่อตาราง fantasy_book_store_a เป็น sa
ρ(name_a,author,price_a)(fantasy_book_store_a) คือเปลี่ยนชื่อ attribute ในตาราง fantasy_book_store_a
Set Difference แทนด้วยสัญลักษณ์ - ใช้สำหรับแสดงค่าในตารางฝั่งเดียวและไม่เอาข้อมูลที่มีความเกี่ยวข้องกัน เช่น
∏name_a(sa) - ∏name_b(sb)
ρsa(fantasy_book_store_a) คือเปลี่ยนชื่อตาราง fantasy_book_store_a เป็น sa
ρ(name_a,author,price_a)(fantasy_book_store_a) คือเปลี่ยนชื่อ attribute ในตาราง fantasy_book_store_a
Set Difference แทนด้วยสัญลักษณ์ - ใช้สำหรับแสดงค่าในตารางฝั่งเดียวและไม่เอาข้อมูลที่มีความเกี่ยวข้องกัน เช่น
∏name_a(sa) - ∏name_b(sb)
ภาพแสดงการใช้คำสั่ง set difference |
ภาพแสดงผลลัพธ์ที่ได้ |
จากรูปแสดงคำสั่งของ Mysql ที่เทียบเคียงกับ Relational Algebra Operations
Cartesian Product แทนที่ด้วยสัญลักษณ์ x ใช้สำหรับนำข้อมูลทั้ง 2 ตารางมา cross กันซึ่งค่าที่ได้ออกมาจะเป็นการจับคู่กันทั้ง 2 ตารางซึ่งจะไม่มีประโยชน์อะไร เราจึงต้องใช้การ select และ project เข้ามาช่วย เช่น
∏name_a(σname_a=name_b(sa x sb))
Cartesian Product แทนที่ด้วยสัญลักษณ์ x ใช้สำหรับนำข้อมูลทั้ง 2 ตารางมา cross กันซึ่งค่าที่ได้ออกมาจะเป็นการจับคู่กันทั้ง 2 ตารางซึ่งจะไม่มีประโยชน์อะไร เราจึงต้องใช้การ select และ project เข้ามาช่วย เช่น
∏name_a(σname_a=name_b(sa x sb))
ภาพแสดงผลลัพธ์ที่ได้ |
จากรูปแสดงคำสั่งของ Mysql ที่เทียบเคียงกับ Relational Algebra Operations
What is an inner join? outer join?
Ans Inner join นั้นคือการนำค่าระหว่าง set หรือข้อมูลที่มีการซ้อนทับกันหรือเหมือนกัน ส่วน Outer join นั้นคือการเอาค่าทั้งหมดของระหว่าง set นั้นเอง และยังมี join ประเภทอื่นๆอีกมากมาย
What is a division operation?
Ans การทำ division operation คือการนำเอาค่าของ Attribute ตารางที่เป็น Divisor(S) ไปเทียบกับค่า Attributeในตาราง Dividend(R) เมื่อมีค่าที่เหมือนกันเราจะนำเอาค่านั้นออกมาแสดงเป็นผลลัพธ์ดังตัวอย่างที่เขียนในด้านล่างนี้
กำหนดให้ตาราง R คือ
+--------+-------+
| A | B |
+--------+-------+
| a | 1 |
| b | 2 |
| a | 2 |
| p | 3 |
| p | 4 |
+--------+-------+
กำหนดให้ตาราง S คือ
+------+
| B |
+------+
| 2 |
| 3 |
+------+
R/S จะได้ค่า
+------+
| A |
+------+
| b |
| a |
| p |
+------+
จากตัวอย่างที่ได้เห็นไปเราสามารถนำ division operation ไปใช้ต่อยอดในการหาข้อมูลจากฐานข้อมูลที่มีขนาดใหญ่ได้ เช่น เราต้องการอยากรู้ว่า ผู้แต่งหนังสือคนนี้ แต่งหนังสือเรื่องอื่นอะไรบ้าง เราก็นำชื่อของผู้แต่ง (Divisor) ไปหารกับ ฐานข้อมูลที่เราเก็บรายชื่อหนังสือ (Dividend) ก็จะได้ผลลัพธ์รายชื่อหนังสือที่ผู้แต่งคนนี้เคยแต่งไว้ออกมา
อ้างอิง
http://www.srisangworn.go.th/home/databaselearnx/ms2t2-2.htm
http://www.go4expert.com/articles/relational-algebra-operations-sql-t21166/
http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins
http://www.techonthenet.com/mysql/tables/alter_table.php
Ans Inner join นั้นคือการนำค่าระหว่าง set หรือข้อมูลที่มีการซ้อนทับกันหรือเหมือนกัน ส่วน Outer join นั้นคือการเอาค่าทั้งหมดของระหว่าง set นั้นเอง และยังมี join ประเภทอื่นๆอีกมากมาย
รูปภาพแสดงการ join ต่างๆ |
What is a division operation?
Ans การทำ division operation คือการนำเอาค่าของ Attribute ตารางที่เป็น Divisor(S) ไปเทียบกับค่า Attributeในตาราง Dividend(R) เมื่อมีค่าที่เหมือนกันเราจะนำเอาค่านั้นออกมาแสดงเป็นผลลัพธ์ดังตัวอย่างที่เขียนในด้านล่างนี้
กำหนดให้ตาราง R คือ
+--------+-------+
| A | B |
+--------+-------+
| a | 1 |
| b | 2 |
| a | 2 |
| p | 3 |
| p | 4 |
+--------+-------+
กำหนดให้ตาราง S คือ
+------+
| B |
+------+
| 2 |
| 3 |
+------+
R/S จะได้ค่า
+------+
| A |
+------+
| b |
| a |
| p |
+------+
จากตัวอย่างที่ได้เห็นไปเราสามารถนำ division operation ไปใช้ต่อยอดในการหาข้อมูลจากฐานข้อมูลที่มีขนาดใหญ่ได้ เช่น เราต้องการอยากรู้ว่า ผู้แต่งหนังสือคนนี้ แต่งหนังสือเรื่องอื่นอะไรบ้าง เราก็นำชื่อของผู้แต่ง (Divisor) ไปหารกับ ฐานข้อมูลที่เราเก็บรายชื่อหนังสือ (Dividend) ก็จะได้ผลลัพธ์รายชื่อหนังสือที่ผู้แต่งคนนี้เคยแต่งไว้ออกมา
อ้างอิง
http://www.srisangworn.go.th/home/databaselearnx/ms2t2-2.htm
http://www.go4expert.com/articles/relational-algebra-operations-sql-t21166/
http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins
http://www.techonthenet.com/mysql/tables/alter_table.php
วันอาทิตย์ที่ 31 มกราคม พ.ศ. 2559
Constraints (Week 3)
What constraints does your selected DBMS support?
Constraints คือ ข้อบังคับหรือเงื่อนไขในการอนุญาติให้เก็บเฉพาะข้อมูลที่เหมาะสมลงในฐานข้อมูลเพื่อให้การเลือกข้อมูลจากฐานข้อมูลเป็นไปอย่างถูกต้อง
- NOT NULL
- UNIQUE
- PRIMARY KEY
- FOREIGN KEY
- CHECK
- DEFAULT
How to specify them?
วิธีใช้งาน
CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);
- NOT NULL - บ่งบอกว่าใน column จะไม่สามารถเก็บค่า NULL ไว้
- UNIQUE - กำหนดให้แต่ละ row ของ column จะเป็นค่าที่ไม่ซ้ำกัน
- PRIMARY KEY - เป็นการกำหนดให้ column นั้นไม่เป็นค่า NULL และมีค่าที่ไม่ซ้ำกัน ช่วยในการการค้นหาและบันทึกข้อมูุลในตารางได้ง่ายและรวดเร็ว
- FOREIGN KEY - เป็นการกำหนดค่าในตารางหนึ่งอ้างอิงไปยังค่าตารางอื่นมีความสัมพันธ์กัน
- CHECK - เช็คค่าใน column ว่าเป็นไปตามที่กำหนดไว้
- DEFAULT - ระบุค่าเริ่มต้นใน column
ทดลอง
NOT NULL , CHECK , DEFAULT
ทำการสร้างตารางใหม่ขึ้นมา โดยกำหนดให้ name และ lastname ไม่เป็น NULL และกำหนด check ให้ age ต้องมีค่ามากกว่า 16 และตั้งค่า default ให้ married ให้เป็น N
สังเกตว่าถ้าเราไม่พิม name หรือ lastname จะทำให้ค่าเริ่มต้นเป็น default ซึ่งก็คือ NULL ทำให้ไม่สามารถใส่ข้อมูลได้
ทดลองใส่ค่าปกติลงไปในตาราง
ทดลองไม่ใส่ค่า married ลงไป ทำให้ข้อมูลเป็นค่า Default ซึ่งจะกลายเป็น N ตรงช่อง married ตามที่เราได้กำหนดไว้ตอนแรก
ปัญหาที่พบ
ทดลองใส่ค่า age น้อยกว่า 16 ตามที่ได้เขียน Check แต่ก็ยังสามารถเก็บข้อมูลได้ไม่เป็นไปตามที่คิดไว้
UNIQUE , PRIMARY KEY
ทำการสร้าง Table ใหม่ขึ้นมา โดยกำหนดให้ Column employee_id เป็น primary key โดย primary key จะทำให้ Column นั้นเป็น Not NULL เสมอและ phone_number เป็น unique
ทดสอบใส่ค่า name สามารถซ้ำกันได้เพราะไม่ได้กำหนด Constraints ให้เป็น Primary key หรือ Unique ส่วน Column Phone_Number ที่กำหนด Constraints ให้เป็น Unique สามารถใส่ค่า NULL ลงไปได้
FOREIGN KEY
ทำการสร้างตารางขึ้นมาใหม่ โดยสร้างตารางชื่อ product และ orders โดยตาราง orders จะมี foreign key ที่ตัว product_id และชี้ไปยัง id ในตาราง product เพื่อเป็นการอ้างอิงข้อมูล
ทดลองใส่ข้อมูลลงไปทั้งสองตาราง
ถ้าเราใส่ค่า product_id ที่ไม่มีอยู่ในตาราง product ลงไปในตาราง orders จะไม่สามารถใส่ค่าลงไปได้ เนื่องจากเรามีการกำหนดให้มีความสัมพันธ์กันแบบ foreign key
อ้างอิง
http://code.function.in.th/sqlserver/data-type
http://www.w3schools.com/sql/sql_constraints.asp
Constraints คือ ข้อบังคับหรือเงื่อนไขในการอนุญาติให้เก็บเฉพาะข้อมูลที่เหมาะสมลงในฐานข้อมูลเพื่อให้การเลือกข้อมูลจากฐานข้อมูลเป็นไปอย่างถูกต้อง
- NOT NULL
- UNIQUE
- PRIMARY KEY
- FOREIGN KEY
- CHECK
- DEFAULT
How to specify them?
วิธีใช้งาน
CREATE TABLE table_name
(
column_name1 data_type(size) constraint_name,
column_name2 data_type(size) constraint_name,
column_name3 data_type(size) constraint_name,
....
);
- NOT NULL - บ่งบอกว่าใน column จะไม่สามารถเก็บค่า NULL ไว้
- UNIQUE - กำหนดให้แต่ละ row ของ column จะเป็นค่าที่ไม่ซ้ำกัน
- PRIMARY KEY - เป็นการกำหนดให้ column นั้นไม่เป็นค่า NULL และมีค่าที่ไม่ซ้ำกัน ช่วยในการการค้นหาและบันทึกข้อมูุลในตารางได้ง่ายและรวดเร็ว
- FOREIGN KEY - เป็นการกำหนดค่าในตารางหนึ่งอ้างอิงไปยังค่าตารางอื่นมีความสัมพันธ์กัน
- CHECK - เช็คค่าใน column ว่าเป็นไปตามที่กำหนดไว้
- DEFAULT - ระบุค่าเริ่มต้นใน column
ทดลอง
NOT NULL , CHECK , DEFAULT
รูปภาพแสดงการสร้างตารางและรายละเอียด |
ทำการสร้างตารางใหม่ขึ้นมา โดยกำหนดให้ name และ lastname ไม่เป็น NULL และกำหนด check ให้ age ต้องมีค่ามากกว่า 16 และตั้งค่า default ให้ married ให้เป็น N
รูปภาพแสดงการใส่ข้อมูลลงตาราง |
สังเกตว่าถ้าเราไม่พิม name หรือ lastname จะทำให้ค่าเริ่มต้นเป็น default ซึ่งก็คือ NULL ทำให้ไม่สามารถใส่ข้อมูลได้
รูปภาพแสดงการใส่ข้อมูลแบบปกติ |
ทดลองใส่ค่าปกติลงไปในตาราง
รูปภาพแสดงการใส่ข้อมูลโดยไม่ใส่ married |
ทดลองไม่ใส่ค่า married ลงไป ทำให้ข้อมูลเป็นค่า Default ซึ่งจะกลายเป็น N ตรงช่อง married ตามที่เราได้กำหนดไว้ตอนแรก
ปัญหาที่พบ
รูปภาพแสดงการใส่ค่า age น้อยกว่า 16 |
UNIQUE , PRIMARY KEY
รูปภาพแสดงการสร้างตาราง employee |
ทำการสร้าง Table ใหม่ขึ้นมา โดยกำหนดให้ Column employee_id เป็น primary key โดย primary key จะทำให้ Column นั้นเป็น Not NULL เสมอและ phone_number เป็น unique
รูปภาพแสดงการใส่ค่าซ้ำลงไป |
ทดสอบใส่ค่าที่ employee_id เดิมลงไปจะเห็นว่าไม่สามารถเพิ่มข้อมูลได้เพราะ Column employee_id เป็น primary key ต้องการค่าที่ไม่ซ้ำ ส่วนที่ Column phone_number ก็ไม่สามารถใส่ค่าซ้ำได้เช่นกันเพราะเป็น unique
รูปภาพแสดงการใส่ค่าโดยไม่ใส่ Phone_number |
ทดสอบใส่ค่า name สามารถซ้ำกันได้เพราะไม่ได้กำหนด Constraints ให้เป็น Primary key หรือ Unique ส่วน Column Phone_Number ที่กำหนด Constraints ให้เป็น Unique สามารถใส่ค่า NULL ลงไปได้
FOREIGN KEY
ทำการสร้างตารางขึ้นมาใหม่ โดยสร้างตารางชื่อ product และ orders โดยตาราง orders จะมี foreign key ที่ตัว product_id และชี้ไปยัง id ในตาราง product เพื่อเป็นการอ้างอิงข้อมูล
รูปภาพแสดงรายละเอียดตารางทั้ง 2 |
รูปภาพแสดงข้อมูลทั้งที่ใส่ลงไปทั้งสองตาราง |
ทดลองใส่ข้อมูลลงไปทั้งสองตาราง
ทดลองใส่ค่าที่ไม่มีในตาราง product |
ถ้าเราใส่ค่า product_id ที่ไม่มีอยู่ในตาราง product ลงไปในตาราง orders จะไม่สามารถใส่ค่าลงไปได้ เนื่องจากเรามีการกำหนดให้มีความสัมพันธ์กันแบบ foreign key
อ้างอิง
http://code.function.in.th/sqlserver/data-type
http://www.w3schools.com/sql/sql_constraints.asp
วันศุกร์ที่ 22 มกราคม พ.ศ. 2559
SQL Tutorial (Week 2)
SQL Tutorial
ฝึกใช้คำสั่งเบื้องต้นในการทำ database โดยเรียนรู้จากเว็บ http://www.w3schools.com/sql/default.asp
SQL Home
SQLเป็นภาษาพื้นฐานในการเข้าถึงฐานข้อมูล การฝึก SQL ในเว็บ w3schools จะสอนวิธีการใช้ SQL การเข้าถึงและจัดการข้อมูลใน: MySQL, SQL Server, Access, Oracle, Sybase, DB2 และระบบฐานข้อมูลอื่น ๆ
SQL Intro
SQL คืออะไร? SQL เป็นพื้นฐานมาจากโครงสร้างของ Query Language ช่วยให้เข้าถึงและจัดการข้อมูลได้ง่าย และ เป็นมาตรฐาน ANSI (American National Standards Institute)
SQL ทำอะไรได้บ้าง?
1. สามารถสอบถามข้อมูลกับฐานข้อมูล
2. สามารถดึงข้อมูลจากฐานข้อมูล
3. สามารถเพิ่มบันทึกลงฐานข้อมูล
4. สามารถปรับปรุงเปลี่ยนแปลงฐานข้อมูล
5. สามารถลบข้อมูลบนฐานข้อมูล
6. สามารถสร้างฐานข้อมูลใหม่
7. สามารถสร้างตารางใหม่ในฐานข้อมูล
8. สามารถสร้างกระบวนการการจัดเก็บในฐานข้อมูล
9. สามารถสร้างมุมมองในฐานข้อมูล
10. สามารถกำหนดสิทธิ์ในการเข้าใช้ต่างๆ
SQL Syntax
ใน Database Tables ส่วนใหญ่จะเก็บข้อมูลไว้ 1 ตารางหรือมากกว่า 1 ส่วนในรูปด้านล่างจะเป็นตารางของ Customers
SQL Order By
เป็นคำสั่งที่ไว้ใช้เรียงข้อมูล จากน้อยไปมาก และ จากมากไปน้อยโดยใช้คำสั่ง
SELECT column_name, column_name
FROM table_name
ORDER BY column_name ASC|DESC, column_name ASC|DESC;
โดย ASC ย่อมาจาก ascending คือ เรียงจากน้อยไปมาก DESC ย่อมากจาก descending คือ เรียงจากมากไปน้อยแต่ถ้าเราไม่ระบุชนิดของ ORDER BY column_name ASC|DESC ค่าเริ่มต้นที่กำหนดไว้คือ ASC
จากภาพด้านบนเราจะใช้การเรียงข้อมูลทั้ง ASC และ DESC โดยเราจะเรียงชื่อ Country ก่อนจากน้อยไปมาก คือ A ถึง Z และ อันดับต่อมาจะให้เรียง CustomerName จากมากไปน้อย คือ Z มา A
SQL Insert Into
เป็นการเพิ่มข้อมูลเข้าไปในฐานข้อมูลเดิมโดยใช้คำสั่ง
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
โดยเราจะลองใช้คำสั่ง
INSERT INTO Shippers (ShipperName, Phone)
VALUES ('Test','0123456789');
จากรูปแสดงให้เห็นผลลัพธ์จากการลองใช้คำสั่งด้านบน จะเห็นว่ามีการเพิ่มข้อมูลเข้าไปในฐานข้อมูลเดิม
SQL Update
เป็นการแก้ไขข้อมูลที่มีอยู่แล้วในฐานข้อมูล โดยใช้คำสั่ง
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
update ตามด้วยชื่อของตารางที่เราต้องการ , set คือการจะแก้ไขเป็นชื่ออะไร , where เพื่อบอกว่าแก้ไขแทนที่ตรงไหนในฐานข้อมูล
ข้อควรระวัง ถ้าลืมใส่ where ลงในคำสั่งจะทำให้เกิดการเปลี่ยนแปลงทุก Column ดังภาพด้านล่าง
SQL Delete
เป็นการลบข้อมูลใน row ออกจาก table นั้นๆ โดยใช้คำสั่ง
DELETE FROM table_name
WHERE some_column=some_value;
จากภาพได้ลองลบ Country Mexico ออกจากฐานข้อมูล ซึ่งจะเห็นได้ว่า แถวที่ 2 3 13 นั้นได้หายไปเพราะเดิมที่ 3 แถวนั้นเก็บข้อมูลประเทศของ Mexico เอาไว้นั้นเอง
หากต้องการลบข้อมูลทั้ง Table ก็ให้ใช้คำสั่ง DELETE FROM table_name; หรือ DELETE * FROM table_name;
ข้อควรระวัง หลังจากลบข้อมูลทิ้งไปแล้ว เราไม่สามารถยกเลิกได้
หลักจากทดลองคำสั่งเบื้องต้นแล้ว ได้ทำการโหลดโปรแกรมการจัดการฐานข้อมูลมาใช้ โดยตัวที่เลือกคือ Mysql เพราะเป็น Open Source License โดย download จาก http://dev.mysql.com/downloads/windows/installer/ เป็น version 5.7.10
เมื่อลงโปรแกรมเสร็จเรียบร้อยแล้วเราจะเปิดโปรแกรม เป็นแบบ command line ใส่ passwordและเริ่มการใช้งานได้ทันที
จากนั้นใช้คำสั่ง CREATE DATABASE movie; จะสร้าง Database ขึ้นมาใหม่ และพิมพ์คำสั่ง show databases; เพื่อให้แสดงข้อมูลใน database ที่เรามี
เมื่อเราต้องการเข้าไปแก้ไขข้อมูลใน movie ให้ใช้คำสั่ง use movie;
จากนั้นทำการสร้าง Table โดยใช้คำสั่ง
CREATE TABLE horror (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
time_minutes int,
rate float);
โดยค่าของ id จะไม่มีทางเป็น NULL และจะเพิ่มขึ้นที่ละ 1
จากนั้นพิมคำสั่ง show tables; เพื่อดูตารางที่เราสร้าง
เราสามารถดูรายละเอียดของชนิดตัวแปรที่เรากำหนดใน tableได้ด้วยคำสั่ง describe horror;
หลังจากนั้นได้ทดลองใส่ข้อมูล โดยใช้คำสั่ง Insert Into
ปัญหาที่พบ
เนื่องจากเวลาที่เราใส่ข้อมูลลงไปใน Table เลข id จะเพิ่มขึ้นเรื่อยๆที่ละ 1 เมื่อเราลบข้อมูลทิ้งไป เลข id ที่โดนลบไปนั้นจะไม่ถูกแทนที่ด้วยข้อมูลใหม่ ทำให้เลข id นั้นถูกข้ามไปเลย ซึ่งวิธีแก้ไขคือ ตอนเราจะใส่ข้อมูลแทนที่เลข id ที่หายไปนั้น ให้ใช้คำสั่ง
insert into horror (id,name,time_minutes,rate)
value ('เลขที่หายไป','name','time','rate');
เพื่อที่จะทำให้ id ที่หายไปเติมเต็มด้วยข้อมูลอื่นแทน สำหรับคนที่ต้องการให้เลข id มีการเรียงติดต่อกัน
ฝึกใช้คำสั่งเบื้องต้นในการทำ database โดยเรียนรู้จากเว็บ http://www.w3schools.com/sql/default.asp
SQL Home
SQLเป็นภาษาพื้นฐานในการเข้าถึงฐานข้อมูล การฝึก SQL ในเว็บ w3schools จะสอนวิธีการใช้ SQL การเข้าถึงและจัดการข้อมูลใน: MySQL, SQL Server, Access, Oracle, Sybase, DB2 และระบบฐานข้อมูลอื่น ๆ
SQL Intro
SQL คืออะไร? SQL เป็นพื้นฐานมาจากโครงสร้างของ Query Language ช่วยให้เข้าถึงและจัดการข้อมูลได้ง่าย และ เป็นมาตรฐาน ANSI (American National Standards Institute)
SQL ทำอะไรได้บ้าง?
1. สามารถสอบถามข้อมูลกับฐานข้อมูล
2. สามารถดึงข้อมูลจากฐานข้อมูล
3. สามารถเพิ่มบันทึกลงฐานข้อมูล
4. สามารถปรับปรุงเปลี่ยนแปลงฐานข้อมูล
5. สามารถลบข้อมูลบนฐานข้อมูล
6. สามารถสร้างฐานข้อมูลใหม่
7. สามารถสร้างตารางใหม่ในฐานข้อมูล
8. สามารถสร้างกระบวนการการจัดเก็บในฐานข้อมูล
9. สามารถสร้างมุมมองในฐานข้อมูล
10. สามารถกำหนดสิทธิ์ในการเข้าใช้ต่างๆ
SQL Syntax
ใน Database Tables ส่วนใหญ่จะเก็บข้อมูลไว้ 1 ตารางหรือมากกว่า 1 ส่วนในรูปด้านล่างจะเป็นตารางของ Customers
รูปแสดงตารางข้อมูลของตาราง Customers |
ซึ่งในตัวอย่างของ SQL Statements จะมีให้เราเลือกว่าจะดึงข้อมูลจาก tableไหนออกมาดูโดยใช้คำสั่ง SELECT * FROM [tableที่เราต้องการในฐานข้อมูลที่เรามี]; ซึ่งในตัวอย่างจะมี table ให้เลือกอยู่ 8 อย่าง ดังภาพที่แสดงด้านล่าง
ภาพตัวอย่างการดึงข้อมูลจากตารางCategories |
SQL Select
วิธีการเลือกดูหัวข้อของข้อมูลที่เราต้องการจะใช้คำสั่ง
SELECT column_name,column_name
FROM table_name;
ภาพแสดงตัวอย่างในการดึงข้อมูลออกมาเพียง 3 Column |
จากภาพจะเห็นว่าเราเลือกมาเพียง 3 Column คือ CustomerID,CustomerName,Address
ส่วนการใช้ SELECT * FROM table_name; นั้นตัว '*' เป็นตัวบ่งบอกว่าเราจะเอาทุก Column ในตารางนั้นๆ
ภาพแสดงการเลือกทุก Column ในตาราง |
SQL Distinct
เป็นคำสั่งที่ใช้ดึงเฉพาะข้อมูลที่ไม่ซ้ำกันออกมา โดยใช้คำสั่ง
SELECT DISTINCT column_name,column_name
FROM table_name;
ภาพแสดงการดึงเฉพาะข้อมูลที่ไม่ซ้ำจากตาราง Orders |
จากภาพเราต้องการรู้ข้อมูลที่ไม่ซ้ำกันในตารางของ Orders จากหัวข้อ EmployeeID
SQL Where
เป็นคำสั่งที่ต้องการค้นหาข้อมูลที่ระบุไว้
SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;
ภาพแสดงการค้นหาคำว่า Mexico |
จากภาพเราต้องการค้นหาคำว่า Mexico ใน Country ข้อมูลที่ได้ก็จะแสดงออกมาแต่ประเทศ Mexico
ส่วน Operators ที่ใช้ใน Where ก็สามารถใช้ได้หลายรูปแบบดังนี้
ภาพแสดง Operators ที่มีให้เลือกใช้ |
SQL And & Or
เป็นคำสั่งที่ใช้แสดงเมื่อเราใส่เงื่อนไขเป็นจริง เช่น
SELECT * FROM Customers
WHERE Country='Germany'
AND City='Berlin';
เราจะแสดง Customers ที่อยู่ในประเทศ Germany และ เมือง Berlin เท่านั้น ส่วน
SELECT * FROM Customers
WHERE City='Berlin'
OR City='München';
เราจะแสดง Customers ที่อยู่ในเมือง Berlin หรือเมือง München ทั้ง2เมือง
หรือเราจะใช้การเขียนผสมกันของ And & Or เช่น
SELECT * FROM Customers
WHERE Country='Germany'
AND (City='Berlin' OR City='München');
WHERE Country='Germany'
AND (City='Berlin' OR City='München');
เราจะแสดง Customers ที่อยู่ในประเทศ Germany และ เมือง Berlin หรือ München
ภาพตัวอย่างการใช้ And และ Or ผสมกัน |
SQL Order By
เป็นคำสั่งที่ไว้ใช้เรียงข้อมูล จากน้อยไปมาก และ จากมากไปน้อยโดยใช้คำสั่ง
SELECT column_name, column_name
FROM table_name
ORDER BY column_name ASC|DESC, column_name ASC|DESC;
ภาพตัวอย่างการใช้ ASC และ DESC |
SQL Insert Into
เป็นการเพิ่มข้อมูลเข้าไปในฐานข้อมูลเดิมโดยใช้คำสั่ง
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
โดยเราจะลองใช้คำสั่ง
INSERT INTO Shippers (ShipperName, Phone)
VALUES ('Test','0123456789');
ภาพแสดงผลลัพธ์ที่ได้จากการใช้คำสั่ง Insert Into |
SQL Update
เป็นการแก้ไขข้อมูลที่มีอยู่แล้วในฐานข้อมูล โดยใช้คำสั่ง
UPDATE table_name
SET column1=value1,column2=value2,...
WHERE some_column=some_value;
update ตามด้วยชื่อของตารางที่เราต้องการ , set คือการจะแก้ไขเป็นชื่ออะไร , where เพื่อบอกว่าแก้ไขแทนที่ตรงไหนในฐานข้อมูล
ข้อควรระวัง ถ้าลืมใส่ where ลงในคำสั่งจะทำให้เกิดการเปลี่ยนแปลงทุก Column ดังภาพด้านล่าง
ภาพแสดงผลลัพธ์ที่ได้เมื่อไม่ใส่ Where |
SQL Delete
เป็นการลบข้อมูลใน row ออกจาก table นั้นๆ โดยใช้คำสั่ง
DELETE FROM table_name
WHERE some_column=some_value;
ภาพแสดงผลลัพธ์ที่ได้จากการใช้คำสั่ง Delete |
หากต้องการลบข้อมูลทั้ง Table ก็ให้ใช้คำสั่ง DELETE FROM table_name; หรือ DELETE * FROM table_name;
ข้อควรระวัง หลังจากลบข้อมูลทิ้งไปแล้ว เราไม่สามารถยกเลิกได้
หลักจากทดลองคำสั่งเบื้องต้นแล้ว ได้ทำการโหลดโปรแกรมการจัดการฐานข้อมูลมาใช้ โดยตัวที่เลือกคือ Mysql เพราะเป็น Open Source License โดย download จาก http://dev.mysql.com/downloads/windows/installer/ เป็น version 5.7.10
เมื่อลงโปรแกรมเสร็จเรียบร้อยแล้วเราจะเปิดโปรแกรม เป็นแบบ command line ใส่ passwordและเริ่มการใช้งานได้ทันที
รูปภาพหลังจากใส่รหัสผ่านแล้ว |
จากนั้นใช้คำสั่ง CREATE DATABASE movie; จะสร้าง Database ขึ้นมาใหม่ และพิมพ์คำสั่ง show databases; เพื่อให้แสดงข้อมูลใน database ที่เรามี
รูปภาพแสดงข้อมูล database ที่เรามี |
เมื่อเราต้องการเข้าไปแก้ไขข้อมูลใน movie ให้ใช้คำสั่ง use movie;
จากนั้นทำการสร้าง Table โดยใช้คำสั่ง
CREATE TABLE horror (id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
time_minutes int,
rate float);
โดยค่าของ id จะไม่มีทางเป็น NULL และจะเพิ่มขึ้นที่ละ 1
จากนั้นพิมคำสั่ง show tables; เพื่อดูตารางที่เราสร้าง
รูปภาพแสดงชื่อ Table ใน Database Movie |
เราสามารถดูรายละเอียดของชนิดตัวแปรที่เรากำหนดใน tableได้ด้วยคำสั่ง describe horror;
รูปภาพรายละเอียดของ Table horror |
หลังจากนั้นได้ทดลองใส่ข้อมูล โดยใช้คำสั่ง Insert Into
ผลลัพธ์ที่ได้หลังจากใส่ข้อมูลลง Table |
ปัญหาที่พบ
เนื่องจากเวลาที่เราใส่ข้อมูลลงไปใน Table เลข id จะเพิ่มขึ้นเรื่อยๆที่ละ 1 เมื่อเราลบข้อมูลทิ้งไป เลข id ที่โดนลบไปนั้นจะไม่ถูกแทนที่ด้วยข้อมูลใหม่ ทำให้เลข id นั้นถูกข้ามไปเลย ซึ่งวิธีแก้ไขคือ ตอนเราจะใส่ข้อมูลแทนที่เลข id ที่หายไปนั้น ให้ใช้คำสั่ง
insert into horror (id,name,time_minutes,rate)
value ('เลขที่หายไป','name','time','rate');
เพื่อที่จะทำให้ id ที่หายไปเติมเต็มด้วยข้อมูลอื่นแทน สำหรับคนที่ต้องการให้เลข id มีการเรียงติดต่อกัน
สมัครสมาชิก:
บทความ (Atom)