Bosszi

รับออกแบบวงจร รับทำวงจรสำหรับ ARDUINO ตามความต้องการ

Currently Viewing Posts in SQL

UNIQUE KEY การกำหนดไม่ให้ข้อมูลในตารางซ้ำกัน

UNIQUE KEY การกำหนดไม่ให้ข้อมูลในตารางซ้ำกัน

$sql = "CREATE TABLE $table_name (
    id int(10) unsigned NOT NULL  AUTO_INCREMENT COMMENT 'เก็บจำนวนงานรัน AUTO',
    numberjob mediumint(6) unsigned NOT NULL COMMENT 'เก็บรหัสงาน 634352', /** UNIQUE ถ้าใส่ข้อมูลที่เหมือนกันจะไม่สามารถเขียนทับได้ */
    brand varchar(25) COMMENT 'เก็บชื่อยี่ห้อตามตาราง',
    PRIMARY KEY  (id),
    UNIQUE KEY numberjob (numberjob) /* ใส่ UNIQUE ที่ฟิล numberjob ข้อมูลในฟิลนี้จะไม่ซ้ำกันถ้ามีการเพิ่มข้อมูลที่เหมือนกันจะไม่สามารถใส่ได้ */       
)";

 

การใช้ ZEROFILL เพิ่มศูนย์ตัวหน้าในฐานข้อมูลอัตโนมัติเพื่อสร้างรหัสสินค้าหรืออื่นๆ

การใช้ ZEROFILL เพิ่มศูนย์ตัวหน้าในฐานข้อมูลอัตโนมัติเพื่อสร้างรหัสสินค้าหรืออื่นๆ

CREATE TABLE int_bosszi_zerofill (					/* สร้างตาราง*/
    a INT(6) UNSIGNED ZEROFILL NOT NULL,   /* กำหนด a ให้มีขนาด 6 หลักและเติมศูนย์ด้านหน้าอัตโนมัติ ด้วย zerofill*/
    b INT(6) UNSIGNED NOT NULL);
    
INSERT INTO int_bosszi_zerofill (a,b) VALUES	/* ใส่ข้อมูลทดลองในฐานข้อมูล*/
(1, 1),
(22, 22),
(333, 333),
(4444, 4444),
(55555, 55555),
(666666, 666666);

SELECT a, b FROM int_bosszi_zerofill;				/* เรียกข้อมูลจากฐานข้อมูลมาดูผลลัพธ์*/

 

a b
000001 1
000022 22
000333 333
0044444 4444
055555 55555
666666 666666

 

SQL บันทึกส่วนตัว

คำสั่งเกี่ยวกับ SQL

SELECT  สำหรับเรียกข้อมูลมาแสดง

  • SELECT * FROM customers;        // เรียกข้อมูลทั้งหมดจากฟิลด์ customers ออกมา
  • SELECT id FROM customers;      // เรียกข้อมูลเฉพาะคอลัมน์ id ออกมา
  • SELECT id,name FROM customers;      // เรียกข้อมูลคอลัมน์ id และ name ออกมาในฟิลด์อาจมีหลายคอลัมน์
  • SELECT id_file AS idtest,filename FROM smf_admin_info_files;   // เปลี่ยนชื่อฟิลด์ที่จะแสดงผลแต่ไม่ไม่กระทบกับฐานข้อมูล
  • SELECT * FROM customers WHERE id = 2 ;    // เรียกข้อมูลเฉพาะคอลัมน์ id ที่  row 2 ออกมา
  • SELECT * FROM customers WHERE name = ‘tarn’ ;    // ไม่ใช่ตัวเลขให้ใช้  ‘  ‘  ครอบด้วย การค้นหาถ้าในฐานข้อมูลมี tarns จะหาไม่เจอต้องให้ตรงกันทุกตัวอักษร
  • SELECT id FROM customers WHERE id = 2 ;     // เรียกข้อมูล row 2 ออกมา เอาเฉพาะคอลัมน์ id และ name เท่านั้น
  • SELECT * FROM smf_members WHERE id_member = 1  AND member_name = ‘admins’ ; // การใช้ AND
  • SELECT * FROM smf_members WHERE member_name = ‘user’  OR member_name = ‘admins’ ; // การใช้ OR
  • SELECT * FROM smf_members ORDER BY email_address; // การจัดเรียงตามชื่อฟิลด์ ในที่นี้จัดเรียงตามฟิลด์ที่ชื่อ email_adderss ถ้าไม่กำหนดมันจะเรียงจากน้อยไปหามาก 0 →a→ก
  • SELECT * FROM smf_members ORDER BY email_address DESC; //  ใส่ DESC จะเรียงจากมากไปหาน้อย มาจากคำว่า descending
  • SELECT * FROM smf_members ORDER BY email_address DESC LIMIT  5;  // จำกัดข้อมูลที่เรียกออกมา 5 row
  • SELECT * FROM smf_members WHERE id_member <= 10; //  ดึงข้อมูล id 1 – 10
  • SELECT * FROM smf_members WHERE id_member >= 10; //  ดึงข้อมูล id 10 เป็นต้นไป
  • SELECT * FROM smf_members WHERE id_member > 10; //  ดึงข้อมูล id 11 เป็นต้นไป
  • SELECT brand FROM wp_jobrepair WHERE NOT brand=’FANUC’ GROUP BY brand ; // ดึงข้อมูลฟิลด์ brand  โดยไม่เอา FANUC
  • SELECT * FROM wp_jobrepair WHERE brand IN(‘samsung’,’fanuc’); // การใช้ IN คือเราต้องการข้อมูลอะไรที่อยู่ในฟิลด์ brand
  • SELECT * FROM wp_jobrepair WHERE brand NOT IN(‘fanuc’); // การใช้ NOT IN คือเราไม่ต้องการข้อมูลอะไรที่อยู่ในฟิลด์ brand
  • SELECT * FROM wp_jobrepair WHERE brand LIKE ‘a%’;  // การค้นหาคำที่ขึ้นต้นด้วยตัว a แล้วตามด้วยอะไรก็ได้( % คือ อะไรก็ได้)
  • SELECT * FROM wp_jobrepair WHERE brand LIKE ‘%c’; // การค้นหาคำที่ลงท้ายด้วยตัว c อะไรขึ้นต้นก็ได้( % คือ อะไรก็ได้)
  • SELECT * FROM wp_jobrepair WHERE brand LIKE ‘%a%‘; // ค้นหาตัวที่มีอักษร a ในคำ ( % คือ อะไรก็ได้)
  • SELECT * FROM wp_jobrepair WHERE brand LIKE ‘f%c’; // ค้นหาคำที่ขึ้นต้นด้วยตัว f และลงท้ายด้วย a
  • SELECT * FROM wp_jobrepair WHERE id BETWEEN 5 AND 10; // ใช้ BETWEEN ค้นหา id 5-10 มาแสดงผล
  • SELECT * FROM wp_jobrepair WHERE NOT id BETWEEN 5 AND 10; // ค้นหาข้อมูลทั้งหมดแต่ไม่เอา id 5-10
  • SELECT * FROM wp_jobrepair WHERE id BETWEEN 1 AND 20 AND brand IN(‘samsung’); // ค้นหา id 5-20 และยี่ห้อ samaung มาแสดงผล
  • SELECT * FROM wp_jobrepair WHERE comment IS NULL; // ค้นหาข้อมูลสินค้าที่ยังไม่กรอกหรือเป็น NULL นั่นเอง
  • SELECT * FROM wp_jobrepair WHERE comment IS NOT NULL; //ค้นหาข้อมูลสินค้าที่มีข้อมูลหรือไม่เป็น NULL นั่นเอง

INSERT สำหรับเพิ่มข้อมูล

  • INSERT INTO wp_jobrepair VALUES (21,111111,’aerw’,’sun’,’445hft’,’5545′,NULL,’ฮาสาด’,2,1,’หมายเหตุ’,current_time(),current_time()); // จำนวนขอมูลชนิดข้อมูลและฟิลด์ จะต้องตรงกัน ตัวไหนที่ไม่มีข้อมูลให้ใส่ NULL ใว้ก่อน ข้อเสียถ้ามีการเปลี่ยนแปลงอะไรเกี่ยวกับฟิลด์ มันจะพังทันที
  • INSERT INTO wp_jobrepair(numberjob,brand,namejob,model,serialjob,picture,descriptionjob,customer_id,typejob,comment,datejob,updatejob)
    VALUES (111111,’aerw’,’sun’,’445hft’,’5545′,NULL,’ฮาสาด’,2,1,’หมายเหตุ’,current_time(),current_time());  // เพิ่มชื่อฟิลด์เข้าไปลดการผิดพลาดในกรณีที่ฟิลด์มีการเปลี่ยนแปลงข้อมูลจะไปลงตรงฟิลด์แน่นอน และใส่ข้อมูลไม่ครบฟิลด์ก็ได้

UPDATE สำหรับแก้ใขข้อมูล

  • UPDATE wp_jobrepair SET numberjob=222222,brand = ‘chang’ WHERE id=22;  // แก้ใขข้อมูล จะต้องมี UPDATE ,SET ,WHERE

DELETE สำหรับลบข้อมูล

  • DELETE FROM wp_jobrepair WHERE id=22; // ลบข้อมูลไอดี 22

Aggregate Functions คือการรวมฟังก์ชัน อื่นๆที่ใช้

  • SELECT COUNT(id_member) FROM smf_members ;  // นับ row id ทั้งหมดที่มี
  • SELECT COUNT(id_member) FROM smf_members WHERE member_name=’admin’; // นับจำนวน row id ว่ามีจำนวนเท่าใหร่ โดยมีเงื่อนใข ค้นหา admin ในฟิลด์ที่ชื่อ member_name ว่ามีจำนวนเท่าใหร่
  • SELECT AVG(numberjob) FROM wp_jobrepair;  // การหาค่าเฉลี่ยของฟิลด์ที่ชื่อ numberjob
  • SELECT SUM(numberjob) FROM wp_jobrepair; // การรวมโดยใช้  SUM
  • SELECT MIN(numberjob) FROM wp_jobrepair;  // การหาค่าน้อยที่สุดด้วย MIN
  • SELECT MAX(numberjob) FROM wp_jobrepair;  // การหาค่าน้อยที่สุดด้วย MAX
  • SELECT COUNT(id),brand FROM wp_jobrepair GROUP BY brand; //การรวมกลุ่มหรือจัดกลุ่มทางข้อมูล นับข้อมูลที่เหมือนกันในฟิลด์ว่ามีเท่าใหร่ เช่น samsung = 4 , sharp = 2 , mitsubishi = 7
  • SELECT COUNT(id) AS idtest ,brand FROM wp_jobrepair GROUP BY brand; // เปลี่ยนชื่อฟิลด์ที่จะแสดง
  • SELECT COUNT(id),brand FROM wp_jobrepair GROUP BY brand ORDER BY brand; // เพิ่มการจัดเรียงจากน้อยไปหามาก
  • SELECT COUNT(id),brand FROM wp_jobrepair GROUP BY brand ORDER BY brand DESC; // เพิ่มการจัดเรียงจากมากไปหาน้อย
  • WHERE ไม่สามารถใช้ได้กับ Aggregate Functions ต้องใช้ HAVING แทน
  • SELECT COUNT(id),brand FROM wp_jobrepair GROUP BY brand HAVING COUNT(id) >=5 ORDER BY brand ; // เอาเฉพาะ id ที่ไม่เกิน 5 วิธีใช้ต้องอยู่หลัง GROUP BY

การเรียงลำดับคำสั่งพื้นฐาน SQL

  • SELECT คำสั่งในการดึงข้อมูลทั้งหมด หรือเฉพาะคอลัมน์
  • FROM  ดึงข้อมูลทั้งหมดในตาราง
  • GROUP BY  การ Sort ข้อมูลตามคอลัมน์
  • HAVING เลือกข้อมูลต่อจาก GROUP BY
  • ORDER BY  จัดเรียงตามฟิลด์ไหน มีเงื่อนใขด้วยไหม
  • LIMIT จำกัดจำนวนข้อมูล

การเชื่อมโยงตารางข้อมูล

  • การ JOIN ตาราง คือการเชื่อมข้อมูลที่มากกว่า 2 ตารางขึ้นไป
  • เรื่องล่าสุด

  • คลังเก็บ

  • บันทึกส่วนตัว