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

ภาษา SQL (เบื้องต้น)

ภาษา SQL

   SQL (Structured Query Language) คือ ภาษาที่ใช้ในการเข้าถึง และจัดการกับฐานข้อมูล ซึ่งภาษา SQL เองก็มีอยู่หลายเวอร์ชั่นด้วยกัน

RDBMS (Relational Database Management System) หมายถึง ระบบที่จัดการความสัมพันธ์ของข้อมูล เช่น ข้อมูลใน RDBMS ถูกเก็บในรูปแบบของตาราง ฉะนั้นตารางจะเป็นตัวบอกความสัมพันธ์ของข้อมูลจากแถว และหลัก

ฐานข้อมูลส่วนใหญ่จะถูกเก็บในรูปแบบของตาราง โดยจะระบุชนิดของตารางด้วยชื่อตาราง หลักหมายถึงชนิดของข้อมูล และแถวหมายถึงข้อมูลที่บันทึก

การเขียนภาษา SQL 
ภาษา SQL จะมีคำสั่งที่เรียบง่าย ชัดเจนโดยจะมีข้อบังคับในการเขียน ดังนี้

1. ตัวพิมใหญ่ หรือพิมเล็ก ไม่มีความแตกต่างกัน

2. เมื่อเขียนจบ 1 คำสั่ง (1 statement) จะต้องปิดด้วย ; (Semicolon)

ตัวอย่างการใช้งาน


ใช้คำสั่ง Select เรียกข้อมูลที่ชื่อว่า Customers จาก ฐานข้อมูลที่เรามี (ช่องขวามือสุด) ผลที่ได้คือ ข้อมูลของลูกค้าแต่ละคน


คราวนี้เรียกข้อมูลที่ชื่อว่า Orders ด้วยคำสั่ง Select เช่นเคย แต่พิมพ์ด้วยตัวพิมพ์เล็กทั้งหมด ผลที่ได้คือ ข้อมูลการสั่งซื้อแต่ละครั้ง

คำสั่งที่นิยมใช้
Select - ดึงข้อมูลจากฐานข้อมูล
Update - อัพเดตฐานข้อมูล
Delete - ลบข้อมูลออกไปจากฐานข้อมูล
Insert Into - ใส่ข้อมูลใหม่ลงในฐานข้อมูล
Create Database - สร้างฐานข้อมูลใหม่
Alter Database - ปรับปรุงฐานข้อมูล
Create Table - สร้างตารางใหม่
Alter Table - ปรับปรุงตาราง
Drop Table - ลบตาราง
Create Index - สร้าง index (ตัวค้นหา)
Drop Index - ลบ index

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

ปัญหาการเรียกใช้ฟังก์ชั่นในไฟล์ .kv

การเขียนโปรแกรมด้วยภาษา Kivy
ปัญหาการเรียกใช้ฟังก์ชั่นในไฟล์ .kv

   ในการเขียนโปรแกรมด้วยภาษา kivy นั้น จะทำงานร่วมกับภาษา python โดยจะแบ่งหน้าที่กันเป็นสองส่วน เปรียบได้ว่า python จะเป็นตัวกำหนดการทำงาน ส่วน kivy จะระบุส่วนประกอบของหน้าโปรแกรม และ GUI (Graphic User Interface)

   GUI (Graphic User Interface) คือ ส่วนที่ทำงานติดต่อกับผู้ใช้ อ่านการกระทำ และไปใช้ในการประมวลผลต่างๆ เช่น เราออกแบบ Button เอาไว้ เมื่อมีการกดที่ปุ่มนี้ จะให้แสดงคำว่า "Hello" 

   วิธีการเขียนคำสั่งแบบนั้น ใน kivy จะเขียนได้ดังนี้

ใน python file

def Hello():
   text = "Hello"
   return text

ใน kivy file

Button:
   on_press: root.hello()

   ที่ขีดเส้นใต้เอาไว้ คือ ฟังก์ฃั่นที่ถูกสร้างอยู่ใน python file โดยฟังก์ชั่นนี้ไม่มีการรับพารามิเตอร์ 
   แต่ถ้าฟังก์ชั่นนั้นมีพารามิเตอร์เราสามารถใส่พารามิเตอร์ ในการเรียกใช้ได้เลย ตัวอย่างเช่น

ใน python file

def hello(name):
   text = "Hello "+name
   return text

ใน kivy file

Button:
   on_press: root.hello("Somruk")

   แต่ถ้าพารามิเตอร์ที่เราจะเรียกใช้เป็น attribute ที่มีอยู่แล้ว และไปเรียกใช้ฟังก์ชั่นใน kivy ซึ่ง kivy ไม่ได้รู้จัก attribute นั้น จะทำให้ผลลัพท์ที่ได้ผิดพลาดไป ยกตัวอย่างจากผลงานของผู้เขียน

   โปรแกรมรับข้อมูลชื่อจาก textinput และไปเพิ่ม ชื่อใน List



จากรูป ที่ตรงกลาง มีการเรียกใช้ฟังก์ชั่น addStudent และ พารามิเตอร์เป็น attribute ใน python ผลที่ได้คือ


 
   วิธีการแก้ คือ ให้เราเรียกใช้ ฟังก์ชั่นนี้ ใน python ไฟล์ เพื่อให้ฟังก์ฃั่นนั้น รู้ัจัก attribute



   ในที่นี้ได้เรียกผ่านฟังก์ชั่นที่ชื่อว่า OpenFile
   ผลที่ได้
   

   จะเห็นว่าผลลัพท์สอดคล้องกับข้อมูลที่ใส่เข้าไป