อันที่จริง เป็นไปไม่ได้ที่จะเตรียมคำสั่ง SQL ทั้งหมดเนื่องจาก MySQL อนุญาตเฉพาะคำสั่ง SQL ประเภทต่อไปนี้ที่สามารถเตรียมได้:
คำสั่ง SELECT
ตัวอย่าง
mysql> PREPARE stmt FROM 'SELECT tender_value from Tender WHERE Companyname = ?'; Query OK, 0 rows affected (0.09 sec) Statement prepared mysql> SET @A = 'Singla Group.'; Query OK, 0 rows affected (0.00 sec) mysql> EXECUTE stmt using @A; +--------------+ | tender_value | +--------------+ | 220.255997 | +--------------+ 1 row in set (0.07 sec) mysql> DEALLOCATE PREPARE stmt; Query OK, 0 rows affected (0.00 sec)
แทรก แทนที่ อัปเดต และลบ
คำสั่งที่แก้ไขข้อมูล
ตัวอย่าง
mysql> PREPARE stmt1 FROM 'DELETE from Tender WHERE Sr = ?'; Query OK, 0 rows affected (0.00 sec) Statement prepared mysql> SET @A = 4; Query OK, 0 rows affected (0.00 sec) mysql> EXECUTE stmt1; ERROR 1210 (HY000): Unknown error 1210 mysql> EXECUTE stmt1 using @A; Query OK, 1 row affected (0.08 sec) mysql> DEALLOCATE PREPARE stmt1; Query OK, 0 rows affected (0.00 sec) mysql> Select * from tender; +----+---------------+--------------+ | Sr | CompanyName | Tender_value | +----+---------------+--------------+ | 1 | Abc Corp. | 250.369003 | | 2 | Khaitan Corp. | 265.588989 | | 3 | Singla group. | 220.255997 | +----+---------------+--------------+ 3 rows in set (0.00 sec)
คำสั่งสร้างตาราง
ตัวอย่าง
mysql> PREPARE stmt3 FROM 'CREATE TABLE Student(Id INT, Name Varchar(20))'; Query OK, 0 rows affected (0.00 sec) Statement prepared mysql> EXECUTE stmt3; Query OK, 0 rows affected (0.73 sec) mysql> DEALLOCATE PREPARE stmt3; Query OK, 0 rows affected (0.00 sec)
SET, DO และคำสั่ง SHOW มากมาย
ตัวอย่าง
mysql> PREPARE stmt10 FROM 'SHOW TABLES'; Query OK, 0 rows affected (0.00 sec) Statement prepared mysql> EXECUTE stmt10; +-------------------+ | Tables_in_query | +-------------------+ | emp | | emp123 | | emp_t | | examination_btech | | new_number | | student | | student_detail | | student_info | | tender | | website | +-------------------+ 10 rows in set (0.00 sec)