250 likes | 397 Views
MySQL. วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์) sobree@skt.ac.th. MySQL. ปัจจุบันการใช้งานของระบบคอมพิวเตอร์ที่แพร่หลายอย่างหนึ่งก็คือ ระบบฐานข้อมูล โดยภาษาคอมพิวเตอร์ที่จะช่วยในการทำงานเกี่ยวกับระบบจัดการฐานข้อมูลในระบบฐานข้อมูลนั้นคือภาษา SQL
E N D
MySQL วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์) sobree@skt.ac.th
MySQL • ปัจจุบันการใช้งานของระบบคอมพิวเตอร์ที่แพร่หลายอย่างหนึ่งก็คือ ระบบฐานข้อมูล โดยภาษาคอมพิวเตอร์ที่จะช่วยในการทำงานเกี่ยวกับระบบจัดการฐานข้อมูลในระบบฐานข้อมูลนั้นคือภาษา SQL • ในบทนี้จะกล่าวถึงหลักการของระบบฐานข้อมูล โดยอธิบายถึงการทำงานโดยสังเขป และรูปแบบของฐานข้อมูลเชิงสัมพันธ์ที่นิยมนำมาใช้งานโดยในที่นี้คือ MySQL และภาษา SQL ที่จำเป็น
ระบบจัดการฐานข้อมูล • รูปแบบเชิงสัมพันธ์ (Relational Model) • รูปแบบเครือข่าย (Network Model) • รูปแบบลำดับขั้น (Hierarchical Model) • รูปแบบเชิงวัตถุ (Object-Oriented Model)
ระบบฐานข้อมูลเชิงสัมพันธ์ระบบฐานข้อมูลเชิงสัมพันธ์ • ออกแบบและพัฒนาจากโมเดลแบบ Hierarchical Database (มีโครงสร้างข้อมูลแบบต้นไม้ Tree ) และโมเดลแบบ Network Database • เห็นข้อมูลถูกเก็บอยู่ในรูปของตาราง (Table) สองมิติซึ่งประกอบด้วยแถว (Row) และคอลัมน์ (Column) • ใช้ภาษา SQL ซึ่งเป็นภาษาฐานข้อมูลที่ใช้ในการติดต่อกับ ระบบจัดการฐานข้อมูล หรือ DBMS (Database Management System)
ภาษา SQL (Structured Query Language ) • เป็นภาษาประเภท nonprocedural • นี้เป็นภาษาคอมพิวเตอร์ในยุคที่ 4 • ที่ถูกพัฒนาโดย IBM
ภาษา SQL (Structured Query Language ) การจัดการฐานข้อมูล รวมไปถึงการควบคุมสิทธิการใช้งานฐานข้อมูล SQL จะประกอบด้วยภาษา 3 รูปแบบ • ภาษาสำหรับนิยามข้อมูล(Data Definition Language-DDL) • ภาษาสำหรับการจัดการข้อมูล (DataMnipulation Language-DML) • ภาษาควบคุม (Control Language-CL)
MySQL SQL Server • เป็น SQLDatabase Server ที่นิยมใช้งานกันบนระบบปฏิบัติการลีนุกซ์ • พัฒนาโดย T.c.X. DataKonsultAB. • จุดมุ่งหมายหลักของ MySQL คือความเร็ว ความคงทน และง่ายต่อการใช้
โครงสร้างข้อมูลของ MySQL MySQL เก็บข้อมูลอยู่ในรูปแบบของกลุ่มไฟล์ข้อมูล 3 ไฟล์ • ISD ไฟล์เก็บข้อมูลจริง • ISM ไฟล์เก็บข้อมูลเกี่ยวกับคีย์และข้อมูลภายใน • frm ไฟล์เก็บโครงสร้างของตารางข้อมูล
ลักษณะเฉพาะของ MySQL • ใช้งานกับเครื่องที่มีหลาย CPUได้ • สนับสนุนการใช้ API ของ C , C++ ,Eiffel, Java ,Perl ,Python และ TCL • ทำงานได้หลาย platform • มี ODBC DRIVER ให้ใช้สำหรับการติดต่อในตัวเพื่อใช้สำหรับระบบปฏิบัติการ Window 95 • ถือข้อมูลได้ถึง 50,000,000 เรคคอร์ด
การติดต่อ MySQL กับ Server • มีรูปแบบการใช้งาน ดังนี้ $ mysql [- h host_name] [- u user_name] [- pyour_pass] เช่น $ mysql -h localhost -u test $ mysql -h localhost $ mysql -u test $ mysql
The SQL Create Table Statement • คำสั่งที่ใช้สำหรับตารางในระบบฐานข้อมูล Create table { table_name } ( { fieldl_name } { field1_data_type } , { field2_name } { field2_data_type } );
The SQL Alter Table Statement • คำสั่งที่ ใช้สำหรับเพิ่มเติม หรือเปลี่ยนแปลงคอลัมน์ในตาราง alter table { table_name } add column { field_name } { field_data_type }; alter table { table_name } change column {existing_field_name} { new_field_name } { new_field_data_type }; alter table { table_name } drop column { existing_field_name}
The SQL Drop Table Statement • คำสั่งที่ ใช้สำหรับลบตารางออกจากฐานข้อมูล drop table table_name;
The SQL Insert Statement • คำสั่งที่ใช้สำหรับเพิ่มเรคอร์ดลงในตาราง insert into { table_name } ( { column_list } ) values ( { value_list } )
The SQL Update Statement • คำสั่งที่ใช้สำหรับเปลี่ยนแปลงสารสนเทศในตาราง update { table_name } set { column_name } = { expression }… where { where_clause }
The SQL Select Statement • คำสั่งที่ใช้สำหรับการแสดงคอลัมน์หรือกลุ่มของคอลัมน์ที่เราต้องการ select {field_list}from {table_list} from {table_list} where {where_clause}<- filters group by {column_list} <- aggregates order by {column_list} <- sorts having {having_cluase}<- filters after aggregation
The SQL Delete Statement • คำสั่งที่ใช้ลบข้อมูลในแต่ละแถวของตาราง DELETE FROM {table_name} WHERE {where_clause} ;
Using AUTO_INCREMENT to Create Keys • ใน MySQL เราสามารถสร้างฟิลด์ที่เพิ่มค่าแบบอัตโนมัติ โดยใช้คำสั่งดังนี้ CREATE TABLE autoi ( key_autoi INTEGER AUTO_INCREMENT PRIMARY KEY ,str_name_first VARCHAR(50) );
ฟังก์ชันของภาษา PHP ที่สนับสนุน MySQL • Mysql_affected_rows- เป็นการหาจำนวนแถวที่มีในการใช้ครั้งสุดท้าย • Int mysql_affected_rows(int link_identifier) • Mysql_close- เป็นการปิดการเชื่อมต่อกับ MySQL • Int mysql_close(int link_identfier); • Mysql_connect-เป็นการเปิดการเชื่อมต่อกับ MySQL Server • Int mysql_connect( string hostname, string username, string password);
ฟังก์ชันของภาษา PHP ที่สนับสนุน MySQL • mysql_create_db – เป็นการสร้างฐานข้อมูลที่เป็น MySQL • Int mysql_create_db(string database name); • mysql_data_seek – เป็นการย้าย pointer ที่ชี้ไปยังแถวภายใน • Int mysql_data_seek(int result_identifier, int row_number); • mysql_dbname – จะเป็นการหาชื่อของ MySQLdatabase • String mysql_dbname(string result, int I);
ฟังก์ชันของภาษา PHP ที่สนับสนุน MySQL • mysql_db_query – เป็นการส่ง MySQL Query • Int mysql_db_query(string database, string query, int link_identifier); • Mysql_drop_db – เป็นการ drop หรือลบฐานข้อมูลที่เป็น MySQL • Int Mysql_drop_db(string database_name, int link_identifier); • mysql_errno – คืนค่าหมายเลขของ error ที่เรียก mysql ครั้งสุดท้าย • Int nysql_errno();
ฟังก์ชันของภาษา PHP ที่สนับสนุน MySQL • mysql_error – เป็นการคืนข้อความที่เป็น error • String mysql_error(); • mysql_fetch_array – ทำการ fetch แถวมาเป็นแบบ array • Int mysql_fetch_array(int result); • mysql_fetch_field – เป็นการหาข้อมูลของ field นั้น • object mysql_fetch_field(int result, int field_offset);
ฟังก์ชันของภาษา PHP ที่สนับสนุน MySQL • mysql_detch_lengths – เป็นการหาขนาดความสูงสุดของ data ที่อยู่ในคอลัมน์ • Int mysql_detch_lengths(int result); • mysql_fetch_object – เป็นการ fetch แถวให้เป็น object • Int mysql_fetch_object(int result); • mysql_fetch_row – เป็นการหาแถวโดยการกำหนดผ่าน array • Array mysql_fetch_row(int result);
ฟังก์ชันของภาษา PHP ที่สนับสนุน MySQL • mysql_fetch_name – เป็นการหาชื่อ field • String mysql_fetch_name(string result, int I); • mysql_field_seek – เป็นการกำหนดค่า offset ของ field • Int mysql_field_seek(int result, int field_offset); • mysql_field_table – เป็นการใส่ชื่อตารางให้ field • Int Mysql_field_table(void);
ฟังก์ชันของภาษา PHP ที่สนับสนุน MySQL • Mysql_field_type – เป็นการใส่ชนิดของ field • String Mysql_field_type(string result, int i); • mysql_field_flags – เป็นการหาค่า field flags • String mysql_field_flags(string result, int i);