วันอาทิตย์ที่ 10 กันยายน พ.ศ. 2560
SQL Union Vs Union All ต่างกันยังไง?
กันยายน 10, 2560
SQL Union Vs Union All ต่างกันยังไง?
ก่อนอื่นเลยต้องมาทำความรู้จักกันก่อนว่ามันใช้ทำอะไร union ถ้าแปลกันตรงๆเนี่ยจะแปลว่าการรวมกัน ใช้เพื่อการรวม Table เข้าด้วยกัน แต่มันก็มีเงื่อนไขที่ว่าชื่อ Column ของทั้งสอง Table ก็ต้องเหมือนกันเดะๆ!หรือ Select เฉพาะ Column ที่เหมือนกันถึงจะ union กันได้นะ
แล้วตกลงมันต่างกันยังไงล่ะ?
Union มันจะลบตัวที่ซ้ำให้ทั้งหมด
Union All จะเอามาทั้งหมดไม่ลบตัวซ้ำ
ถ้ายังงงๆอยู่มาดูตัวอย่างกันครับ!
Union :
ผลลัพท์ :
Union ALL :
ผลลัพท์ :
สรุป : ทั้งสองอย่างมันก็ต่างกันตรงที่เราอยากให้ข้อมูลซ้ำหรือไม่ซ้ำนั้นเอง ลองนำไปประยุกต์ใช้กันดูครับผม :D
ก่อนอื่นเลยต้องมาทำความรู้จักกันก่อนว่ามันใช้ทำอะไร union ถ้าแปลกันตรงๆเนี่ยจะแปลว่าการรวมกัน ใช้เพื่อการรวม Table เข้าด้วยกัน แต่มันก็มีเงื่อนไขที่ว่าชื่อ Column ของทั้งสอง Table ก็ต้องเหมือนกันเดะๆ!หรือ Select เฉพาะ Column ที่เหมือนกันถึงจะ union กันได้นะ
แล้วตกลงมันต่างกันยังไงล่ะ?
Union มันจะลบตัวที่ซ้ำให้ทั้งหมด
Union All จะเอามาทั้งหมดไม่ลบตัวซ้ำ
ถ้ายังงงๆอยู่มาดูตัวอย่างกันครับ!
Union :
SELECT 'banana' AS fruit UNION SELECT 'banana' AS fruit
ผลลัพท์ :
+--------+
| fruit |
+--------+
| banana |
+--------+
Union ALL :
SELECT 'banana' AS fruit UNION ALL SELECT 'banana' AS fruit
ผลลัพท์ :
+--------+
| fruit |
+--------+
| banana |
+--------+
| banana |
+--------+
สรุป : ทั้งสองอย่างมันก็ต่างกันตรงที่เราอยากให้ข้อมูลซ้ำหรือไม่ซ้ำนั้นเอง ลองนำไปประยุกต์ใช้กันดูครับผม :D
วันเสาร์ที่ 2 กันยายน พ.ศ. 2560
คีย์ลัด shortcut key สำหรับ IntelliJ IDEA
กันยายน 02, 2560
คีย์ลัด shortcut key สำหรับ IntelliJ IDEA
ที่มาของภาพ : jetbrains.com/idea
สวัสดีครับวันนี้มาทำความรู้จักกับคีย์ลัดต่างๆ IDE ที่ชื่อว่า Intellij หรือ IDE อื่นที่ใช้ eclipse base อาจจะใช้ได้เหมือนกัน Intellij คงเป็นที่คุ้นหูกันดีอยู่แล้วสำหรับโปรแกรมตัวนี้ ด้วยการใช้งานที่ง่ายและเร็ว และจะเร็วมากขึ้นไปอีกหากผู้ใช้ เลือกที่จะเรียนรู้คีย์ลัดของมันเพื่อย่นเวลาการทำงานไปได้อีกเยอะ เอาล่ะ! มาดูกันเลยว่าจะมีอะไรบ้าง
ctrl+h โชว์ type hierarchy
ctrl+คลิ๊กซ้าย ใช้หาว่ามีการใช้ที่ไหนบ้าง
shift+F6 เปลี่ยนชื่อ
ctrl+shift+N หาชื่อไฟล์ทั้งหมดใน project
shift+F10 run
shift+F19 debug
ctrl+alt+o ลบ import ที่เราไม่ได้ใช้ทั้งหมด
ctrl+F12 โชว์ method และ ตัวแปร ทั้งหมดของหน้านั้น
ctrj+j แสดงคำสั่งย่อให้เลือกใช้ เช่น sout ก็จะได้ System.out.println(); โดยไม่ต้องพิมพ์ยาวๆ
ctrl + shift + up/down ย้ายตำแหน่งของ code บรรทัดนั้น
ctrl + y ลบ code บรรทัดนั้น
ctrl + shift + f หาคำใน project ทั้งหมด
ctrl + shift + enter ใส่ semi-colon ให้ที่ท้ายประโยค
alt + insert สร้าง getters / setters
ctrl + alt + l จัด format code ให้อย่างสวยงาม
ctrl + shift + z undo
ctrl + / คอมเม้นท์ code เช่น //test
ctrl + shift + / คอมเม้นท์ code เช่น /*test*/
ctrl + g ไปยังบรรทัดนั้นๆ
alt + enter ช่วยแก้ปัญหา code error ได้
มีคีย์ลัดอื่นๆที่นอกเหนือจากนี้อย่าลืมมาแชร์กันนะครับ!
วันอังคารที่ 28 มีนาคม พ.ศ. 2560
เฉลย try2hack จาก website fxpredator
มีนาคม 28, 2560
![]() |
เฉลย try2hack จาก website fxpredator
ต้องอธิบายก่อนเลยว่าเกมนี้เป็นเกมแนวปริศนา(Puzzle) ซึ่งไม่ต้องมีความรู้ด่าน security มากนักแต่อาจจะต้องมีความรู้เกี่ยวกับการเขียน web มาบ้างพอเป็นพื้นฐาน จะมีทั้งหมด 5 ด่านไปลุยกันเลยครับ จิ้มไปเล่นกันได้ที่
ด่านที่ 1
คำใบ้คือ "แต่หารู้ไม่ว่าเขาได้แอบซ่อนรหัสลับไว้แถวๆ นี้" ลองคลิ๊กขวาเพื่อ view page source ดูก็เจอคำตอบแล้วครับ บรรทัดล่างๆหน่อย
ดังนั้นคำตอบ password ก็คือ A^d,XU
ด่านที่ 2
คำใบ้คือ "มันอยู่ข้างบน ไม่ได้อยู่ข้างล่าง" ลองคลิ๊กขวาเพื่อ view page source ดูจะเจอแต่ยังไม่ใช่คำตอบนะครับ ฮ่าๆ
จากคำใบ้บอกอยู่ข้างบน ดูใน code ก็ไม่มี สงสัยที่ path ก่อนเลยครับ ปัณหาข้อนี้จะคล้ายๆ path traversal ซึ่งเป็นช่องโหว่ของ path เปลี่ยน path จาก fxpredator.com/try2hack/level2/level2-Hx6ew.php เป็น fxpredator.com/try2hack/level2/ จะเจอ directory เพื่อไปเปิดไฟล์ password ได้ครับ Username:retrospect password:withoutyou และ นำรหัสมากรอกได้เลย
ด่านที่ 3
เป็นการเข้ารหัสข้อมูลโดยให้รหัสที่เข้ารหัสมาให้แล้วคือ 96430 และ ให้เครื่องตัวเครื่องมือการเข้ารหัสมาให้ด้วย ในที่นี้ผมจะใช้วิธี brute force คือลองมันทุกกรณีจนกว่าจะเจอแต่ไม่ทุกกรณีหรอกครับ ลองสุ่มใส่ตัวเลขฐานสองลงไปก็น่าจะจับทางได้แล้ว
Trick: ลองใส่ 11111 คือค่าสูงสุดจะได้ 97531 ซึ่งเกินคำตอบไปพอสมควร ต่อไปลองใส่ 10000 ได้ 86421 ต่ำกว่าคำตอบมากๆ ลอง 00001 ได้ 96420 จะได้ค่าใกล้เคียงกับคำตอบมากต่างกันแค่หลักสิบ ลอง 01001 ปรากฎว่าได้คำตอบเลย
ด่านที่ 4
เป็นการเข้ารหัสข้อมูลโดยให้รหัสที่เข้ารหัสมาให้แล้วคือ yz{3pnq{v~:p}| และ ให้เครื่องตัวเครื่องมือการเข้ารหัสมาให้ด้วย ในข้อนี้ต้องงเปิดตาราง ASCII เทียบดูครับ ลองแทนค่า
Trick: จากตัวอักษร w รหัส ASCII ที่อยู่ในรูปฐานสิบคือ 119 บวกไป 2 ได้ 121 คือ อักษร y บวก 3 คือ z บวก 4 คือสัญญาลักษณ์ { เป็นต้น จะได้คำตอบคือ "www.jgirls.com"
ด่านที่ 5
ด่านสุดท้ายอาจจะยากซักหน่อย คือให้เราหาคะแนนที่เต็มพอดีเป๊ะๆ วิธีที่ผมใช้คือ brute force (อีกแล้วฮ่าๆ) แต่แบบมีหลักการนะ สังเกตุได้ว่าพอเราเปลี่ยนค่าที่ส่งไป (value) range หรือ ขอบเขตของมันถ้าอยู่ในกลุ่มเดียวกันจะแสดงข้อความเหมือนๆกัน ทดลองใส่ไปเรื่อยๆจะสังเกตุเห็นได้ว่าต้องใส่เป็นเลขฐาน 16 คำตอบคือ c8 ในฐานสองจะเท่ากับ 200
ค่า value คือค่าที่ส่งไปครับ
|
สมัครสมาชิก:
บทความ (Atom)