Songphon's profileSongphon's amusing blog.PhotosBlogListsMore Tools Help

Blog


    8/29/2007

    ตอนนี้ผมแยก Space สำหรับบทความเกี่ยวกับ Programming ออกไปต่างหากแล้วครับ

    จะได้ใส่ให้เต็มที่เลย เอาไว้คุยเรือ่งโปรแกรมมิ่งอย่างเดียวเลย ใครสนใจก็ตามไปได้เลยครับที่

    http://seethesharp.spaces.live.com/

    May the sharp be with you.

    9/29/2006

    เริ่มต้นกับ SQL Server Express 2005

    บทนำ

    Microsoft SQL Server เป็น Database Server จากฝั่งของค่ายไมโครซอฟท์เวอร์ชั้นล่าสุดก็คือ 2005 นี่เองแต่ความเปลี่ยนแปลงไม่ได้มีแค่ Version ที่ใหม่กว่า แต่ว่า Ms ยังออก Version สำหรับใช้งานได้ฟรี โดยตัดเอาความสามารถที่เป็น Feature ในระดับ Enterprise ไปซึ่งทำให้ง่ายต่อการฝึกใช้งานของผู้เริ่มศึกษา ก็คือ Express Version นี่เอง

    สำหรับ Function ของ Express version ก็มีดังนี้

    • Stored procedures
    • Views
    • Triggers
    • Cursors
    • Extended indexes
    • Snapshot isolation level
    • Advanced query optimizer
    • Transact-SQL support
    • Full Text Search
    • Reporting Services

    ถ้าไม่รู้จักก็ไม่เป็นไรครับดูให้ผ่านๆตาไปก่อน

    มาถึงการติดตั้งขั้นต่อแรกเลยก็ให้โหลดส่วนประกอบต่างๆ โดยมีสองสามส่วนหลักๆสำหรับการเริ่มต้นใช้งานคือ
    1. Prerequisite - สำหรับ SQL 2005 นั้นต้องการ .NET Framework 2.0 เป็น Prerequisite โหลดที่นี่ได้เลย .NET Framework 2.0

    2. Sql Server 2005 Express - ตัวนี้ก็คือตัว Engine หลักของ Sql 2005 โหลดที่นี่

    3. Management Studio - อะไรๆก็จะดูยุ่งยากถ้าไม่มีตัวนี นี่คือตัวที่ใช้จัดการฐานข้อมูลและฟังก์ชั้นอื่นๆของ Sql 2005 โหลดที่นี่

    โหลดเส็ดก็ติดตั้งเลยคับ ตามลำดับ

    ปล.ในขั้นตอนการติดตั้ง ตัวติดตั้งอาจจะให้โหลดCompoent อื่นเพ่มเติมเช่น XML Pharser หรือ Windows Installer ก็ให้โหลดมาตามที่มันต้องการน่ะครับถึงจะติดตั้งได้

    ----------------------------

    ต่อไปเมื่อติดตั้งเสร็จเรียบร้อยแล้วใน Start Menu เราจะพบ Menu Micrsoft SQL Server 2005 ซึ่งเมื่อคลิ๊กเข้าไปเราจะพบ SQL Server Management Studio Express ให้เราเปิดโปรแกรมนี้ขึ้นมาครับ

    เมื่อเปิดโปรแกรมขึ้นมาก็จะพบกับหน้าจอสำหรับ Login


    Server type : สำหรับ Express Version ก็จะถูกล๊อคไว้ให้ใช้ได้กับ Database Engine หรือก็คือด้วย SQL Express นั่นเอง
    Server name : ก็คือ hostname หรือ ip สำหรับ server ที่จะให้ Managenement Studio เชื่อมต่อไป
    Authentication : ก็คือรูปแบบการการยืนยันตัวตนกับ Server โดยมีมีให้เลือกสองแบบคือ Windows และ SQL
    Windows Authentication ถ้าเลือกแบบนี้ SQL จะใช้ Windows Security ในการเข้าสู้ฐานข้อมูลของดีคือเราไม่ต้องใส่รหัสผ่าน และมีความปลอดภัยสูงกว่า แต่มักจะมีปัญหาเมื่อ  SQL Server และตัวโปรแกรมที่เรียกใช้งานอยู่กันคนละที่หรืออยู่กันคนละ domain
    SQL Server Authentication เป็นการข้อสุ่ DB ด้วย username และ รหัสผ่าน ซึ่งจะค่อนข้างมีปัญหาน้อยกว่าแบบแรกแต่ความปลอดภัยจะต่ำกว่าหากใช้งานไม่ถูกวิธี

    ในขั้นแรกให้เลือกเป็นแบบ Windows แล้วกด Connect เลยจะพบกับหน้าจอดังนี้

    ให้เรามาดูทางด้านซ้ายกัน จะพบรายการดังนี้
     
    LAIN\SQLEXPRESS - LAIN คือชื่อของเครื่องผมเอง ถ้าเครื่องของคุณก็อาจจะเป็นชื่ออื่นๆ \SQLEXPRESS ก็ใช้ระบุว่าเราใช้ SQLEXPRESS

    จากนั้นให้เรา Expand Databases Node ออกมา จะเห็นอะไรที่คล้ายๆรูปข้างล่างนี่

    รายการที่เห็น 5 รายการก็คือตัวฐานข้อมูลนั่นเอง
    - System Database ตัวนี้คือฐานข้อมูลของระบบ SQL server เองเราไม่จำเป็นต้องไปยุ่ง
    ส่วนอีกสี่อันที่เหลือก็คือ ฐานข้อมูลที่อยู่ใน SQl Server บนเครื่องผม ซึ่งถ้าหากคุณติดตั้ง SQL Server ครั้งแรกคุณก็อาจจะเห็นแค่ System Database อย่างเดียว

    การสร้าง Database

    ง่ายเหมือนปอกกล้วยด้วย Management Studio ให้คลิ๊กขวาครับ คลิ๊กขวาที่ Database Node
     
    เลือก New Database จะปรากก Dialog ประมาณนี้


    ให้ใส่ชื่อ ฐานข้อมูลที่ต้องการในช่อง Database name แล้ว กด Ok ได้เลย
    ก็จะกรากฏฐานข้อมูลใหม่ขึ้นมาใน Object Explorer ให้เรา Expand ออกมา
    ก็จะได้หน้าตาประมาณนี้ ในที่นี้ผมสร้าง DB ใหม่ชือ่ demonstrate ก็จะได้แบบนี้
     

    • Database Diagram ก็คือ Entity-Relationship Diagram (ER) นั่นเอง
    • Tables ตัวนี้จะเป็นการหลักที่ใช้สร้าง Physical Table ที่ใช้เก้บข้อมูลจริงของเรา
    • Views ใช้กำหนด View จาก Table
    • Synonyms ใช้กำหนดชื่อย่อของฟิลด์เพื่อหลีกเลี่ยงการใช้ Fullname น่นเอง
    • Programability ชื่อเท่เชียว มันก็คอื Store Procedure นั่นแหละ
    • Security อันนี้คงไม่ต้องอธิบายมั้ง บ่งบอกความหมายในตัว

    ตอนนี้เราจะมาเล่นกับ Feature พื้นฐานุสดๆก่อนก็คือการสร้าง Table

    ง่ายอีกแล้ว เมื่อกดก็จะได้ Dialog ใหม่สำหรับปรับโครงสร้างของ Table แบบนี้

    ก็ให้เราใส่ตั้งชื่อแล้วก็กำหนด DataType ของ Field ที่เราต้องการไป
    ในที่นี้ผมจะใส่เป็น ตารางสำหรับเก็บเบอรืโทรศัพท์ ชื่อและนามสกุล
    โดยกำหนดชื่อฟิลเป็น firstname, lastname, phone โดยมี datatype เป็น varchar, varchar และ int
    แบบนี้



    ที่เป็นช่องให้ติ๊กอันสุดท้ายคือการยอมให้ Field นั้นสามารถรับค่า Null ได้หรือไม่ ถ้าไม่ติ๊กแสดงว่า Field นั้นจำเป็นต้องมีข้อมูลเสมอ
    อะเดียวก่อนดูเหมือนเราจะลืมบางอย่างที่สำคัญไป Primary Key ให้เรากำหนด Primary Key ดังรูป โดยการคลิ๊กขวา


    สังเกตว่าเราจะไม่สามารถกำหนดให้ Firstname และ Lastname เป็น Primary key ได้เนือ่งจากข้อมูลเป็น ชนิด VARCHAR
    นั้นเอง

    Tip
    ข้อมูลชนิด NCHAR , CHAR และ VARCHAR นั้นถึงแหมจะสามารถเก็บข้อมูลได้เหมือนกันแต่ระบบการจัดเก้บความเร้วในการค้นหาและเนื้อที่ที่ต้องใช้จัดเก็บนั้นต่างกัน โดยที่ CHAR และ NCHAR จะจัดเก็บข้อมูลเป็นแบบ Fix-length คือมีความยาวของข้อมูลคงที่นั่นเอง ให้ลองพิจารณาเมื่อเรากำหนดข้อมูลใน Field ให้เป็น CHAR(50) หมายความว่า 1 record นั้น field นี้จะต้องเก้บข้อมูลขนาด 50 ตัวอักษรเสมอ ถึงแม้ว่าข้อมูลที่เราใส่ไปจะมีแค่ 1 ตัวก็ตามระบบก็จะเติมช่องว่างในอีก 49 ตัวที่เหลือดังนั้นการจัดเก้บแบบนี้จึงเหมาะกับข้อมูลที่มีขนาดคงที่ เช่นรหัสบัตรประชาชนหรือเลขทะเบียนรถยนต์ เป็นต้น ส่วน VARCHAR นั้นจะเก็บข้อมูลตามความยาวจริงและใส่ตัวแยกปิดท้ายเข้าไปอีก 1 ตัว ดังนั้นถ้าข้อมูลมีขนาด 10 ก็จะต้องใช้ที่เก็บข้อมูลขนาด 11 VARCHAR นั้นเหมาะกับข้อมูลที่มีขนาดไม่คงที่ แต่ความเร็วในการค้นหานั้นจะช้ากว่า CHAR หรือ NCHAR เนื่องจากต้องเสียเวลาในการค้นหา ตัวแยก(Seperator)

    หลังจากเราได้โครงสร้างตารางที่ต้องการแล้ว ก็กด save ได้เลยถ้าตารางนั้นยังไม่ถูกตั้งชื่อระบบก็จะให้ใส่ชื่อตาราง
    เมือ่ทำการ Save เรียบร้อยที่ Object Explorer ก็จะปรากฏตารางใหม่ขึ้นมา
     
    เราสามารถทำการเปิดตารางเพือ่ใส่ข้อมูลได้โดยคลิกขวาที่ชื่อตารางและเลือก Open Table

    เป็นอย่างไรบ้างครับการใช้ Management Studio ไม่อยากเลยใช่ไหม ถ้าพอจะจับแนวทางได้แล้วการแก้ไข DB ด้วย Management Studio ก็ดุเหมือนจะเป็นทางที่ง่ายที่สุดทางหนึ่งเลย

    สำหรับการ Modify Field ของตารางก็ทำได้โดยคลิ๊กขวาแล้วเลือก Modify เหมือนกัน
    พอแค่นี้ก่อนน่ะครับคร่าวหน้าจะแนะนำเรื่องการสร้างกฏความสัมพันธ์ของตารางบ้าง