คำถามอะไรที่จะทดสอบความรู้โปรแกรมเมอร์ของ SQL? คำตอบของคำถามคืออะไร? และการไม่มีคำตอบที่ถูกต้องจะมีความหมายอย่างไรในแง่ของเวลาที่น่าจะเข้าใจแนวคิดที่เกี่ยวข้องกับคำถาม
GOOGLED:ความท้าทาย sql
คำถามอะไรที่จะทดสอบความรู้โปรแกรมเมอร์ของ SQL? คำตอบของคำถามคืออะไร? และการไม่มีคำตอบที่ถูกต้องจะมีความหมายอย่างไรในแง่ของเวลาที่น่าจะเข้าใจแนวคิดที่เกี่ยวข้องกับคำถาม
GOOGLED:ความท้าทาย sql
คำตอบ:
ขึ้นอยู่กับว่าคุณต้องการให้มันยากแค่ไหน นอกจากนี้ฉันยังระมัดระวังเล็กน้อยที่จะให้คำตอบกับคุณเนื่องจากปัญหา SQL ส่วนใหญ่มีวิธีที่ยอมรับได้หลายวิธีในการทำสิ่งต่าง ๆ และยังมีวิธีการแก้ปัญหา SQL ในรูปแบบที่ไม่เป็นระเบียบซึ่งจะทำให้เกิดปัญหาอื่น ๆ คนที่ให้คะแนนคำตอบจะต้องสามารถแก้ไขได้ด้วยตนเอง
ที่กล่าวว่านี่คือบางส่วนของฉันขึ้นมาจากด้านบนของหัวของฉัน
ระดับง่ายมาก:
กำหนดตารางพนักงานด้วยคอลัมน์ EmpID, FirstName, นามสกุล, HireDate และ TerminationDate:
เขียนแบบสอบถามเพื่อส่งคืนพนักงานทุกคนที่ยังทำงานกับ บริษัท ที่มีนามสกุลขึ้นต้นด้วย "Smith" เรียงตามนามสกุลแล้วชื่อจริง
ระดับง่าย
กำหนดตารางพนักงานด้านบนเพิ่มตารางใหม่ "AnnualReviews" พร้อมคอลัมน์ EmpID และ ReviewDate:
เขียนแบบสอบถามเพื่อส่งคืนพนักงานทุกคนที่ไม่เคยมีความคิดเห็นเรียงโดย HireDate
ระดับกลาง จากตารางพนักงานด้านบนเขียนแบบสอบถามเพื่อคำนวณความแตกต่าง (เป็นวัน) ระหว่างพนักงานที่ดำรงตำแหน่งสูงสุดและน้อยที่สุดที่ยังทำงานให้กับ บริษัท อยู่
ระดับความยาก
กำหนดตารางพนักงานด้านบนเขียนแบบสอบถามเพื่อคำนวณระยะเวลายาวนานที่สุด (เป็นวัน) ที่ บริษัท ไปโดยไม่ต้องจ้างหรือยิงใคร
ระดับที่ยากขึ้น
อีกครั้งโดยใช้ตารางเดียวกันเขียนแบบสอบถามที่ส่งคืนพนักงานแต่ละคนและสำหรับแต่ละแถว / พนักงานรวมถึงจำนวนพนักงานที่มากที่สุดที่ทำงานให้กับ บริษัท ได้ตลอดเวลาในระหว่างการดำรงตำแหน่งและวันแรกที่ถึงขีด จำกัด สูงสุด คะแนนพิเศษสำหรับการไม่ใช้เคอร์เซอร์
โดยทั่วไปฉันนั่งสัมภาษณ์ผู้เชี่ยวชาญด้านข้อมูลเท่านั้นดังนั้นคำถามของฉันมักจะยาก แต่สิ่งหนึ่งที่ฉันต้องการจากทุกคนที่จะเขียน SQL ก็คือความรู้เรื่องการรวมและเมื่อใดที่จะใช้การรวมซ้ายและการรวมภายใน ใครก็ตามที่ไม่เข้าใจว่าไม่มีธุรกิจที่สืบค้นฐานข้อมูลในรูปแบบหรือรูปแบบใด ๆ
อีกสิ่งที่ฉันจะทำคือให้แน่ใจว่าพวกเขาเข้าใจวิธีการทำ GROUP BY และใช้ฟังก์ชันการรวม
และความแตกต่างระหว่างยูเนี่ยนและยูเนี่ยนทั้งหมดได้ขจัดผู้สมัครที่น่าสงสารจำนวนมากที่ทำงานของฉัน
ฉันจะถาม"ทำไมและวิธีการที่คุณควร sanitize ค่าการป้อนข้อมูลที่ได้รับจากผู้ใช้ซึ่งจะใช้ในแบบสอบถาม SQL?"
นี้เป็นสิ่งจำเป็นเพื่อป้องกันการฉีด SQL และความสามารถในการตอบคำถามนี้ต้องมีความรู้ที่ดีเกี่ยวกับ SQL ไวยากรณ์และคำสั่ง (เช่นSELECT
, UPDATE
, DROP
, DELETE
ฯลฯ ) รวมทั้งวิธีการที่สามารถโกงโดยการใช้ความคิดเห็น SQL เพื่อทำลายแบบสอบถามและ ฉีดสิ่งที่ผู้ใช้ที่เป็นอันตรายอาจต้องการทำ
ฉันมีมือในการพัฒนาการทดสอบทางเทคนิคสำหรับโปรแกรมเมอร์ฐานข้อมูล คำถามคือสิ่งที่ฉันพิจารณาค่อนข้างพื้นฐาน: เขียนคำสั่งสร้างตารางสำหรับโครงสร้างตารางที่กำหนด; ทำแบบสอบถามง่ายๆ เป็นต้น
ผู้สมัครงานส่วนใหญ่ที่เรียกตัวเองว่าผู้เชี่ยวชาญที่ SQL ทดสอบข้อผิดพลาด หนึ่งกล่าวว่าแม้ว่าเขาจะเป็นนักพัฒนา SQL มาหลายปี แต่เขาก็ไม่เคยเขียนคำสั่ง CREATE TABLE เพราะ GUI ทำเพื่อเขา
เรามีประสบการณ์ที่คล้ายกันกับการทดสอบทางเทคนิคอื่น ๆ สำหรับเจ้าหน้าที่สนับสนุน Windows งานจะคล้ายกับ "สร้างผู้ใช้โดเมน" "เพิ่มเครื่องพิมพ์" "เปลี่ยนการอนุญาตในไฟล์" คนส่วนใหญ่ไม่สามารถทำงานเหล่านี้ได้โดยเฉพาะภายใต้ความกดดัน เราคิดว่าหากคุณสามารถทำได้แม้กระทั่งสิ่งที่เรียบง่ายคุณอาจมีความสามารถพอสมควร
หากคุณต้องการถามคำถามที่เปิดกว้างเพิ่มเติม: ถามคำถามทั่วไปเกี่ยวกับประเภทข้อมูล DATE, DATETIME ... ถามถึงความแตกต่างระหว่างการนำไปใช้งาน / ผลิตภัณฑ์ของผู้ขายที่แตกต่างกัน พูดคุยเกี่ยวกับเครื่องมือบรรทัดคำสั่งตัวตักจำนวนมากเครื่องพิมพ์สวย ๆ ... บางทีคุณอาจเรียนรู้เคล็ดลับใหม่ในระหว่างการสัมภาษณ์