ฟังก์ชันสตริง

All lectures for TH purposes
ระดับ , บทเรียน
มีอยู่

รายการฟังก์ชันสตริง

ฟังก์ชันมากกว่าวันที่และเวลา - เฉพาะประเภทสตริง ซึ่งใน SQL กำหนดโดยประเภท CHAR(n) และ VARCHAR(n) จำความนิยมมากที่สุดของพวกเขา:

การทำงาน คำอธิบาย
1 ความยาว (str) ส่งกลับความยาวของสตริงที่ผ่านเป็นไบต์
2 CHAR_LENGTH(สตริ) ส่งกลับความยาวของสตริงที่ผ่านเป็นตัวอักษร
3 ค้นหา (substr, str), ค้นหาสตริงย่อยในสตริงที่คล้ายกับเมธอด indexOf()
4 ค้นหา (substr, str, pos) ค้นหาสตริงย่อยในสตริงที่เริ่มต้นที่ตำแหน่ง
5 CONCAT(str1,str2,...) เชื่อมต่อหลายบรรทัด
6 ซับสตริง(), ซับสตริง() ส่งกลับสตริงย่อยที่กำหนดโดยช่วงของอักขระ
7 ล่าง(str) แปลงสตริงเป็นตัวพิมพ์เล็ก
8 บน(str) แปลงสตริงเป็นตัวพิมพ์ใหญ่
9 แทนที่() แทนที่สตริงย่อยในสตริง
10 จับคู่() ตรวจสอบว่าสตริงตรงกับรูปแบบที่กำหนดหรือไม่
สิบเอ็ด ทริม(str) ตัดทอนอักขระว่างที่จุดเริ่มต้นและจุดสิ้นสุดของสตริง
12 LTRIM(สตริ) ตัดทอนอักขระว่างที่จุดเริ่มต้นของสตริง
13 RTRIM(สตริ) ตัดทอนอักขระว่างที่ส่วนท้ายของสตริง
14 TO_BASE64(สตริ) แปลงสตริงเป็น Base64
15 FROM_BASE64(สตริ) แปลงสตริงจาก Base64

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

มาแปลงสตริงกันเถอะ

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

ผมจะให้ตารางพร้อมตัวอย่างบางส่วน

# ขอ ผลลัพธ์
1 เลือกความยาว ('ข้อความ') 4
2 เลือกความยาว ('สวัสดี') 12
3 เลือกต่ำ ('สูง') สวัสดี
4 เลือกบน ('สวัสดี') สวัสดี
5 เลือกSUBSTR ('สวัสดี', 2, 3) แม่น้ำ
6 เลือกSUBSTR ('สวัสดี สบายดีไหม', 8) คุณเป็นอย่างไร?

ฟังก์ชั่นทำงานตามที่คาดไว้ เช่นเดียวกับฟังก์ชั่นจาก JDK

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

การกระทำที่ซับซ้อนด้วยสตริง

มาดูสิ่งที่ซับซ้อนมากขึ้นเมื่อทำงานกับสตริง คุณจะได้อะไรมาบ้าง...

มาแสดงงานจากตารางงานกันเถอะ และถ้าเลยกำหนดเวลางานไปแล้ว ให้เพิ่มคำว่าEXPIRED ในรายละเอียดของงาน!

ฟังดูน่าสนใจ. แม้ว่าเราจะยังไม่ได้เรียนรู้เงื่อนไขที่ซับซ้อน ดังนั้นมาทำให้งานง่ายขึ้นเล็กน้อย ลองเขียนแบบสอบถามที่จะแสดงรายการงานที่ผ่านมา แต่อย่าลืมเพิ่มคำว่า“หมดอายุ!” ในชื่อเรื่อง .

ในการทำเช่นนี้เราจะต้องใช้ฟังก์ชัน CONCAT:

   SELECT CONCAT( 'EXPIRED! ', name) FROM task 
   WHERE deadline < CURDATE() 

ผลลัพธ์ของแบบสอบถามนี้จะเป็น:

concat('หมดอายุ!' ชื่อ)
หมดอายุ! แก้ไขข้อบกพร่องในส่วนหน้า

คำแนะนำ หากคุณเพียงแค่ต้องการแปลงข้อมูลเป็นรูปแบบที่แตกต่างกันเล็กน้อย ก็สามารถทำได้ที่ระดับโค้ด Java แต่ถ้าคุณต้องการใช้ฟังก์ชันสตริงฝั่งเซิร์ฟเวอร์ SQL (ภายใน WHERE) คุณจะไม่สามารถทำได้หากไม่มีพวกเขา

ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION