MySQL on Ubuntu
จากบทความก่อนหน้า ได้เขียนอธิบายวิธีการติดตั้ง SQLite3 บน Ubuntu ไปแล้วนั้น ในบทความนี้ก็จะกล่าวถึงการติดตั้ง MySQL Server บน Ubuntu และวิธีการใช้งาน
ขั้นแรก
อัพเดท Ubuntu's Advanced Packaging Tool (APT) โดยใช้คำสั่ง
sudo apt update
ขั้นที่สอง
ติดตั้ง MySQL โดยใช้คำสั่ง
sudo apt install mysql-server
ขั้นที่สาม
ตั้งค่า Initialize ของ MySQL โดยใช้คำสั่ง
sudo mysql_secure_installationโดยหลังจากใช้คำสั่งนี้ ก็จะมีคำถามหลายคำถามขึ้นมา เช่น การตั้ง Password ของ root user
ทดสอบ MySQL Server
เราสามารถเปิด SQL prompt ได้โดยใช้คำสั่ง
sudo mysql
การสร้าง Database Book, Author, Publisher บน MySQL
ขั้นตอนแรก
ทำการสร้าง Database โดยใช้คำสั่ง
mysql> CREATE DATABASE BAP;เมื่อสร้างสำเร็จ ก็ทำการเลือกใช้ Database ที่เพิ่งสร้าง
mysql> USE BAP;
ขั้นตอนที่สอง สร้าง Table ของ Publisher
โดยใช้คำสั่งจากบทความที่แล้วได้เลย ก็คือ
mysql> CREATE TABLE publisher (publisher_id INTEGER PRIMARY KEY AUTO_INCREMENT, publisher_name TEXT NOT NULL, location TEXT NOT NULL, publisher_tel TEXT NOT NULL);ถ้าหากเราใช้ MySQL นั้น ในส่วน field ของ Auto Increment นั้นจะต้องใช้แบบนี้เท่านั้น
AUTO_INCREMENTต่างจากที่ใช้ใน SQLite ก็คือ AUTOINCREMENT
ขั้นตอนที่สาม สร้าง Table ของ Author
mysql> CREATE TABLE author (author_id INTEGER PRIMARY KEY AUTO_INCREMENT, author_name TEXT NOT NULL, author_address TEXT, author_tel TEXT, publisher_id INTEGER NOT NULL, FOREIGN KEY(publisher_id) REFERENCES publisher(publisher_id));
ขั้นตอนที่สี่ สร้าง Table ของ Book
mysql> CREATE TABLE book (book_id INTEGER PRIMARY KEY AUTO_INCREMENT, book_name TEXT NOT NULL, release_date TEXT NOT NULL, copy INTEGER NOT NULL, publisher_id INTEGER, FOREIGN KEY(publisher_id) REFERENCES publisher(publisher_id));
ขั้นตอนที่ห้า สร้าง Table ของ Book_Author (M:N Relationship)
mysql> CREATE TABLE book_author (book_id INTEGER, author_id INTEGER, FOREIGN KEY(book_id) REFERENCES book(book_id),FOREIGN KEY(author_id) REFERENCES author(author_id));
ขั้นตอนสุดท้าย เพิ่มข้อมูลในแต่ละ Table
Table - Publishermysql> INSERT INTO publisher (publisher_name, location, publisher_tel) VALUES ("Pearson Education Limited", "United Kingdom", "020 7010 2336");
mysql> INSERT INTO publisher (publisher_name, location, publisher_tel) VALUES ("Mcgraw-hill International Enterprises", "United States", "212-904-2078");
mysql> INSERT INTO publisher (publisher_name, location, publisher_tel) VALUES ("Mcgraw-hill International Enterprises", "United States", "212-904-2078");Table - Book
mysql> INSERT INTO book (book_name, release_date, copy, publisher_id) VALUES ("Computer Organization and Architecture", "2013", "9", 2);
mysql> INSERT INTO book (book_name, release_date, copy, publisher_id) VALUES ("Concepts of Programming Languages", "2013", "10", 2);
mysql> INSERT INTO book (book_name, release_date, copy, publisher_id) VALUES ("Programming the World Wide Web", "2013", "7", 2);
mysql> INSERT INTO book (book_name, release_date, copy, publisher_id) VALUES ("The Intel Microprocessors : Architecture, Programmi", "2008", "8", 2);
mysql> INSERT INTO book (book_name, release_date, copy, publisher_id) VALUES ("Management", "2015", "13", 2);
mysql> INSERT INTO book (book_name, release_date, copy, publisher_id) VALUES ("Aircraft Basic Science", "2013", "8", 3);
mysql> INSERT INTO book (book_name, release_date, copy, publisher_id) VALUES ("Essentials of Corporate Finance", "2002", "3", 3);
mysql> INSERT INTO book (book_name, release_date, copy, publisher_id) VALUES ("Egypt in Spectacular Cross-Section", "2005", "1", 3);
mysql> INSERT INTO book (book_name, release_date, copy, publisher_id) VALUES ("Fundamentals of Corporate Finance Alternate Edition 9ED (P)", "2010", "9", 3);
mysql> INSERT INTO book (book_name, release_date, copy, publisher_id) VALUES ("Corporate Finance : Corporate Principles", "2007", "1", 3);Table - Author
mysql> INSERT INTO author (author_name, author_address, publisher_id) VALUES ("William Stallings", "USA", 2);
mysql> INSERT INTO author (author_name, author_address, publisher_id) VALUES ("Robert W. Sebesta", "Colorado", 2);
mysql> INSERT INTO author (author_name, author_address, publisher_id) VALUES ("Barry B. Brey", "USA", 2);
mysql> INSERT INTO author (author_name, author_address, publisher_id) VALUES ("Stephen P. Robbins", "USA", 2);
mysql> INSERT INTO author (author_name, author_address, publisher_id) VALUES ("Michael J Kroes", "USA", 3);
mysql> INSERT INTO author (author_name, author_address, publisher_id) VALUES ("Stephen A. Ross", "USA", 3);Table - Book Author
mysql> INSERT INTO book_author (book_id, author_id) VALUES (1, 1) -- Computer Organization and Architecture, William Stallings;
mysql> INSERT INTO book_author (book_id, author_id) VALUES (2,2) -- Concepts of Programming Languages, Robert W. Sebesta;
mysql> INSERT INTO book_author (book_id, author_id) VALUES (3,2) -- Programming the World Wide Web, Robert W. Sebesta;
mysql> INSERT INTO book_author (book_id, author_id) VALUES (4,3) -- The Intel Microprocessors : Architecture, Programmi, Barry B. Brey;
mysql> INSERT INTO book_author (book_id, author_id) VALUES (5,4) -- Management, Stephen P. Robbins;
mysql> INSERT INTO book_author (book_id, author_id) VALUES (6,5) -- Aircraft Basic Science, Michael J Kroes;
mysql> INSERT INTO book_author (book_id, author_id) VALUES (7,6) -- Essentials of Corporate Finance, Stephen A. Ross;
mysql> INSERT INTO book_author (book_id, author_id) VALUES (8,6) -- Egypt in Spectacular Cross-Section, Stephen A. Ross;
mysql> INSERT INTO book_author (book_id, author_id) VALUES (9,6) -- Fundamentals of Corporate Finance Alternate Edition 9ED (P), Stephen A. Ross;
mysql> INSERT INTO book_author (book_id, author_id) VALUES (10,6) -- Corporate Finance : Corporate Principles, Stephen A. Ross;
การทดสอบ Query ข้อมูล
- ข้อมูลทั้งหมดของ Book
mysql> SELECT * FROM book;ผลลัพธ์ที่ได้
- ข้อมูลทั้งหมดของ Author
mysql> SELECT * FROM author;ผลลัพธ์ที่ได้
- ข้อมูลทั้งหมดของ Publisher
mysql> SELECT * FROM publisher;ผลลัพธ์ที่ได้
- ข้อมูลทั้งหมดของ Book Author
mysql> SELECT * FROM book_author;ผลลัพธ์ที่ได้
= คำถาม =
Can use the same command from SQLite?
ตอบ สามารถใช้ได้เกือบทั้งหมด แต่ว่าคำสั่งจาก MySQL จะมีให้ใช้เยอะกว่าและมี Data Types ให้เลือกใช้ได้เยอะกว่า
What changes are needed?
ตอบ เช่นคำสั่ง AUTOINCREMENT ของ SQLite จะต้องเปลี่ยนเป็น AUTO_INCREMENT
ไม่มีความคิดเห็น:
แสดงความคิดเห็น