วันเสาร์ที่ 30 มกราคม พ.ศ. 2559

Homework week 3 : The DBMS constraints

จาก week ที่แล้วที่เราได้ทำการศึกษา DBMS Program และการใช้งานอย่างเบื้องต้นกันไปแล้ว ซึ่งข้าพเจ้าได้เลือกใช้ MySQL ในการศึกษา ในตอนนี้ข้าพเจ้าจะกล่าวถึงข้อจำกัด หรือ Constriants ของ MySQL ซึ่งจะสนับสนุน Constraints ต่างๆดังนี้
  • PRIMARY KEY and UNIQUE Index Constraints
  • FOREIGN KEY Constraints
  • Constraints on Invalid Data
  • ENUM and SET Constraints

ตัวอย่างการทดลองระบุ Constraints ต่างๆ

 

1. PRIMARY KEY


ทดลองด้วยการสร้างตาราง persons และทำการสร้าง Column หรือ Atrribute ต่างๆขึ้นมา และกำหนด Primary key เป็นคอลัมน์ ID



เมื่อเราทำการสร้างตาราง persons แล้ว เราจะใช้คำสั่ง DESCRIBE เพื่อดูรายละเอียดต่างๆของตารางที่เราสร้างนั่นเอง และพบว่า KEY ที่ปรากฎใน Atrribute ID ถูกระบุเป็น PRI หรือ PRIMARY KEY เรียบร้อยแล้วนั่นเอง 

2. FOREIGN KEY


เนื่องจาก week ที่แล้วเราได้ลองทำการสร้างตาราง myTable ขึ้นมา ซึ่งมีคอลัมน์ ID ชื่อตรงกับ ID ใน persons ซึ่ง 2 ตารางนี้อยู่ใน Database เดียวกัน ทำให้ 2 column นี้สามารถ reference ข้อมูลหากันได้


โดยเราสามารถตรวจสอบว่ามี Foriegn Key หรือไม่ สามารถใช้คำสั่ง ‘SHOW ENGINES’ ใน MySQL เพื่อตรวจสอบชนิดของ table ที่สร้างได้ ซึ่งใช้ FOREIGN KEY ได้นั้น table ที่มีการอ้างอิงกันทั้งหมด ต้องเป็นชนิด InnoDB


ซึ่งเราพบว่า ตรง Foreign Key ปรากฏสถานะ Yes แปลว่ามี Foreign Key ปรากฎ นั่นเอง

Reference Link :  

วันจันทร์ที่ 25 มกราคม พ.ศ. 2559

Homework week 2 : Try the DBMS Program

 Try the SQL syntax on DBMS Program

 

โปรแกรม DBMS หรือโปรแกรมจัดการฐานข้อมูลที่ข้าพเจ้าเลือกใช้ คือ MySQL 

https://upload.wikimedia.org/wikipedia/en/thumb/6/62/MySQL.svg/1280px-MySQL.svg.png


          MySQL มีความสามารถให้ผู้ใช้งานเข้าดึงข้อมูลได้หลายๆคนในเวลาเดียวกันได้และมีการ เข้าถึงข้อมูลที่รวดเร็ว มีการกำหนดการเข้าใช้งานของผู้ใช้ในแบบต่างๆอย่างเหมาะสม ปลอดภัย MySQL ถูกใช้งานเมื่อปี 1996 แต่โปรแกรมนี้พัฒนาตั้งแต่ปี 1979 และชนะรางวัล Linux Journal Reader ‘s Choice Award 3ปีซ้อน
          ปัจจุบัน MySQL ได้ใช้งานแพร่หลายโดยเป็นโปรแกรม Open Source License แต่ก็มีแบบ Commercial License ให้ใช้ด้วย โดยคุณสมบัติจะแตกต่างกันออกไป

1. เรียกดูฐานข้อมูลต่างๆที่มีอยู่ในโปรแกรม

 

ใช้ดำสั่ง : SHOW databases;


 2. ลอง add database table ใหม่


ใช้คำสั่ง : CREATE DATABASE myTable;

เป็นการใช้คำสั่งนี้เพื่อสร้างตรางฐานข้อมูลของเรา


3. Create table 

 

ใช้คำสั่ง : CREATE TABLE TabaleName(ColName type (size)); 


เมื่อเราทำการสร้างตารางเสร็จแล้ว ใช้คำสั่ง SHOW TABLES; และตามด้วย DESCRIBE เพื่อดูรายละเอียดของตารางที่เราสร้างขึ้นมา

 

4. ทดลองแทรกข้อมูลลงในตาราง

 

ใช้คำสั่ง : INSERT INTO


เมื่อทำการแทรกข้อมูลลงไปแล้ว เราจะเรียกดูข้อมูลต่างๆในตรารางด้วย SELECT*FROM
 

5.การเรียกดูข้อมูลในตาราง

 

- ใช้คำสั่ง : SELECT * FROM 


- ใช้คำสั่ง WHERE

6.การ Update ข้อมูลในตาราง

 

ใช้คำสั่ง : UPADTE tableName SET(col1=value) WHERE col=value


ทดลอง update ข้อมูลจาก Chureeporn เป็น Somsri
ปล.แอบมี error นิดหน่อยเพราะเรียกใช้คำสั่ง SELECT ผิด  

 

7. การลบข้อมูลออกจากตาราง 

 

ใช้คำสั่ง DELETE FROM tableName WHERE colname = value;


ทดลองลบข้อมูล Somsri ออกจากตารางโดยใช้ ID เป็นตัวระบุในการลบ
 

Reference Link : about MySQL

MySQL installer 

Video tutorial on Youtube 

SQL create table tutorial 

 

วันอาทิตย์ที่ 24 มกราคม พ.ศ. 2559

Homework week 2 : Try Syntax on w3School website tutorial

 Try the SQL syntax on w3school website tutorial 

 

1. The SQL SELECT Statement

 

           SELECT statement ใช้เลือกเพื่อเรียกดูข้อมูลของ Column ใน database table
 Syntax : 


- ผลการทดลองโค้ดและข้อสรุปที่ได้


1. SELECT * FROM table name;

ผลการทดลอง : ทดลอง SELECT ทุก Column ใน Customers table


ข้อสรุป : เมื่อเราใช้ * ต่อจาก SELECT จะเป็นการเรัยกดูข้อมูลของทุก Column ใน Database table นั้นๆ

2.  SELECT column_name, FROM table_name;
ผลการทดลอง : ทดลอง SELECT Column CustomerName ใน Customers table


ข้อสรุป : เมื่อเราระบุชื่อคอลัมน์ที่เราต้องการที่จะดูข้อมูลลงไปต่อจากคำสั่ง SELECT จะทำให้เราสามารถดูได้เฉพาะคอลัมน์นั้นๆที่เราทำการเลือกไวใน database table และเมื่อเราต้องการดูมากกว่า 1 column ให้เราใช้เครื่องหมาย comma (,) คั่น ระหว่างชื่อ column 


2. SQL SELECT DISTINCT Statement

 

          SELECT DISTINCT จะ return ค่าที่มีค่าแตกต่างกันเท่านั้น
Syntax : SELECT DISTINCT column_name FROM table_name

- ผลการทดลองโค้ดและข้อสรุปที่ได้


ผลการทดลอง :ใช้คำสั่งเพื่อเรียกดู column city ต่างๆว่ามีอะไรบ้างโดยไม่ซ้ำกัน


ข้อสรุป : คำสั่งนี้จะแสดงเฉพาะข้อมูลที่ไม่ซ้ำกันในคอลัมน์ที่เราได้เลือกไว้


3. SQL WHERE Clause

 

           WHERE เป็นการเรียกใช้คำสั่งเพื่อเรียกดูเฉพาะข้อมูลที่เรามีการระบุข้อมูลเฉพาะบางอย่างไว้
Syntax : SELECT column_name FROM table_name WHERE column_name operator value


- ผลการทดลองโค้ดและข้อสรุปที่ได้


ผลการทดลอง :ใช้คำสั่งเพื่อเรียกดูทุกข้อมูลในคอลัมน์ EmployeeID ที่มีค่าเป็น 1 ใน Employee Table

 

 

ใช้คำสั่งเพื่อเรียกดูทุกข้อมูลในคอลัมน์ Country ที่มีค่าเป็น Mexico ใน Customers table

 


 ข้อสรุป : คำสั่งนี้จะแสดงเฉพาะข้อมูลต่างๆที่มีในคอลัมน์ที่เราได้ทำการระบุไว้ว่าจะให้แสดงข้อมูลใดในคอลัมน์นั้น

 

Example : Use BETWEEN Operation


4. SQL AND & OR Operators

 

- ผลการทดลองโค้ดและข้อสรุปที่ได้

 

ผลการทดลอง : ทดลองเรียกข้อมูลจากทุก Column ที่มี ข้อมูลในคอลัมน์ CategoryID=2 หรือ มีข้อมูลในคอลัมน์ CategoryName='Beverages'   


ข้อสรุป :  AND และ OR เป็น Operator ชนิดหนึ่ง ใช้กับคำสั่ง WHERE โดย AND เป็นการเลือกทั้งสองอย่าง ส่วน OR เลือกเพียงอย่างใดอย่างหนึ่ง


5. SQL ORDER BY Keyword

 

           ORDER BY เป็นคำสั่งที่ใช้เรียงข้อมูลในคอลัมน์
Syntax : SELECT column_name
FROM table_name
ORDER BY column_name ASC|DESC, column_name ASC|DESC; 


- ผลการทดลองโค้ดและข้อสรุปที่ได้


ผลการทดลอง : ทดลองเรียง Column CategoryName โดยใช้รูปแบบ DESC
 

 

ข้อสรุป : คำสั่งนี้จะเรียงข้อมูลตามคอลัมน์ที่เรากำหนด โดยมี 2 รูปแบบการเรียงคือ DESC และ ASC โดย DESC เป็นการเรียงแบบจากมากไปน้อย และ ASC เป็นการเรียงจากน้อยไปมาก

 

6. SQL INSERT INTO Statement

            
              INSERT INTO เป็นคำสั่งที่ใช้แทรกข้อมูลใหม่ในตาราง
Syntax : INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

  

- ผลการทดลองโค้ดและข้อสรุปที่ได้

ผลการทดลอง : ทดลองเพิ่มข้อมูล Burger ลงไปใน Categories Column





ข้อสรุป : พบว่าข้อมูลจะอัพเดท จากการเพิ่มข้อมูลจาก VALUES เข้าไปตามตำแหน่ง column ที่ตรงกันนั่นเอง แต่ถ้า column ไหนไม่ได้เพิ่มข้อมูลเข้าไปก็จะเป็นค่า null แทน 

7. SQL UPDATE Statement

 

           UPDATE ใช้เพื่อแก้ไข หรือ เปลี่ยนแปลงข้อมูลที่มีอยู่แล้วใน table
Syntax : UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;

- ผลการทดลองโค้ดและข้อสรุปที่ได้

 

ผลการทดลอง : ทดลองเปลี่ยนข้อมูลในคอลัมน์ CategoryName จาก Condiments เป็น Beer




ข้อสรุป : คำสั่ง UPDATE จะเปลี่ยนแปลงข้อมูลในคอลัมน์ที่มีอยู่แล้ว เป็นค่าใน SET ที่เรากำหนดไว้ ข้อควรระวัง! ต้องใช้คำสั่ง WHERE เพื่อระบุข้อมูลใน Column ที่เราจะทำการเปลี่ยนแปลงเเอาไว้ด้วย ไม่เช่นนั้น มันจะทำการ Update เป็นข้อมูลทั้งหมด ใน Column นั้น 

8. SQL DELETE Statement

 

            DELETE เป็นคำสั่งที่ใช้ลบข้อมูลใน table
Syntax : DELETE FROM table_name
WHERE some_column=some_value

- ผลการทดลองโค้ดและข้อสรุปที่ได้

 

ผลการทดลอง : ทดลองลบแถวของข้อมูลโดยใช้ คอลัมน์ CategoryID = 3





ข้อสรุป : เราสามารถลบแถวของข้อมูลออกจาก table ได้โดยใช้ คำสั่ง WHERE เพื่อระบุตัวที่เราจะทำการลบออกไป และถ้าต้องการลบข้อมูลทั้งหมด ใช้คำสั่ง DELETE FROM table_name;


Reference Linkw3school tutorial website

Problem in try SQL : ปัญหาที่พบคือปกติจะใช้เบราเซอร์ Mozilla firefox ในการเปิดเว็บไซต์ แต่เมื่อต้องการทดลอง code SQL แบบ online ในเว็บ w3school พบว่าเบราเซอร์ mozill firefox ที่ใช้อยู่นั้น ไม่รองรับรูปแบบ WebSQL โดยมีเบราเซอร์ที่สามารถรองรับรูปแบบ Web SQL ได้คือ Chrome, Safari, และ Opera ดังนั้น ข้าพเจ้า จึงใช้ Google Chrome เพื่อทำการทดลอง code บนเว็บ w3school online


วันศุกร์ที่ 22 มกราคม พ.ศ. 2559

Homework week 2 : introduction to SQL on website tutorial

Introduction to SQL on w3school website tutorial 

 

          In this website we can learn about SQL language for accessing or query databases in database management system (DBMS)

1. SQL Home 


          This topic will tell me about SQL tutorial will teach us how to use SQL to access and manipulate data in: MySQL, SQL Server, Access, Oracle, Sybase, DB2, and other database systems. It has online SQL editor that can try edit the SQL statements, and click on a button to view the result. in example


          We can try the statment SELECT * FROM Customers; and click run the result, you can see the example of database in this website so this statement is select for see everything of your database.
            in addition, we can do the test , datatype and ranges for Microsoft Access, MySQL and SQL Server, reference and exam.

2. Introduction to SQL

 

          In this topic we can learn about the description of SQL language. SQL is a standard language for accessing and manipulating databases.

- What is SQL?

  • SQL stands for Structured Query Language
  • SQL lets you access and manipulate databases
  • SQL is an ANSI (American National Standards Institute) standard

- What Can SQL do?

  • SQL can execute queries against a database
  • SQL can retrieve data from a database
  • SQL can insert records in a database
  • SQL can update records in a database
  • SQL can delete records from a database
  • SQL can create new databases
  • SQL can create new tables in a database
  • SQL can create stored procedures in a database
  • SQL can create views in a database
  • SQL can set permissions on tables, procedures, and views

- RDBMS

           RDBMS stands for Relational Database Management System.
RDBMS is the basis for SQL, and for all modern database systems such as MS SQL Server, IBM DB2, Oracle, MySQL, and Microsoft Access.
           The data in RDBMS is stored in database objects called tables.
A table is a collection of related data entries and it consists of columns and rows.
So to build a web site that shows data from a database, you will need:
  • An RDBMS database program (i.e. MS Access, SQL Server, MySQL)
  • To use a server-side scripting language, like PHP or ASP
  • To use SQL to get the data you want
  • To use HTML / CSS

3. SQL Syntax

 

- Database table   

           Each table is identified by a name (e.g. "Customers" or "Orders"). Tables contain records (rows) with data. for example,




- SQL Statements

 

           Some of The Most Important SQL Commands and we will try to use each of statement in other topics.
  • SELECT - extracts data from a database
  • UPDATE - updates data in a database
  • DELETE - deletes data from a database
  • INSERT INTO - inserts new data into a database
  • CREATE DATABASE - creates a new database
  • ALTER DATABASE - modifies a database
  • CREATE TABLE - creates a new table
  • ALTER TABLE - modifies a table
  • DROP TABLE - deletes a table
  • CREATE INDEX - creates an index (search key)
  • DROP INDEX - deletes an index

           Semicolon is the standard way to separate each SQL statement in database systems that allow more than one SQL statement to be executed in the same call to the server. In this tutorial use semicolon at the end of each SQL statement.

Reference : w3school Tutorial website

วันพุธที่ 13 มกราคม พ.ศ. 2559

Homework week 1 : Add grade to spreadshhet

1. Enter your grades/transcript in a spreadsheet then calculate your GPA

ANS : This is my grades in transcript 5 semesters Click here

2. Can we calculate average GPA of all student ?

ANS : สามารถคำนวณได้ แต่อาจเกิดปัญหาในการดึงข้อมูลและนักศึกษาแต่ละคนจะเก็บข้อมูลไม่เหมือนกัน และลงวิชาเรียนไม่เมือนกันทุกคน ทำให้มีปัญาในการคำนวณ อาจจะมีความล่าช้า ใช้เวลามาก

3. Can we calculate average of a subject ?

ANS : เราสามารถคำนวณได้ โดยดึงเอาข้อมูลเกรดแต่ละวิชาของนศ.แต่ละคนออกมาได้ แต่อาจจะเสียเวลาในการดึงข้อมูลจากนศ.แต่ละคนเป็นจำนวนมาก

4. Problem and Solution

ANS : ในการใส่ข้อมูลแสดงเกรดของนศ.แต่ละคนในครั้งนี้เราจะใช้ Spreadsheet ในการใส่ข้อมูลและคำนวณ GPA ของนศ.แต่ละคน ซึ่งการใส่ข้อมูลลง Spreadsheet มีข้อจำกัดต่างๆคือ 
1. Redundancy อาจมีการซ้ำกันของข้อมูเกิดขึ้น
2. มีความยากในการดึงข้อมูลที่เกี่ยวข้องรวมไว้ด้วยกัน
3. มีความปลอดภัยต่ำ

ดังนั้น เราจึงแก้ปัญหาโดยการ ใส่ข้อมูลต่างๆไว้ใน Database และจัดการผ่าน Database management system หรือ DBMS โดยมีข้อดีคือ
1. ข้อมูลมีการเก็บอยู่รวมกันและสามารถใช้ข้อมูลร่วมกันได้
2. ช่วยลดความซ้ำซ้อนของข้อมูลได้
3.สามารถหลีกเลี่ยงความขัดแย้งกันของข้อมูลที่อาจเกิดขึ้นได้
4. การควบคุมความคงสภาพของข้อมูล ความคงสภาพ (Integrity) หมายถึง ความถูกต้อง ความคล้องจอง ความสมเหตุสมผลหรือความเชื่อถือได้ของข้อมูล
5. การจัดการข้อมูลในฐานข้อมูลจะทำได้ง่าย
6. ความเป็นอิสระระหว่างโปรแกรมประยุกต์และข้อมูล
7. การมีผู้ควบคุมระบบเพียงคนเดียว ซึ่งเรียกว่า DBA (Database Administrator) เป็นผู้ควบคุมและบริหารจัดการระบบฐานข้อมูลทั้งหมด นั่นเอง