การใช้ฐานข้อมูลที่ถูกต้อง
เมื่อมาถึงขั้นตอนนี้ ให้เข้าสู่ระบบในระดับผู้ใช้ MySQL เพื่อเตรียมทดสอบคำสั่งตัวอย่าง ทั้งจากการตั้งค่าเอง หรือผู้บริหารระบบตั้งค่าให้
สิ่งแรกที่ต้องทำ เมื่อเข้าสู่ระบบ คือ การระบุฐานข้อมูลที่ต้องการให้
mysql > use dbname;
dbname คือ ชื่อฐานข้อมูล
อีกวิธีหนึ่ง คือ ระบุฐานข้อมูลเมื่อเข้าสู่ระบบ
mysql dbname -h hostname u username -p
ตามตัวอย่างนี้ ใช้ฐานข้อมูล widebook
mysql > use widebook;
เมื่อพิมพ์คำสั่งนี้แล้ว MySQL ควรตอบสนองดังนี้
Database changed
ถ้าไม่มีการเลือกฐานข้อมูลก่อน เริ่มต้นทำงาน MySQL จะให้ข่าวสารความผิดพลาด เช่น
ERROR 1046: NO Database Selected
การสร้างตารางข้อมูลของฐานข้อมูล
ขั้นตอนต่อไปหลังจากกำหนดฐานข้อมูล คือ การสร้างตารางข้อมูล ด้วยคำสั่ง CREATE TABLE
รูปแบบทั่วไปของประโยคคำสั่ง CREATE TABLE คือ
CREATE TABLE tablename (columns)
Tablename คือ ชื่อของตารางข้อมูลที่ต้องการสร้าง และ columns คือ ชื่อคอลัมน์ที่แบ่งรายการด้วยเครื่องหมายจุลภาค (,) ในตารางข้อมูล แต่ละคอลัมน์ จะมีชื่อคอลัมน์ตามด้วยประเภทข้อมูล
นี่ คือ schema ของ widebook
Customers ( CustomerID , Name, Address, City)
Orders ( OrderID , CustomerID, Amount, Date)
Books ( ISBN , Author, Title, Price)
Order-Items (OrderID, ISBM, Quantity)
Book-Reviews (ISBN, Review)
รายการคำสั่ง 8.1 แสดงประโยคคำสั่ง SQL สร้างตารางข้อมูลเหล่านี้ ซึ่งสามารถเขียนคำสั่งในไฟล์ SQL และประมวลผลด้วยการเรียกไฟล์ SQL ด้วยการพิมพ์
> mysql -h host -u wideuser widebook -p < widebook.sql
รายการคำสั่ง 8.1 widebook.sql SQL สำหรับการสร้างตารางของ widebook
CREATE TABLE customers (
customerid int(3) unsigned NOT NULL auto_increment,
name char(30) NOT NULL default '',
address char(40) NOT NULL default '',
city char(20) NOT NULL default '',
PRIMARY KEY (customerid)
);
CREATE TABLE orders (
orderid int( 3) unsigned NOT NULL auto_increment,
customerid int( 3) unsigned NOT NULL default ' 0 ',
amount float( 6 , 2) default ' 0.00 ',
date date NOT NULL default ' 0000-00-00 ',
PRIMARY KEY (orderid)
) ;
CREATE TABLE books (
isbn char( 13) NOT NULL default '',
authors char( 30) default NULL,
title char( 60) default NULL,
price float( 4 , 2) default NULL,
PRIMARY KEY (isbn)
) ;
CREATE TABLE order_items (
orderid int( 3) unsigned NOT NULL default ' 0 ',
isbn char( 13) NOT NULL default '',
quantity tinyint( 3) unsigned default NULL,
PRIMARY KEY (orderid,isbn)
) ;
CREATE TABLE book_reviews (
isbn varchar( 13) NOT NULL default '',
review text,
PRIMARY KEY (isbn)
) ;
|
แต่ละตารางข้อมูล ได้รับการสร้างโดยประโยคคำสั่ง CREATE TABLE ของตัวเลข
ความหมายคีย์เวิร์ดอื่น
NOT NULL หมายความว่า แถวทั้งหมดในตารางข้อมูลต้องมีค่าในคอลัมน์นี้ ถ้าไม่มีการระบุฟิลด์สามารถเป็นค่าว่าง (null)
AUT0_INCREMENT คือ ส่วนการทำงานพิเศษ ที่สามารถใช้กับคอลัมน์จำนวนเต็ม ถ้าปล่อยให้ฟิลด์นี้ว่าง เมื่อมีการเพิ่มแถวเข้าไปยังตารางข้อมูลนั้น MySQL จะสร้างค่าเฉพาะอย่างอัตโนมัติ ค่านี้จะมากกว่าค่ามากที่สุดของคอลัมน์อยู่หนึ่ง โดยมีได้ 1 คอลัมน์ ในแต่ละตารางข้อมูล คอลัมน์ที่ระบุด้วย AUT0_INCREMENT ต้องเป็นดัชนี
PRIMARY KEY ระบุ หลังชื่อคอลัมน์ คอลัมน์นี้ คือ primary สำหรับตารางข้อมูล ข้อมูลในคอลัมน์นี้ต้องเป็นค่าเอกลักษณ์ MySQL จะทำให้คอลัมน์นี้เป็นดัชนีอย่างอัตโนมัติ สังเกตว่า ระบุ customerid ในตาราง customers เป็น primary และใช้เป็น AUT0_INCREMENT ดัชนีอัตโนมัติบน primary key ดูแลดัชนีที่ต้องการโดย AUT0_INCREMENT
การระบุ PRIMARY KEY หลังจากชื่อคอลัมน์ สามารถใช้สำหรับ primany key คอลัมน์เดียว คำสั่ง PRIMARY KEY อยู่ที่ท้ายของประโยคคำสั่ง order_items เป็นอีกรูปแบบ เนื่องจาก primary key สำหรับตารางข้อมูลนี้ ประกอบด้วย 2 คอลัมน์
UNSIGNED หลังประเภทข้อมูล Integer หมายความว่า ค่านี้สามารถเป็นศูนย์หรือค่าบวกเท่านั้น
การดูฐานข้อมูลด้วย SHOW และ DESCRIBE
เข้าสู่ระบบจัดการ MySQL และเรียกฐานข้อมูล Books ด้วยคำสั่ง use การดูตารางข้อมูลในฐานข้อมูลด้วยการพิมพ์
mysql > show tables;
MySQL จะแสดงรายการของตารางข้อมูลในฐานข้อมูล
Tables in widebook |
Book_reviews
Books
Customers
Order_items
Orders
|
5 rows in set (0.06 sec)
การแสดงรายการฐานข้อมูลให้พิมพ์
mysql > show database;
การดูสารสนเทศของตารางข้อมูลเฉพาะ ตัวอย่างเช่น widebook ให้ใช้ DESCRIBE
mysql > describe books;
MySQL จะแสดงสารสนเทศตารางข้อมูลที่สร้างขึ้น
Field |
Type |
Null |
Key |
Default |
Extra |
isbn |
char(13) |
|
PR1 |
|
|
author |
char(30) |
yes |
|
NULL |
|
title |
char(60) |
yes |
|
NULL |
|
price |
float(4,2) |
yes |
|
NULL |
|
4 rows in set (0.05 sec)
คำสั่งเหล่านี้เป็นประโยชน์ ในการให้สารสนเทศของประเภทข้อมูล หรือ แจ้งดึงข้อมูลที่ยังไม่ได้สร้าง
|