Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

JDBC SQL Escape Syntax คืออะไร?


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

รูปแบบไวยากรณ์หลีกของ SQL ทั่วไปมีดังต่อไปนี้:

{keyword 'parameters'}

ต่อไปนี้คือรูปแบบ Escape ต่างๆ ใน ​​JDBC:

d, t, ts คำสำคัญ: ช่วยระบุวันที่ เวลา และตัวอักษรประทับเวลา ดังที่คุณทราบ ไม่มี DBMS สองรายการที่แสดงเวลาและวันที่ในลักษณะเดียวกัน ไวยากรณ์ Escape นี้บอกให้ไดรเวอร์แสดงวันที่หรือเวลาในรูปแบบฐานข้อมูลเป้าหมาย

{d 'yyyy-mm-dd'}

โดยที่ ปปปป =ปี mm =เดือน dd =วันที่ การใช้ไวยากรณ์นี้ {d '2009-09-03'} คือ 9 มีนาคม 2009

ตัวอย่าง

//สร้างคำสั่ง objecttmt =conn.createStatement();//Insert data ==> ID, First Name, Last Name, DOBString sql="INSERT INTO STUDENTS VALUES" + "(100,'Zara',' อาลี' {d '2001-12-16'})";stmt.executeUpdate(sql);

หลีกเลี่ยงคำหลัก

คีย์เวิร์ดนี้ระบุอักขระหลีกที่ใช้ในส่วนคำสั่ง LIKE มีประโยชน์เมื่อใช้ % wildcard ของ SQL ซึ่งตรงกับศูนย์หรือมากกว่าอักขระ ตัวอย่างเช่น −

String sql ="เลือกสัญลักษณ์จาก MathSymbols โดยที่สัญลักษณ์ LIKE '\%' {escape '\'}";stmt.execute(sql);

หากคุณใช้อักขระแบ็กสแลช (\) เป็นอักขระหลีก คุณต้องใช้อักขระแบ็กสแลชสองตัวในตัวอักษร Java String ของคุณด้วย เนื่องจากแบ็กสแลชเป็นอักขระหลีก Java ด้วย

fn คำสำคัญ

คีย์เวิร์ดนี้แสดงถึงฟังก์ชันสเกลาร์ที่ใช้ใน DBMS ตัวอย่างเช่น คุณสามารถใช้ฟังก์ชัน SQL length เพื่อให้ได้ความยาวของสตริง −

{fn length('Hello World')}

ส่งคืน 11 ความยาวของสตริงอักขระ 'Hello World' เรียกคีย์เวิร์ด

คำสำคัญนี้ใช้เพื่อเรียกกระบวนงานที่เก็บไว้ ตัวอย่างเช่น สำหรับกระบวนงานที่เก็บไว้ที่ต้องใช้พารามิเตอร์ IN ให้ใช้ไวยากรณ์ต่อไปนี้ -

{call my_procedure(?)};

สำหรับขั้นตอนการจัดเก็บที่ต้องการพารามิเตอร์ IN และคืนค่าพารามิเตอร์ OUT ให้ใช้ไวยากรณ์ต่อไปนี้ -

<ก่อน>{? =โทร my_procedure(?)};

คีย์เวิร์ด oj

คีย์เวิร์ดนี้ใช้เพื่อแสดงถึงการรวมภายนอก ไวยากรณ์มีดังนี้ −

{oj outer-join}

โดยที่ outer-join =ตาราง {LEFT|RIGHT|FULL} OUTERJOIN {table | outer-join} ในเงื่อนไขการค้นหา

String sql ="เลือกพนักงานจาก {oj ThisTable RIGHT OUTER JOIN ThatTable on id ='100'}";stmt.execute(sql);