ภาษาคิวรีที่มีโครงสร้าง (SQL) เป็นเครื่องมือที่ทรงพลังอย่างน่าทึ่ง และเป็นเครื่องมือที่อัดแน่นไปด้วยคุณสมบัติมากมาย เมื่อคุณเชี่ยวชาญมากที่สุด คำสั่ง SQL ที่สำคัญ คุณสามารถเริ่มสร้างสรรค์กับ SQL ของคุณได้มากขึ้น วันนี้ผมจะแสดงให้คุณเห็นทุกสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับสตริงการต่อข้อมูล SQL
มีภาษาถิ่น SQL ที่แตกต่างกันมากมาย สำหรับตัวอย่างทั้งหมดนี้ ฉันกำลังใช้ PostgreSQL ตัวแปร
วิธีเปลี่ยนไอคอนบน windows 10
การต่อกันคืออะไร?
การต่อกันหมายถึงการรวมสองสิ่งเข้าด้วยกัน คุณอาจเคยใช้ในภาษาการเขียนโปรแกรมเพื่อรวมสองสตริงเข้าด้วยกัน บางทีคุณอาจมีตัวแปรชื่อและนามสกุลที่คุณรวมเข้าด้วยกันเป็นตัวแปรชื่อเต็ม
การต่อสายเป็นวิธีที่มีประโยชน์มากในการรวมสองสายเข้าเป็นหนึ่งเดียว PHP ใช้จุดเต็มเพื่อรวมสตริงเข้าด้วยกันในขณะที่ JavaScript และ jQuery ใช้เครื่องหมายบวก
การต่อข้อมูลใน SQL ทำงานเหมือนกันทุกประการ คุณใช้ตัวดำเนินการพิเศษเพื่อรวมสองสิ่งเข้าด้วยกัน นี่คือตัวอย่างใน รหัสเทียม :
first_name = Joe
last_name = Coburn
whole_name = first_name + last_name
ในภาษาการเขียนโปรแกรม การต่อกันทำให้โค้ดอ่านง่ายขึ้น หากโค้ดของคุณต้องการเข้าถึงสองสตริงเสมอ การรวมเป็นหนึ่งเดียวจะทำให้จดจำได้ง่ายขึ้น และลดความยาวของโค้ด
แม้ว่าตัวแปรใน SQL จะพบได้น้อยกว่า (แต่ยังคงใช้อยู่) การต่อกันก็ยังจำเป็นเพื่อส่งคืนผลลัพธ์ที่รวมกัน หรือเพื่อจัดการข้อมูล
วิธีการต่อเชื่อม
การต่อกันคือ มาก ง่ายใน SQL แม้ว่า SQL จะเป็นภาษาทั่วไป แต่กลไกฐานข้อมูลแต่ละรายการจะใช้คุณลักษณะต่างๆ ในรูปแบบต่างๆ แม้ว่าตัวอย่างทั้งหมดเหล่านี้จะเป็นภาษาถิ่นของ PostgreSQL แต่ก็สามารถแปลเป็นตัวแปรอื่นๆ ได้โดยง่ายเพียงแค่ค้นหา 'Concatenate' ทางเว็บ เอ็นจิ้นที่ต่างกันอาจมีไวยากรณ์ที่แตกต่างกันสำหรับการต่อกัน แต่หลักการยังคงเหมือนเดิม
กลับไปที่ตัวอย่างชื่อของเรา นี่คือพื้นฐาน เลือก แบบสอบถาม:
SELECT first_name, last_name, email FROM users_table
ไม่มีอะไรซับซ้อนในที่นี้ ให้เพิ่มใน concatenate:
SELECT first_name || last_name AS full_name, email FROM users_table
อย่างที่คุณเห็น การเรียงต่อกันนี้ได้ผลดี แต่มีปัญหาเล็กๆ อย่างหนึ่ง ชื่อเต็มที่ได้จะถูกเย็บเข้าด้วยกันเหมือนกับผลิตภัณฑ์ของทั้งสองคอลัมน์ - ควรมีช่องว่างระหว่างชื่อ!
โชคดีที่คุณแก้ไขได้ง่าย เพียงเชื่อมช่องว่างระหว่างสองสิ่งนี้:
SELECT first_name || ' ' || last_name AS full_name, email FROM users_table
นี่เป็นตัวอย่างพื้นฐาน แต่คุณควรเห็นว่าการเรียงต่อกันทำงานอย่างไร ง่ายมาก! ตัวดำเนินการท่อ ( | ) ใช้สองครั้งระหว่างอนุประโยค เอ็นจิ้น SQL ของคุณรู้ว่าแต่ละส่วนก่อนและหลังสัญลักษณ์นี้ควรรวมเข้าด้วยกันและถือเป็นหนึ่งเดียว ระวังด้วยว่า ถ้าคุณใช้ตัวดำเนินการ concat แต่ไม่ได้ต่ออะไรเลย คุณจะได้รับข้อผิดพลาด
ดังที่กล่าวไว้ข้างต้น ตัวอย่างเหล่านี้ใช้ตัวแปร PostgreSQL ของ SQL รุ่นอื่นๆ อาจใช้โอเปอเรเตอร์อื่น หรือแม้แต่ฟังก์ชันพิเศษที่คุณต้องเรียกใช้ ไม่เป็นไรจริงๆ อย่างไร คุณเชื่อมสตริงเข้าด้วยกันโดยให้คุณทำในลักษณะที่เอ็นจินฐานข้อมูลของคุณคาดหวัง
ก้าวให้ลึกขึ้น
เมื่อคุณรู้พื้นฐานแล้ว มาดูตัวอย่างเชิงลึกพร้อมกับข้อผิดพลาดทั่วไป
เอ็นจิ้นฐานข้อมูลส่วนใหญ่จะประสบความสำเร็จในการรวมสตริงและจำนวนเต็มเข้าด้วยกัน หรือแม้แต่วันที่ด้วย คุณมักจะประสบปัญหาเมื่อพยายามเชื่อมประเภทที่ซับซ้อน เช่น อาร์เรย์:
SELECT first_name || ' ' || last_name || ARRAY[123, 456] AS full_name, email FROM users_table
รหัสนี้จะไม่ทำงาน เป็นไปไม่ได้ที่จะรวมสตริงกับอ็อบเจ็กต์ที่ซับซ้อน เช่น อาร์เรย์ หากคุณคิดเกี่ยวกับสิ่งที่คุณต้องทำ คุณมักจะเขียนโค้ดง่ายๆ ที่ได้ผล แทนที่จะเขียนโค้ดที่ซับซ้อนและซับซ้อนที่ไม่สามารถรันได้
หากคุณได้คิดอย่างรอบคอบเกี่ยวกับสิ่งที่คุณต้องทำ แต่ยังไม่สามารถทำให้ SQL ทำงานได้ คุณได้พิจารณาใช้ภาษาการเขียนโปรแกรมหรือไม่? ในฐานะนักพัฒนาซอฟต์แวร์ที่ทำงานเกี่ยวกับโค้ดดั้งเดิม ฉันรู้ดีถึงความเจ็บปวดของการพยายามดีบัก SQL ที่มีใครบางคนยัดเยียดตรรกะลงไปมากจนน่าแปลกใจที่มันทำงานได้เลย -- หากคุณกำลังพยายามเขียนตรรกะใน SQL ให้เปลี่ยนไปใช้ ภาษาโปรแกรม (มีภาษาที่เรียนรู้ง่ายมากมาย )
การเรียงต่อกันทำงานได้ดีมากสำหรับ ที่ไหน งบเช่นกัน:
SELECT first_name, last_name, email FROM users_table WHERE date_of_birth = ('DAY' || '/' || 'MONTH' || '/' || 'YEAR')::date
มีบางสิ่งเกิดขึ้นที่นี่ ในตัวอย่างนี้ วัน , เดือน , และ ปี คือพารามิเตอร์ที่ส่งผ่านจากสคริปต์ บางทีสิ่งเหล่านี้อาจถูกสร้างขึ้นด้วยรหัสหรือป้อนโดยผู้ใช้ สิ่งเหล่านี้ถูกต่อเข้าด้วยกัน แล้วส่งเป็นประเภทวันที่ (โดยใช้ไวยากรณ์ PostgreSQL cast to date ::วันที่ ).
การใช้การต่อข้อมูลด้วยวิธีนี้ทำให้คุณสามารถเชื่อมโยงแต่ละส่วนของวันที่เข้าด้วยกัน ซึ่งสามารถประมวลผลเป็นวันที่ 'จริง' ได้ ตรงข้ามกับสตริง อย่าลืมว่าตัวอย่างพื้นฐานนี้ไม่ได้ป้องกันการฉีด SQL ดังนั้นอย่านำไปใช้ในโค้ดการผลิตใดๆ โดยไม่ต้องแก้ไข
หลุมพรางอีกอย่างที่ต้องระวังคือ โมฆะ ค่า (สตริงว่างเป็นสตริงว่างหรือไม่มีอยู่) จากคำถามนี้:
SELECT first_name || ' ' || NULL AS full_name, email FROM users_table
แบบสอบถามนี้ล้มเหลวโดยไม่โต้ตอบ นี่เป็นเพราะวิธีการต่อรหัสภายในโปรแกรมฐานข้อมูลของคุณ คุณอาจไม่พบปัญหานี้เสมอไป แต่เป็นเรื่องปกติที่เกิดขึ้น
หากคุณคิดว่าข้อมูลที่การสืบค้นของคุณส่งคืนอาจเป็นโมฆะ คุณจะต้องใช้ a รวมตัวกัน . Coalesce สามารถคิดคร่าวๆ ได้ว่า 'ถ้าเป็นโมฆะ ให้แทนที่ด้วยสตริงหรือคอลัมน์อื่นนี้':
SELECT first_name || ' ' || COALESCE(NULL, 'ERROR NULL DATA') AS full_name, email FROM users_table
ตอนนี้คุณรู้วิธีใช้การต่อข้อมูลใน SQL แล้ว คุณจะทำอย่างไรกับมัน คุณจะ ทำเว็บไซต์ และทำให้มีชีวิตชีวาขึ้นด้วย SQL? หรือบางทีคุณอาจต้องการตัวสร้างไซต์แบบคงที่เพื่อให้สร้างเว็บไซต์ได้ง่ายขึ้น
สิ่งที่คุณทำแจ้งให้เราทราบในความคิดเห็นด้านล่าง!
วิธีเลือกตามสีใน photoshopแบ่งปัน แบ่งปัน ทวีต อีเมล 6 ทางเลือกที่ได้ยิน: แอพหนังสือเสียงฟรีหรือราคาถูกที่ดีที่สุด
หากคุณไม่ต้องการจ่ายค่าหนังสือเสียง นี่คือแอพดีๆ ที่ให้คุณฟังได้ฟรีและถูกกฎหมาย
อ่านต่อไป หัวข้อที่เกี่ยวข้อง- การเขียนโปรแกรม
- การเขียนโปรแกรม
- SQL
โจสำเร็จการศึกษาด้านวิทยาการคอมพิวเตอร์จากมหาวิทยาลัยลินคอล์น สหราชอาณาจักร เขาเป็นนักพัฒนาซอฟต์แวร์มืออาชีพ และเมื่อเขาไม่ได้ขับโดรนหรือเขียนเพลง เขามักจะถูกมองว่าถ่ายภาพหรือผลิตวิดีโอ
เพิ่มเติมจาก Joe Coburnสมัครรับจดหมายข่าวของเรา
เข้าร่วมจดหมายข่าวของเราสำหรับเคล็ดลับทางเทคนิค บทวิจารณ์ eBook ฟรี และดีลพิเศษ!
คลิกที่นี่เพื่อสมัครสมาชิก