วันเสาร์ที่ 6 ธันวาคม พ.ศ. 2557

คำสั่งเอสคิวแอล (SQL Command)

6. คำสั่งเอสคิวแอล (SQL Command)
- ระเบียน (Records) มักหลายถึงบรรทัด เช่นตารางพนักงาน 100 คน มักหมายถึง 100 ระเบียน
- เขตข้อมูล (Fields) มักหมายถึงหลัก เช่นตารางพนักงาน เก็บรหัส ชื่อ และเงินเดือน จะหมายถึง 3 เขตข้อมูล
- กดปุ่ม ลูกศรขึ้น สามารถเรียกคำสั่งเก่ามาทำงาน เหมือน Doskey ใน DOS

ex.601
เข้าสู่ MySQL Command Line
C:\>cd c:\thaiabc\mysql\bin
C:\thaiabc\mysql\bin> mysql -u root -p
enter
mysql> help;
mysql> \s
mysql> quit;
ตัวอย่างผลลัพธ์ หรืออธิบาย
# ตัวอย่างนี้ มี user คือ root และรหัสผ่านว่างไว้
# แสดงส่วนช่วยเหลือ
# แสดงสถานะ เช่นรุ่นของ MySQL หรือเวลาที่เปิดบริการ MySQL
# เลิกการทำงาน
# ตัวอย่างนี้จะใช้ได้ ถ้า Start MySQL ไว้แล้ว
# ตัวอย่างนี้ใช้โปรแกรม thaiabc4b จาก thaiabc.com

ex.602
สร้าง แสดง และเข้าฐานข้อมูล
mysql> create database oho;
mysql> show databases;
mysql> use oho;
ตัวอย่างผลลัพธ์ หรืออธิบาย
| Database |
+----------+
| mysql    |
| oho      |
| test     |
# สร้างฐานข้อมูลใหม่ชื่อ oho
# แสดงรายชื่อฐานข้อมูล
# ถ้าไม่เข้าฐานข้อมูล จะใช้คำสั่งจัดการตารางไม่ได้

ex.603
สร้างตารางไว้เก็บข้อมูล
mysql> create table wow1(
    ->xid int ,
    ->xname  varchar(50),
    ->xsalary  double
    ->);
mysql> create table w(w1 int, w2 int);
mysql> show tables;
ตัวอย่างผลลัพธ์ หรืออธิบาย
# แบบของ Field หรือ Data Type ของ mysql
ที่พบใน phpmyadmin มี 27 แบบ ได้แก่ VARCHAR TINYINT TEXT DATE SMALLINT MEDIUMINT INT BIGINT FLOAT DOUBLE DECIMAL DATETIME TIMESTAMP TIME YEAR CHAR TINYBLOB TINYTEXT BLOB MEDIUMBLOB MEDIUMTEXT LONGBLOB LONGTEXT ENUM SET BINARY VARBINARY
# อาจพิมพ์หลายบรรทัด หรือบรรทัดเดียวก็ได้
# แสดงรายชื่อตาราง เพื่อดูว่าสร้างสำเร็จหรือไม่

ex.604
เพิ่มหลายระเบียน และอ่านมาแสดง
mysql> insert into w values(1,10);
mysql> insert into w values(1,10);
mysql> insert into w values(1,10);
mysql> select * from w;
ตัวอย่างผลลัพธ์ หรืออธิบาย
# เพิ่มข้อมูลเหมือนกันได้ เพราะไม่ใช่ primary key
# ถ้าไม่ต้องการให้รับข้อมูลซ้ำกันต้องกำหนดเป็น primary key
# สามารถกำหนดต่อท้าย Data type ได้หลายแบบ
# 1. primary key not null auto_increment
# 2. primary key auto_increment
# 3. primary key
# auto_increment ใช้ mysql> insert into w values('',10);

ex.605
เพิ่มหนึ่งระเบียนหลายเขตข้อมูล
mysql> insert into wow1 values(
    ->1,
    ->"boy",
    ->5000);
mysql> select xid,xname from wow1;
ตัวอย่างผลลัพธ์ หรืออธิบาย
# ตัวอย่างมี 4 บรรทัด แต่สามารถพิมพ์ให้จบใน 1 บรรทัดได้
# เลือกข้อมูลมาแสดงเพียง 2 เขตข้อมูล

ex.606
เลือกข้อมูลได้หลายแบบ
mysql> select count(xid) from wow1;
mysql> select sum(xsalary) from wow1;
mysql> select max(xid) from wow1;
mysql> select min(xid) from wow1;
mysql> select avg(xid) from wow1;
ตัวอย่างผลลัพธ์ หรืออธิบาย
# ใช้ฟังก์ชัน หาจำนวนระเบียน
# ใช้ฟังก์ชัน หาผลรวมเงินเดือน
# ใช้ฟังก์ชัน หาเงินเดือนสูงสุด
# ใช้ฟังก์ชัน หาเงินเดือนต่ำสุด
# ใช้ฟังก์ชัน หาค่าเฉลี่ยเงินเดือน

ex.607
เลือกแบบมีเงือนไข
mysql> select * from wow1 where xid=1;
mysql> select * from w order by w2 desc;
mysql> show columns from wow1;
ตัวอย่างผลลัพธ์ หรืออธิบาย
# เลือกเฉพาะที่ xid = 1
# อ่านมาแสดงทั้งหมด แต่เรียงตาม w2 จากมากไปน้อย
# แสดงรายชื่อ Column หรือเขตข้อมูลในตาราง wow1

ex.608
การลบระเบียน ลบตาราง หรือลบฐานข้อมูล
mysql> delete from wow1 where xid=1;
mysql> delete from wow1;
mysql> drop table wow1;
mysql> drop database oho;
ตัวอย่างผลลัพธ์ หรืออธิบาย
# ลบระเบียนที่ xid = 1
# ลบทุกระเบียนในตาราง ชื่อ wow1
# ลบตาราง ชื่อ wow1
# ลบฐานข้อมูล ชื่อ oho


ex.609
ปรับปรุงข้อมูล
mysql> update wow1 set xname="tom"
    ->where xid=1;
mysql> update wow1 set
    ->xname="tom",
    ->xsalary=3000
    ->where xid=2;
mysql> update w set w2=5;
ตัวอย่างผลลัพธ์ หรืออธิบาย
# ปรับปรุงตามเงื่อนไข เพียง 1 เขตข้อมูล
# ปรับปรุงตามเงื่อนไข จำนวน 2 เขตข้อมูล
# ปรับปรุงทุกระเบียน