วิธีการเขียนแบบสอบถามง่าย ๆ

เผยแพร่แล้ว: 2022-03-21

เคยได้ยินเกี่ยวกับ SQL? คุณอาจเคยได้ยินเกี่ยวกับเรื่องนี้ในบริบทของการวิเคราะห์ข้อมูล แต่ไม่เคยคิดว่าจะนำไปใช้กับคุณในฐานะนักการตลาด หรือคุณอาจเคยคิดว่า “สำหรับผู้ใช้ข้อมูลขั้นสูง ฉันไม่สามารถทำอย่างนั้นได้”

ไม่ผิดไปกว่านี้แล้ว! นักการตลาดที่ประสบความสำเร็จมากที่สุดขับเคลื่อนด้วยข้อมูล และส่วนที่สำคัญที่สุดอย่างหนึ่งของการขับเคลื่อนด้วยข้อมูลคือการรวบรวมข้อมูลจากฐานข้อมูลอย่างรวดเร็ว SQL เป็นเครื่องมือที่ได้รับความนิยมมากที่สุดสำหรับการทำเช่นนั้น

หากบริษัทของคุณจัดเก็บข้อมูลในฐานข้อมูลแล้ว คุณอาจต้องเรียนรู้ SQL เพื่อเข้าถึงข้อมูล แต่ไม่ต้องกังวล คุณมาถูกที่แล้วในการเริ่มต้น กระโดดเข้าไปเลย

ดาวน์โหลด 10 เทมเพลต Excel สำหรับนักการตลาด [ชุดฟรี]

ทำไมต้องใช้ SQL?

SQL (มักจะออกเสียงว่า “ภาคต่อ”) ย่อมาจาก Structured Query Language และมันถูกใช้เมื่อบริษัทต่างๆ มีข้อมูลมากมายที่พวกเขาต้องการจะจัดการ ข้อดีของ SQL คือทุกคนที่ทำงานในบริษัทที่จัดเก็บข้อมูลในฐานข้อมูลเชิงสัมพันธ์สามารถใช้ได้ (และมีโอกาสเป็นของคุณ)

ตัวอย่างเช่น หากคุณทำงานให้กับบริษัทซอฟต์แวร์และต้องการดึงข้อมูลการใช้งานจากลูกค้าของคุณ คุณสามารถทำได้ด้วย SQL หากคุณกำลังช่วยพัฒนาเว็บไซต์สำหรับบริษัทอีคอมเมิร์ซที่มีข้อมูลเกี่ยวกับการซื้อของลูกค้า คุณสามารถใช้ SQL เพื่อค้นหาว่าลูกค้ารายใดกำลังซื้อผลิตภัณฑ์ใด แน่นอนว่านี่เป็นเพียงส่วนน้อยของการใช้งานที่เป็นไปได้มากมาย

ลองคิดแบบนี้: คุณเคยเปิดชุดข้อมูลขนาดใหญ่มากใน Excel เพื่อให้คอมพิวเตอร์ของคุณหยุดทำงานหรือปิดเครื่องเท่านั้นหรือไม่ SQL ช่วยให้คุณเข้าถึงข้อมูลได้เพียงบางส่วนในแต่ละครั้ง คุณจึงไม่ต้องดาวน์โหลดข้อมูลทั้งหมดลงใน CSV จัดการข้อมูล และอาจโอเวอร์โหลด Excel กล่าวอีกนัยหนึ่ง SQL จะดูแลการวิเคราะห์ข้อมูลที่คุณอาจคุ้นเคยกับการทำใน Excel

วิธีการเขียนแบบสอบถาม SQL อย่างง่าย

ก่อนที่เราจะเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมีแอปพลิเคชันการจัดการฐานข้อมูลที่จะช่วยให้คุณสามารถดึงข้อมูลจากฐานข้อมูลของคุณได้ บางตัวเลือกรวมถึง MySQL หรือ Sequel Pro

เริ่มต้นด้วยการดาวน์โหลดหนึ่งในตัวเลือกเหล่านี้ จากนั้นพูดคุยกับแผนก IT ของบริษัทของคุณเกี่ยวกับวิธีการเชื่อมต่อกับฐานข้อมูลของคุณ ตัวเลือกที่คุณเลือกจะขึ้นอยู่กับส่วนหลังของผลิตภัณฑ์ ดังนั้นโปรดตรวจสอบกับทีมผลิตภัณฑ์เพื่อให้แน่ใจว่าคุณได้เลือกตัวเลือกที่ถูกต้อง

ทำความเข้าใจลำดับชั้นของฐานข้อมูลของคุณ

ต่อไป การทำความคุ้นเคยกับฐานข้อมูลและลำดับชั้นของคุณเป็นสิ่งสำคัญ หากคุณมีฐานข้อมูลหลายฐานข้อมูล คุณจะต้องเน้นที่ตำแหน่งของข้อมูลที่คุณต้องการใช้งาน

ตัวอย่างเช่น สมมติว่าเรากำลังทำงานกับหลายฐานข้อมูลเกี่ยวกับผู้คนในสหรัฐอเมริกา ป้อนแบบสอบถาม "แสดงฐานข้อมูล;" ผลลัพธ์อาจแสดงว่าคุณมีฐานข้อมูลสองแห่งสำหรับสถานที่ต่างๆ รวมถึงฐานข้อมูลสำหรับนิวอิงแลนด์

ภายในฐานข้อมูลของคุณ คุณจะมีตารางต่างๆ ที่มีข้อมูลที่คุณต้องการใช้งาน จากตัวอย่างข้างต้น สมมติว่าเราต้องการค้นหาว่าข้อมูลใดอยู่ในฐานข้อมูลใดฐานข้อมูลหนึ่ง หากเราใช้ข้อความค้นหา “SHOW TABLES in NewEngland;” เราจะพบว่าเรามีตารางสำหรับแต่ละรัฐในนิวอิงแลนด์: people_connecticut, people_maine, people_massachusetts, people_newhampshire, people_rhodeisland และ people_vermont

สุดท้าย คุณต้องค้นหาว่าฟิลด์ใดอยู่ในตาราง เขตข้อมูลคือส่วนข้อมูลเฉพาะที่คุณสามารถดึงจากฐานข้อมูลของคุณ ตัวอย่างเช่น หากคุณต้องการดึงที่อยู่ของใครบางคน ชื่อฟิลด์อาจไม่ใช่แค่ "ที่อยู่" แต่อาจถูกแยกออกเป็น address_city, address_state, address_zip หากต้องการทราบสิ่งนี้ ให้ใช้ข้อความค้นหา “Describe people_massachusetts;” ซึ่งจะแสดงรายการข้อมูลทั้งหมดที่คุณสามารถดึงโดยใช้ SQL

มาทบทวนลำดับชั้นอย่างรวดเร็วโดยใช้ตัวอย่างนิวอิงแลนด์ของเรา:

  • ฐานข้อมูลของเราคือ: นิวอิงแลนด์
  • ตารางของเราภายในฐานข้อมูลนั้น ได้แก่ people_connecticut, people_maine, people_massachusetts, people_newhampshire, people_rhodeisland และ people_vermont
  • ช่องข้อมูลของเราในตาราง people_massachusetts ได้แก่ address_city, address_state, address_zip, hair_color, อายุ, ชื่อจริง และนามสกุล

ตอนนี้ มาเขียนคำสั่ง SQL ง่ายๆ เพื่อดึงข้อมูลจากฐานข้อมูล NewEngland ของเรา

แบบสอบถาม SQL พื้นฐาน

หากต้องการเรียนรู้วิธีเขียนแบบสอบถาม SQL ให้ใช้ตัวอย่างต่อไปนี้:

ใครคือผู้ที่มีผมสีแดงในรัฐแมสซาชูเซตส์และเกิดในปี 2546 โดยเรียงตามตัวอักษร?

เลือก

SELECT เลือกฟิลด์ที่คุณต้องการให้แสดงในแผนภูมิของคุณ นี่คือข้อมูลเฉพาะที่คุณต้องการดึงจากฐานข้อมูลของคุณ ในตัวอย่างข้างต้น เราต้องการค้นหา บุคคล ที่มีคุณสมบัติตรงตามเกณฑ์ที่เหลือ

นี่คือแบบสอบถาม SQL ของเรา:

เลือก

ชื่อจริง,

นามสกุล

;

จาก

FROM ระบุตารางที่คุณต้องการดึงข้อมูล ในส่วนก่อนหน้านี้ เราได้เรียนรู้ว่ามีหกตารางสำหรับแต่ละรัฐในหกรัฐในนิวอิงแลนด์: people_connecticut, people_maine, people_massachusetts, people_newhampshire, people_rhodeisland และ people_vermont เนื่องจากเรากำลังมองหาผู้คนในแมสซาชูเซตส์โดยเฉพาะ เราจะดึงข้อมูลจากตารางนั้นโดยเฉพาะ

นี่คือแบบสอบถาม SQL ของเรา:

เลือก

ชื่อจริง,

นามสกุล

จาก

people_massachusetts

;

ที่ไหน

WHERE ช่วยให้คุณกรองข้อความค้นหาให้เจาะจงมากขึ้นได้ ในตัวอย่างของเรา เราต้องการกรองข้อความค้นหาของเราให้รวมเฉพาะผู้ที่มีผมสีแดงที่เกิดในปี 2546 มาเริ่มกันที่ตัวกรองผมสีแดงกัน

นี่คือแบบสอบถาม SQL ของเรา:

เลือก

ชื่อจริง,

นามสกุล

จาก

people_massachusetts

ที่ไหน

hair_color=”สีแดง”

;

hair_color อาจเป็นส่วนหนึ่งของคำสั่ง SELECT เริ่มต้นของคุณ หากคุณต้องการดูผู้คนในแมสซาชูเซตส์พร้อมกับสีผมของพวกเขา แต่ถ้าคุณต้องการกรองให้เห็น เฉพาะ คนที่มีผมสีแดง คุณสามารถทำได้โดยใช้คำสั่ง WHERE

ระหว่าง

นอกจากเท่ากับ (=) BETWEEN เป็นโอเปอเรเตอร์อื่นที่คุณสามารถใช้สำหรับการค้นหาแบบมีเงื่อนไข คำสั่ง BETWEEN เป็นจริงสำหรับค่าที่อยู่ระหว่างค่าต่ำสุดและค่าสูงสุดที่ระบุ

ในกรณีของเรา เราสามารถใช้ BETWEEN เพื่อดึงบันทึกจากปีใดปีหนึ่ง เช่น 2003 ต่อไปนี้คือข้อความค้นหา:

เลือก

ชื่อจริง,

นามสกุล

จาก

people_massachusetts

ที่ไหน

birth_date ระหว่าง '2003-01-01' และ '2003-12-31'

;

และ

AND ให้คุณเพิ่มเกณฑ์เพิ่มเติมในคำสั่ง WHERE ของคุณ โปรดจำไว้ว่า เราต้องการกรองตามผู้ที่มีผมสีแดงนอกเหนือจากคนที่เกิดในปี 2546 เนื่องจากข้อความ WHERE ของเราใช้เกณฑ์ผมสีแดง เราจะกรองตามปีเกิดที่เฉพาะเจาะจงด้วยได้อย่างไร

นั่นคือที่มาของคำสั่ง AND ในกรณีนี้ คำสั่ง AND เป็นคุณสมบัติวันที่ — แต่ไม่จำเป็นต้องเป็นเช่นนั้นเสมอไป (หมายเหตุ: ตรวจสอบรูปแบบวันที่ของคุณกับทีมผลิตภัณฑ์เพื่อให้แน่ใจว่าอยู่ในรูปแบบที่ถูกต้อง)

นี่คือแบบสอบถาม SQL ของเรา:

เลือก

ชื่อจริง,

นามสกุล

จาก

people_massachusetts

ที่ไหน

hair_color=”สีแดง”

และ

birth_date ระหว่าง '2003-01-01' และ '2003-12-31'

;

หรือ

OR สามารถใช้กับคำสั่ง WHERE ได้เช่นกัน ด้วย AND เงื่อนไขทั้งสองจะต้องเป็นจริงจึงจะปรากฏในผลลัพธ์ (เช่น สีผมต้องเป็นสีแดงและต้องเกิดในปี 2546) ด้วย OR เงื่อนไขอย่างใดอย่างหนึ่งจะต้องเป็นจริงจึงจะปรากฎในผลลัพธ์ (เช่น สีผมต้องเป็นสีแดง หรือ ต้องเกิดในปี 2546)

นี่คือสิ่งที่คำสั่ง OR ใช้งานจริง:

เลือก

ชื่อจริง,

นามสกุล

จาก

people_massachusetts

ที่ไหน

hair_color = 'สีแดง'

หรือ

birth_date ระหว่าง '2003-01-01' และ '2003-12-31'

;

ไม่

NOT ใช้ในคำสั่ง WHERE เพื่อแสดงค่าที่เงื่อนไขที่ระบุไม่เป็นความจริง หากเราต้องการดึงชาวแมสซาชูเซตส์ทั้งหมดที่ ไม่มี ผมสีแดง เราสามารถใช้แบบสอบถามต่อไปนี้:

เลือก

ชื่อจริง,

นามสกุล

จาก

people_massachusetts

ที่ไหนไม่ได้

hair_color = 'สีแดง'

;

สั่งโดย

การคำนวณและการจัดระเบียบสามารถทำได้ภายในแบบสอบถาม นั่นคือที่มาของฟังก์ชัน ORDER BY และ GROUP BY อันดับแรก เราจะดูการสืบค้น SQL ของเราด้วยฟังก์ชัน ORDER BY แล้วตามด้วย GROUP BY จากนั้น เราจะมาดูความแตกต่างระหว่างทั้งสองอย่างคร่าวๆ

คำสั่งย่อย ORDER BY ให้คุณจัดเรียงตามฟิลด์ใดๆ ที่คุณระบุไว้ในคำสั่ง SELECT ในกรณีนี้ให้เรียงลำดับตามนามสกุล

นี่คือแบบสอบถาม SQL ของเรา:

เลือก

ชื่อจริง,

นามสกุล

จาก

people_massachusetts

ที่ไหน

hair_color = 'สีแดง'

และ

birth_date ระหว่าง '2003-01-01' และ '2003-12-31'

สั่งโดย

นามสกุล

;

จัดกลุ่มโดย

GROUP BY คล้ายกับ ORDER BY แต่รวบรวมข้อมูลที่มีความคล้ายคลึงกัน ตัวอย่างเช่น หากคุณมีข้อมูลที่ซ้ำกัน คุณสามารถใช้ GROUP BY เพื่อนับจำนวนรายการที่ซ้ำกันในช่องของคุณ

นี่คือแบบสอบถาม SQL ของคุณ:

เลือก

ชื่อจริง,

นามสกุล

จาก

people_massachusetts

ที่ไหน

hair_color = 'สีแดง'

และ

birth_date ระหว่าง '2003-01-01' และ '2003-12-31'

จัดกลุ่มโดย

นามสกุล

;

เรียงลำดับตาม จัดกลุ่มโดย

ในการแสดงความแตกต่างระหว่างคำสั่ง ORDER BY และคำสั่ง GROUP BY ให้ก้าวนอกตัวอย่างในแมสซาชูเซตส์ของเราโดยสังเขปเพื่อดูชุดข้อมูลที่เรียบง่าย ด้านล่างเป็นรายการหมายเลขประจำตัวพนักงานและชื่อพนักงานสี่คน

a table of four names and IDs as a result of sql queries

หากเราใช้คำสั่ง ORDER BY ในรายการนี้ ชื่อของพนักงานจะถูกจัดเรียงตามลำดับตัวอักษร ผลลัพธ์จะมีลักษณะดังนี้:

a table of four names and IDs as a result of sql queries with the name Peter appearing twice at the bottom

หากเราใช้คำสั่ง GROUP BY แทน พนักงานจะถูกนับตามจำนวนครั้งที่ปรากฏในตารางเริ่มต้น สังเกตว่าปีเตอร์ปรากฏตัวสองครั้งในตารางเริ่มต้น ดังนั้นผลลัพธ์จะเป็นดังนี้:

sql query examples: a table of three names and IDs

กับฉันจนถึงตอนนี้? โอเค กลับไปที่แบบสอบถาม SQL ที่เราสร้างขึ้นเกี่ยวกับคนผมแดงในแมสซาชูเซตส์ที่เกิดในปี 2546

LIMIT

ขึ้นอยู่กับปริมาณข้อมูลที่คุณมีในฐานข้อมูลของคุณ อาจใช้เวลานานในการเรียกใช้แบบสอบถามของคุณ การทำเช่นนี้อาจทำให้คุณหงุดหงิดใจ โดยเฉพาะอย่างยิ่งหากคุณได้ทำข้อผิดพลาดในคำถามของคุณ และตอนนี้จำเป็นต้องรอก่อนที่จะดำเนินการต่อ หากคุณต้องการทดสอบการสืบค้น ฟังก์ชัน LIMIT จะให้คุณจำกัดจำนวนผลลัพธ์ที่คุณได้รับ

ตัวอย่างเช่น หากเราสงสัยว่ามีผู้คนหลายพันคนที่มีผมสีแดงในรัฐแมสซาชูเซตส์ เราอาจต้องการทดสอบการสืบค้นข้อมูลของเราโดยใช้ LIMIT ก่อนที่เราจะเรียกใช้ทั้งหมดเพื่อให้แน่ใจว่าเราได้รับข้อมูลที่เราต้องการ สมมติว่าเราต้องการเห็นเฉพาะ 100 คนแรกในผลลัพธ์ของเรา

นี่คือแบบสอบถาม SQL ของเรา:

เลือก

ชื่อจริง,

นามสกุล

จาก

people_massachusetts

ที่ไหน

hair_color = 'สีแดง'

และ

birth_date ระหว่าง '2003-01-01' และ '2003-12-31'

สั่งโดย

นามสกุล

LIMIT

100

;

ใส่ลงใน

นอกจากการดึงข้อมูลจากฐานข้อมูลเชิงสัมพันธ์แล้ว ยังสามารถใช้ SQL เพื่อแก้ไขเนื้อหาของฐานข้อมูลได้อีกด้วย แน่นอน คุณจะต้องมีสิทธิ์ในการเปลี่ยนแปลงข้อมูลบริษัทของคุณ แต่ในกรณีที่คุณมีหน้าที่จัดการเนื้อหาของฐานข้อมูล เราจะแบ่งปันคำถามที่คุณควรรู้

อย่างแรกคือคำสั่ง INSERT INTO ซึ่งใช้สำหรับใส่ค่าใหม่ลงในฐานข้อมูลของคุณ หากเราต้องการเพิ่มบุคคลใหม่ในตารางแมสซาชูเซตส์ เราสามารถทำได้โดยระบุชื่อของตารางที่เราต้องการแก้ไขก่อน และฟิลด์ภายในตารางที่เราต้องการเพิ่ม ต่อไป เราเขียน VALUE ด้วยค่าแต่ละค่าที่เราต้องการเพิ่ม

ข้อความค้นหานั้นอาจมีลักษณะดังนี้:

ใส่ลงใน

people_massachusetts (address_city, address_state, address_zip, hair_color, อายุ, ชื่อจริง, นามสกุล)

ค่านิยม

(เคมบริดจ์, แมสซาชูเซตส์, 02139, สีบลอนด์, 32, เจน, โด)

;

อีกทางหนึ่ง หากคุณกำลังเพิ่มค่าให้กับทุกฟิลด์ในตาราง คุณไม่จำเป็นต้องระบุฟิลด์ ค่าจะถูกเพิ่มลงในคอลัมน์ตามลำดับที่แสดงในแบบสอบถาม

ใส่ลงใน

people_massachusetts

ค่านิยม

(เคมบริดจ์, แมสซาชูเซตส์, 02139, สีบลอนด์, 32, เจน, โด)

;

ถ้าคุณต้องการเพิ่มค่าลงในฟิลด์เฉพาะ คุณต้องระบุฟิลด์เหล่านี้ สมมติว่าเราต้องการแทรกระเบียนที่มีชื่อ first_name, last_name และ address_state เท่านั้น เราสามารถใช้คำค้นหาต่อไปนี้:

ใส่ลงใน

people_massachusetts (ชื่อ, นามสกุล, ที่อยู่_state)

ค่านิยม

(เจน, โด, แมสซาชูเซตส์)

;

อัปเดต

หากคุณต้องการแทนที่ค่าที่มีอยู่ในฐานข้อมูลของคุณด้วยค่าอื่น คุณสามารถใช้ UPDATE จะเกิดอะไรขึ้นถ้ามีคนบันทึกไว้ในฐานข้อมูลว่ามีผมสีแดงในขณะที่พวกเขามีผมสีน้ำตาลจริงๆ เราสามารถอัปเดตบันทึกนี้ด้วยคำสั่ง UPDATE และ WHERE:

อัปเดต

people_massachusetts

ชุด

hair_color = 'สีน้ำตาล'

ที่ไหน

first_name = 'เจน'

และ

last_name = 'โด'

;

หรือสมมติว่ามีปัญหาในตารางของคุณที่ค่าบางอย่างสำหรับ "address_state" ปรากฏเป็น "แมสซาชูเซตส์" และค่าอื่น ๆ ปรากฏเป็น "MA" หากต้องการเปลี่ยนอินสแตนซ์ทั้งหมดของ "MA" เป็น "Massachusetts" เราสามารถใช้แบบสอบถามง่ายๆ และอัปเดตหลายระเบียนพร้อมกัน:

อัปเดต

people_massachusetts

ชุด

address_state = 'แมสซาชูเซตส์'

ที่ไหน

address_state = MA

;

โปรดใช้ความระมัดระวังเมื่อใช้ UPDATE ถ้าคุณไม่ระบุระเบียนที่จะเปลี่ยนแปลงด้วยคำสั่ง WHERE คุณจะเปลี่ยนค่าทั้งหมดในตาราง

ลบ

DELETE ลบระเบียนออกจากตารางของคุณ เช่นเดียวกับ UPDATE อย่าลืมใส่คำสั่ง WHERE เพื่อไม่ให้คุณลบทั้งตารางโดยไม่ได้ตั้งใจ

หรือหากเราบังเอิญพบระเบียนหลายรายการในตาราง people_massachusetts ของเราซึ่งอาศัยอยู่ที่ Maine จริงๆ เราสามารถลบรายการเหล่านี้ได้อย่างรวดเร็วโดยกำหนดเป้าหมายช่อง address_state เช่น:

ลบจาก

people_massachusetts

ที่ไหน

address_state = 'เมน'

;

โบนัส: เคล็ดลับ SQL ขั้นสูง

ตอนนี้ คุณได้เรียนรู้วิธีสร้างแบบสอบถาม SQL อย่างง่ายแล้ว เรามาพูดถึงเทคนิคอื่นๆ ที่คุณสามารถใช้เพื่อเพิ่มระดับการสืบค้นของคุณ โดยเริ่มจากเครื่องหมายดอกจัน

* (ดอกจัน)

เมื่อคุณเพิ่มอักขระดอกจันลงในคิวรี SQL คิวรีนั้นจะบอกคิวรีว่าคุณต้องการรวมคอลัมน์ทั้งหมดของข้อมูลในผลลัพธ์ของคุณ

ในตัวอย่างที่เราใช้ในรัฐแมสซาชูเซตส์ เรามีชื่อคอลัมน์เพียงสองชื่อเท่านั้น: first_name และ last_name แต่สมมติว่าเรามีข้อมูล 15 คอลัมน์ที่เราต้องการเห็นในผลลัพธ์ของเรา การพิมพ์ชื่อคอลัมน์ทั้ง 15 คอลัมน์ในคำสั่ง SELECT นั้นเป็นเรื่องยาก แต่หากคุณแทนที่ชื่อคอลัมน์เหล่านั้นด้วยเครื่องหมายดอกจัน คิวรีจะรู้ว่าต้องดึงคอลัมน์ทั้งหมดลงในผลลัพธ์

นี่คือสิ่งที่แบบสอบถาม SQL จะมีลักษณะดังนี้:

เลือก

*

จาก

people_massachusetts

ที่ไหน

hair_color=”สีแดง”

และ

birth_date ระหว่าง '2003-01-01' และ '2003-12-31'

สั่งโดย

นามสกุล

LIMIT

100

;

% (สัญลักษณ์ร้อยละ)

สัญลักษณ์เปอร์เซ็นต์เป็นอักขระตัวแทน ซึ่งหมายความว่าสามารถแสดงอักขระได้ตั้งแต่หนึ่งตัวขึ้นไปในค่าฐานข้อมูล อักขระตัวแทนมีประโยชน์สำหรับการค้นหาระเบียนที่ใช้อักขระทั่วไปร่วมกัน โดยทั่วไปจะใช้กับตัวดำเนินการ LIKE เพื่อค้นหารูปแบบในข้อมูล

ตัวอย่างเช่น หากเราต้องการทราบชื่อของทุกคนในตารางซึ่งมีรหัสไปรษณีย์ขึ้นต้นด้วย "02" เราสามารถเขียนข้อความค้นหานี้:

เลือก

ชื่อจริง,

นามสกุล

ที่ไหน

address_zip เช่น '02%'

;

ในที่นี้ “%” หมายถึงกลุ่มตัวเลขใดๆ ที่ตามหลัง “02” ดังนั้นข้อความค้นหานี้จึงเปิดระเบียนใดๆ ที่มีค่าสำหรับ address_zip ที่ขึ้นต้นด้วย “02”

30 วันสุดท้าย

เมื่อฉันเริ่มใช้ SQL เป็นประจำ ฉันพบว่าหนึ่งในคำค้นหาที่ฉันใช้เป็นประจำนั้นเกี่ยวข้องกับการพยายามค้นหาว่าบุคคลใดดำเนินการหรือปฏิบัติตามเกณฑ์บางชุดภายใน 30 วันที่ผ่านมา

สมมติว่าวันนี้คือวันที่ 1 ธันวาคม 2021 คุณ สามารถ สร้างพารามิเตอร์เหล่านี้ได้โดยกำหนดช่วงวันเกิดระหว่างวันที่ 1 พฤศจิกายน 2021 ถึง 30 พฤศจิกายน 2021 แบบสอบถาม SQL นั้นจะมีลักษณะดังนี้:

เลือก

ชื่อจริง,

นามสกุล

จาก

people_massachusetts

ที่ไหน

hair_color=”สีแดง”

และ

birth_date ระหว่าง '2021-11-01' และ '2021-11-30'

สั่งโดย

นามสกุล

LIMIT

100

;

แต่นั่นจะต้องคิดว่าวันที่ใดที่ครอบคลุม 30 วันที่ผ่านมา และคุณจะต้องอัปเดตการสืบค้นนี้อย่างต่อเนื่อง

หากต้องการให้วันที่ครอบคลุมช่วง 30 วันที่ผ่านมาโดยอัตโนมัติ ไม่ว่าจะเป็นวันใด คุณสามารถพิมพ์ภายใต้ AND: birth_date >= (DATE_SUB(CURDATE(),INTERVAL 30))

(หมายเหตุ: คุณจะต้องตรวจสอบไวยากรณ์นี้อีกครั้งกับทีมผลิตภัณฑ์ของคุณ เนื่องจากอาจแตกต่างไปตามซอฟต์แวร์ที่คุณใช้เพื่อดึงการสืบค้น SQL ของคุณ)

แบบสอบถาม SQL แบบเต็มของคุณจะมีลักษณะดังนี้:

เลือก

ชื่อจริง,

นามสกุล

จาก

people_massachusetts

ที่ไหน

hair_color=”สีแดง”

และ

birth_date >= (DATE_SUB(CURDATE(),INTERVAL 30))

สั่งโดย

นามสกุล

LIMIT

100

;

นับ

ในบางกรณี คุณอาจต้องการนับจำนวนครั้งที่เกณฑ์ของฟิลด์ปรากฏขึ้น ตัวอย่างเช่น สมมติว่าคุณต้องการนับจำนวนครั้งที่สีผมต่างๆ ปรากฏต่อผู้คนที่คุณนึกถึงจากแมสซาชูเซตส์ ในกรณีนี้ COUNT จะมีประโยชน์ คุณจึงไม่ต้องเพิ่มจำนวนคนที่มีสีผมต่างกันหรือส่งออกข้อมูลนั้นไปยัง Excel ด้วยตนเอง

นี่คือสิ่งที่แบบสอบถาม SQL จะมีลักษณะดังนี้:

เลือก

สีผม,

COUNT(สีผม)

จาก

people_massachusetts

และ

birth_date ระหว่าง '2003-01-01' และ '2003-12-31'

จัดกลุ่มโดย

สีผม

;

AVG

AVG คำนวณค่าเฉลี่ยของแอตทริบิวต์ในผลลัพธ์ของการสืบค้นของคุณ ไม่รวมค่า NULL (ค่าว่าง) ในตัวอย่างของเรา เราสามารถใช้ AVG เพื่อคำนวณอายุเฉลี่ยของชาวแมสซาชูเซตส์ในข้อความค้นหาของเรา

ต่อไปนี้คือลักษณะการสืบค้น SQL ของเรา:

เลือก

เฉลี่ย(อายุ)

จาก

people_massachusetts

;

SUM

SUM เป็นอีกหนึ่งการคำนวณง่ายๆ ที่คุณสามารถทำได้ใน SQL จะคำนวณมูลค่ารวมของแอตทริบิวต์ทั้งหมดจากข้อความค้นหาของคุณ ดังนั้น หากเราต้องการรวมอายุของชาวแมสซาชูเซตส์ทุกช่วงอายุ เราสามารถใช้คำค้นหานี้:

เลือก

SUM(อายุ)

จาก

people_massachusetts

;

MIN และ MAX

MIN และ MAX เป็นฟังก์ชัน SQL สองฟังก์ชันที่ให้ค่าที่น้อยที่สุดและมากที่สุดแก่คุณในฟิลด์ที่กำหนด เราสามารถใช้เพื่อระบุสมาชิกที่เก่าแก่และอายุน้อยที่สุดในตารางแมสซาชูเซตส์ของเรา:

แบบสอบถามนี้จะให้เราบันทึกที่เก่าแก่ที่สุด:

เลือก

มิน(อายุ)

จาก

people_massachusetts

;

และแบบสอบถามนี้ทำให้เราที่เก่าแก่ที่สุด:

เลือก

MAX(อายุ)

จาก

people_massachusetts

;

เข้าร่วม

อาจมีบางครั้งที่คุณต้องเข้าถึงข้อมูลจากสองตารางที่แตกต่างกันในแบบสอบถาม SQL เดียว ใน SQL คุณสามารถใช้ส่วนคำสั่ง JOIN เพื่อทำสิ่งนี้ได้

(สำหรับผู้ที่คุ้นเคยกับสูตร Excel จะคล้ายกับการใช้สูตร VLOOKUP เมื่อคุณต้องการรวมข้อมูลจากแผ่นงานสองแผ่นใน Excel)

สมมติว่าเรามีตารางหนึ่งตารางที่มีข้อมูล ID ผู้ใช้และวันเกิดของผู้อยู่อาศัยในรัฐแมสซาชูเซตส์ นอกจากนี้ เรามีตารางที่แยกจากกันโดยสิ้นเชิงซึ่งมี ID ผู้ใช้และสีผมของชาวแมสซาชูเซตส์ทั้งหมด

ถ้าเราต้องการหาสีผมของชาวแมสซาชูเซตส์ที่เกิดในปี 2546 เราจำเป็นต้องเข้าถึงข้อมูลจากทั้งสองตารางและรวมเข้าด้วยกัน วิธีนี้ใช้ได้เพราะทั้งสองตารางใช้คอลัมน์ที่ตรงกัน นั่นคือ ID ผู้ใช้

เนื่องจากเรากำลังเรียกเขตข้อมูลจากตารางที่แตกต่างกันสองตาราง คำสั่ง SELECT ของเราจะเปลี่ยนแปลงเล็กน้อยเช่นกัน แทนที่จะระบุเฉพาะฟิลด์ที่เราต้องการรวมไว้ในผลลัพธ์ของเรา เราจะต้องระบุว่ามาจากตารางใด (หมายเหตุ: ฟังก์ชันดอกจันอาจมีประโยชน์ที่นี่ ดังนั้นคิวรีของคุณจึงรวมตารางทั้งสองไว้ในผลลัพธ์ของคุณ)

ในการระบุเขตข้อมูลจากตารางเฉพาะ สิ่งที่เราต้องทำคือรวมชื่อของตารางเข้ากับชื่อของเขตข้อมูล ตัวอย่างเช่น คำสั่ง SELECT ของเราจะระบุว่า "table.field" โดยมีจุดคั่นระหว่างชื่อตารางและชื่อฟิลด์

เรายังสมมติบางสิ่งในกรณีนี้:

  1. ตารางวันเกิดของแมสซาชูเซตส์ประกอบด้วยฟิลด์ต่อไปนี้: first_name, last_name, user_id, birthdate
  2. ตารางสีผมของแมสซาชูเซตส์ประกอบด้วยฟิลด์ต่อไปนี้: user_id, hair_color

แบบสอบถาม SQL ของคุณจะมีลักษณะดังนี้:

เลือก

วันเกิด_massachusetts.first_name,

birthday_massachusetts.last_name

จาก

วันเกิด_massachusetts เข้าร่วม haircolor_massachusetts โดยใช้ (user_id)

ที่ไหน

hair_color=”สีแดง”

และ

birth_date ระหว่าง '2003-01-01' และ '2003-12-31'

สั่งโดย

นามสกุล

;

แบบสอบถามนี้จะรวมตารางทั้งสองโดยใช้ฟิลด์ "user_id" ซึ่งปรากฏในทั้งตาราง birthdate_massachusetts และตาราง haircolor_massachusetts จากนั้นคุณจะเห็นตารางของคนที่เกิดในปี 2546 ที่มีผมสีแดง

กรณี

ใช้คำสั่ง CASE เมื่อคุณต้องการส่งกลับผลลัพธ์ที่แตกต่างกันไปยังคิวรีของคุณโดยพิจารณาจากเงื่อนไขที่ตรงตามเงื่อนไข เงื่อนไขจะได้รับการประเมินตามลำดับ เมื่อตรงตามเงื่อนไข ผลลัพธ์ที่เกี่ยวข้องจะถูกส่งคืนและข้ามเงื่อนไขต่อไปนี้ทั้งหมด

คุณสามารถใส่เงื่อนไข ELSE ต่อท้ายได้ในกรณีที่ไม่ตรงตามเงื่อนไข หากไม่มี ELSE เคียวรีจะคืนค่า NULL หากไม่ตรงตามเงื่อนไข

ต่อไปนี้คือตัวอย่างการใช้ CASE เพื่อส่งกลับสตริงตามคิวรี:

เลือก

ชื่อจริง,

นามสกุล

จาก

people_massachusetts

กรณี

เมื่อ hair_color = 'สีน้ำตาล' แล้ว 'คนนี้มีผมสีน้ำตาล'

เมื่อ hair_color = 'ผมบลอนด์' แล้วก็ 'คนนี้มีผมสีบลอนด์'

WHEN hair_color = 'red' แล้วก็ 'คนนี้ผมสีแดง'

ELSE 'สีผมไม่ทราบ'

จบ

;

แบบสอบถาม SQL พื้นฐานที่นักการตลาดควรรู้

ยินดีด้วย. คุณพร้อมที่จะเรียกใช้คำสั่ง SQL ของคุณเองแล้ว! แม้ว่า SQL จะทำอะไรได้อีกมาก แต่เราหวังว่าคุณจะพบว่าภาพรวมของข้อมูลพื้นฐานมีประโยชน์ เพื่อให้คุณได้ลงมือทำ ด้วยพื้นฐานที่แข็งแกร่ง คุณจะสามารถนำทาง SQL ได้ดีขึ้นและทำงานต่อไปยังตัวอย่างที่ซับซ้อนมากขึ้น

หมายเหตุบรรณาธิการ: โพสต์นี้เผยแพร่ครั้งแรกเมื่อวันที่ 25 มีนาคม และได้รับการอัปเดตเพื่อความครอบคลุม

เทมเพลตการตลาด excel