JavaRush /จาวาบล็อก /Random-TH /เราวิเคราะห์ฐานข้อมูลและภาษา SQL - "โครงการ Java จาก A ถึ...
Roman Beekeeper
ระดับ

เราวิเคราะห์ฐานข้อมูลและภาษา SQL - "โครงการ Java จาก A ถึง Z"

เผยแพร่ในกลุ่ม
บทความจากซีรีส์เกี่ยวกับการสร้างโปรเจ็กต์ Java เป้าหมายคือการวิเคราะห์เทคโนโลยีที่สำคัญ ผลลัพธ์คือการเขียนบอทโทรเลข ส่วนเบื้องต้นอยู่ที่นี่ อะโลฮ่า วิศวกรซอฟต์แวร์ วันนี้เรากำลังพูดถึงฐานข้อมูลและภาษา SQL “ โครงการ Java จาก A ถึง Z”: การวิเคราะห์ฐานข้อมูลและภาษา SQL - 1บทความนี้มีไว้สำหรับใคร? ใช่ครับทุกท่านที่สนใจ บางคนสามารถเริ่มต้นการเดินทางด้วยบทความนี้ ส่วนบางคนสามารถฟื้นฟูความทรงจำเกี่ยวกับข้อเท็จจริงที่น่าสนใจได้ ส่วนนี้จะเป็นเชิงทฤษฎีล้วนๆ ก่อนที่เราจะบอกคุณว่าฐานข้อมูลและไวยากรณ์ SQL คืออะไร เราต้องเข้าใจและพิจารณาว่าเหตุใดเราจะศึกษาฐานข้อมูลเหล่านั้น ในขั้นตอนนี้ เราจะพูด ถึงเฉพาะฐานข้อมูล SQL เท่านั้น : เราจะไม่พิจารณา NoSQL ในบทความชุดนี้

ฐานข้อมูล: มันคืออะไร

“ โครงการ Java จาก A ถึง Z”: การวิเคราะห์ฐานข้อมูลและภาษา SQL - 2ฐานข้อมูล (ต่อไปนี้จะเรียกว่า DB) เป็นสถานที่ จัดเก็บ ข้อมูลที่มีโครงสร้างซึ่งสามารถรับได้โดยใช้ภาษาคิวรี ฐานข้อมูลไม่เพียงแต่สามารถจัดเก็บเท่านั้น แต่ยังประมวลผลและเปลี่ยนแปลงข้อมูลในปริมาณมากได้อีกด้วย หมายเหตุ: ลองเปลี่ยนชุดค่าใน Excel อย่างรวดเร็วตามเกณฑ์บางประการ โดยหลักการแล้วไม่มีอะไรซับซ้อน ไม่เหมือนในโลกแห่งความเป็นจริงที่ไม่ใช่ดิจิทัลของเรา เช่น การเปลี่ยนชื่อเลน ถนน เมือง หากทุกอย่างเป็นเสมือนและเข้าสู่ฐานข้อมูลมันจะถูกทำให้เป็นมาตรฐานมันจะเป็นเรื่องเล็ก ๆ น้อย ๆ สองสามอย่าง ตามที่เป็นอยู่ สื่อจัดเก็บข้อมูลจำนวนมากประสบปัญหาเนื่องจากไม่สามารถเปลี่ยนแปลงได้โดยอัตโนมัติ ในบริบทนี้ SQL สำหรับฐานข้อมูลคือภาษาที่ฐานข้อมูลเข้าใจและตอบสนองตามนั้น สมมติว่าการเปลี่ยนชื่อเมืองไม่ใช่เรื่องยาก การเปลี่ยนชื่อ Dnepropetrovsk เป็น Dnipro จะมีลักษณะดังนี้:
UPDATE city SET name = “Днипро” WHERE id = 1231;
คำขอที่ตามมาทั้งหมดไปยังระบบจะสร้างชื่อที่เราต้องการแล้ว

เหตุใดฐานข้อมูลจึงมีความจำเป็น?

อย่างที่ฉันบอกไปแล้วว่าการใช้ฐานข้อมูลคุณสามารถจัดเก็บข้อมูลได้ แต่ข้อมูลนี้คืออะไร? เพื่อให้เข้าใจถึงการใช้ตัวอย่างในชีวิตจริง เราสามารถพูดถึงแอปพลิเคชันบางอย่างได้ ตัวอย่างเช่นเกี่ยวกับบอทโทรเลขตัวเดียวกัน เราต้องการทราบว่ามีคนใช้บอทกี่คน สิ่งนี้สามารถนำไปใช้ได้อย่างไร? ในแอปพลิเคชัน Java ทั่วไป คุณสามารถสร้างองค์ประกอบที่เป็นเอกลักษณ์ได้มากมาย - ชุดซึ่งจะจัดเก็บชื่อเล่นหรือรหัสแชทของผู้ใช้ มันจะได้ผลไหม? จะ. จนกว่าแอปพลิเคชัน Java จะหยุดทำงาน และทันทีที่เริ่มต้นอีกครั้ง ชุดองค์ประกอบเฉพาะจะว่างเปล่า นั่นคือข้อมูลที่จัดเก็บไว้ในแอปพลิเคชันที่ทำงานอยู่ก็หายไป คุณสามารถทำอะไรเกี่ยวกับเรื่องนี้? คุณสามารถย้ายที่เก็บข้อมูลสถานะระบบ (ข้อมูล) จากแอปพลิเคชัน Java ไปที่อื่นได้ คุณสามารถจัดเก็บสิ่งนี้ในรูปแบบ CSV ในไฟล์ปกติบนคอมพิวเตอร์ของคุณ คุณสามารถทำได้ในหนึ่งบรรทัดในไฟล์แยกต่างหาก คุณสามารถดำเนินการนี้แล้วเขียนทับข้อมูลนี้ก่อนที่แอปพลิเคชัน Java จะหยุดทำงาน แม้ว่าการรับประกันว่าการบันทึกจะสำเร็จนั้นยังห่างไกลจากเกือบ 100% เพราะคุณสามารถดึงสายไฟของเซิร์ฟเวอร์ออกและการบันทึกจะไม่เกิดขึ้น วิธีการนี้มีข้อเสียเปรียบที่สำคัญ: ไม่มีฟังก์ชันสำหรับรับ รวบรวม และค้นหาข้อมูลในระดับไฟล์ ได้ แน่นอน คุณสามารถอ่านไฟล์และสร้างออบเจ็กต์ได้ แต่คุณจะต้องปั๊มข้อมูลทั้งหมดลงในแอปพลิเคชันทุกครั้ง และอาจมีได้มากมายเช่นสองสามกิกะไบต์ นี้สามารถหลีกเลี่ยงได้โดยการจัดเก็บข้อมูลไว้ในฐานข้อมูล ยังไง? ผ่านตารางและความสัมพันธ์ระหว่างกัน นี่คือสิ่งที่ฐานข้อมูลเชิงสัมพันธ์ทั้งหมดใช้เป็นหลัก

SQL: ภาษาที่ฐานข้อมูลเข้าใจ

มีระบบการจัดการฐานข้อมูล (ต่อไปนี้จะเรียกว่า DBMS) และภาษาที่พวกเขาเข้าใจคือ SQL SQL เป็นภาษาโปรแกรมสำหรับจัดการและจัดการฐานข้อมูล เพื่อให้เข้าใจถึงวิธีการทำงาน ให้ดูที่รูป: “ โครงการ Java จาก A ถึง Z”: การวิเคราะห์ฐานข้อมูลและภาษา SQL - 3ผู้ใช้ส่งคำสั่ง SQL ไปยัง DBMS, DBMS เข้าใจถึงสิ่งที่ต้องทำ, ดำเนินการ และหากคำขอต้องการรับข้อมูล ก็จะส่งคืน ดังนั้น ในฐานะนักพัฒนา เราจำเป็นต้องเชี่ยวชาญภาษาคิวรี SQL คุณอาจจะคิดว่า “โอ้ ภาษาอื่นนะ ด้วยความช่วยเหลือจากพระเจ้า ฉันแทบจะไม่เข้าใจ Java ที่นี่เลย และคุณกำลังเสนอภาษาอื่นให้ฉันทันที” สิ่งนี้ไม่เป็นความจริง: SQL ถูกประดิษฐ์ขึ้นให้เป็นภาษาข้อกำหนดสำหรับ DBMS เพื่อให้นักบัญชีที่อยู่ห่างไกลจากฐานข้อมูลและการเขียนโปรแกรมโดยทั่วไปสามารถเขียนในภาษานี้ได้ ซึ่งหมายความว่าการเรียนรู้จะไม่ใช่เรื่องยากขนาดนั้น สิ่งสำคัญคือการปฏิบัติ-การปฏิบัติ-การปฏิบัติ วันนี้จะมีทฤษฎี แต่บทความหน้าจะเป็นเกี่ยวกับการปฏิบัติ เนื่องจากฐานข้อมูลเชิงสัมพันธ์คือชุดของตารางอาร์เรย์สองมิติและความสัมพันธ์ระหว่างตารางเหล่านั้น งานจึงจะแก้ไขได้ หากเราพูดถึงตัวอย่าง เราสามารถแสดงสองตาราง - "ประเทศ" และ "เมือง" และวิธีเชื่อมโยงกัน “ โครงการ Java จาก A ถึง Z”: การวิเคราะห์ฐานข้อมูลและภาษา SQL - 4ในขั้นตอนนี้ เป็นสิ่งสำคัญสำหรับเราที่จะเข้าใจว่าบันทึกในตารางเป็นข้อมูลเกี่ยวกับวัตถุบางอย่างจากโลก Java ตัวอย่างเช่น สองตารางนี้สามารถอธิบายเป็นภาษา Java ได้ดังนี้:
public class Country {
   private Long id;
   private String name;
}

public class City {

   private Long id;
   private String name;
   private Country country;
   private Integer population;
}
มันไม่สวยเหรอ? ฐานข้อมูลสามารถจัดเก็บตารางจำนวนเท่าใดก็ได้ ในกรณีของเรามีอยู่สองคน

โครงสร้างตาราง

ฉันคิดว่าทุกคนเคยเจอตาราง Excel ไม่ทางใดก็ทางหนึ่งและคุณเข้าใจเงื่อนไขแถวและคอลัมน์ ในบริบทของฐานข้อมูล เราพูดคุยเพิ่มเติมเกี่ยวกับบันทึกและเขตข้อมูล: “ โครงการ Java จาก A ถึง Z”: การวิเคราะห์ฐานข้อมูลและภาษา SQL - 5ดังนั้นปรากฎว่าแต่ละอ็อบเจ็กต์ของคลาส City นั้นเป็นบันทึกในตารางในฐานข้อมูล

คีย์หลัก

“ โครงการ Java จาก A ถึง Z”: การวิเคราะห์ฐานข้อมูลและภาษา SQL - 6มันมักจะเกิดขึ้นที่เขตข้อมูลในฐานข้อมูลมีค่าเหมือนกัน ตัวอย่างเช่น เครือข่ายโซเชียลที่สามารถค้นหาบุคคลได้มากกว่าหนึ่งคนโดยใช้ชื่อ นามสกุล และแม้กระทั่งนามสกุล และฐานข้อมูลเชิงสัมพันธ์จำเป็นต้องมีฟิลด์เฉพาะที่สามารถใช้เพื่อเข้าถึงบันทึกได้ สิ่งนี้เรียกว่าคีย์แรกหรือคีย์หลัก โดยทั่วไปแล้ว ฟิลด์ ID(id) จะถูกใช้เป็นคีย์ดังกล่าว ซึ่งย่อมาจาก identifier นี่คือเหตุผลที่คุณต้องเพิ่ม เขต ข้อมูล ID ให้กับทุก ตาราง“ โครงการ Java จาก A ถึง Z”: การวิเคราะห์ฐานข้อมูลและภาษา SQL - 7

กุญแจภายนอก

ในตัวอย่างของเรา เขตข้อมูลดังกล่าวอยู่ในตารางเมือง ซึ่งใช้คีย์จากประเทศ และทำงานดังนี้: แต่ละเมืองรู้ตัวระบุข้อมูลเฉพาะสำหรับประเทศของตน และหากเรานำไปใช้และสร้างแบบสอบถามในฐานข้อมูล เราจะได้รับข้อมูลที่ครอบคลุมเกี่ยวกับประเทศนั้น ดังที่คุณเห็นในภาพ มีความสัมพันธ์ระหว่างสองตาราง: “ โครงการ Java จาก A ถึง Z”: การวิเคราะห์ฐานข้อมูลและภาษา SQL - 8หลักการของคีย์ต่างประเทศจะแสดงอยู่ที่นี่

SQL มีส่วนใดบ้าง?

อย่างไรก็ตาม ในระหว่างการสัมภาษณ์ พวกเขามักถูกถามว่าการดำเนินการใดใน SQL:
  • DDL (Data Definition Language) คือกลุ่มตัวดำเนินการที่เปลี่ยนแปลง/สร้างตาราง โครงสร้าง และอื่นๆ นั่นคือ การสร้างตาราง การลบ การสร้าง/การลบฟิลด์ในตาราง การสร้างคีย์หลักใหม่เป็นต้น
  • DML (Data Manipulation Language) คือกลุ่มผู้ปฏิบัติงานที่จัดการการแก้ไขข้อมูล สิ่งเหล่านี้คือการดำเนินการทั้งหมดที่เปลี่ยนแปลงข้อมูลในฐานข้อมูล: การเพิ่ม รับ การเปลี่ยนแปลง และการลบ
  • DCL (ภาษาควบคุมข้อมูล) เป็นวิธีการยืนยันสิทธิ์ของผู้ใช้ในการดำเนินการ การดำเนินการเพื่อให้การเข้าถึงและสิทธิ์แก่ผู้ใช้เฉพาะเพื่อให้สามารถดำเนินการ DDL/DML ได้

มีข้อมูลประเภทใดบ้างใน SQL

ตารางสามารถจัดเก็บและประมวลผลข้อมูลบางประเภทได้ ทุกอย่างที่นี่จะคล้ายกับสิ่งที่เราใช้ใน Java เรามาพูดถึงประเด็นหลักกันดีกว่า มีแค่ 3 อันเท่านั้น เราจะเพิ่มอันอื่นตามความจำเป็น และ/หรือ ต้องการ“ โครงการ Java จาก A ถึง Z”: การวิเคราะห์ฐานข้อมูลและภาษา SQL - 9ดังที่เห็นจากภาพคือ
  • INT - ค่าจำนวนเต็ม ใช้สำหรับตัวระบุเฉพาะและจำนวนเต็มธรรมดา
  • VARCHARคือString ของเรา ;
  • DATEคือ LocalDate ของเรา
จนถึงตอนนี้ทุกอย่างก็เรียบง่ายใช่ไหม? มีการระบุประเภทฟิลด์เมื่อสร้างตาราง เป็นที่ชัดเจนว่าจะไม่สามารถเขียนค่าประเภทอื่นลงในฟิลด์ได้

ตัวดำเนินการ SQL คืออะไร

โอเปอเรเตอร์เป็นคำสั่งแยกต่างหากที่ดำเนินการบางอย่าง ตัวดำเนินการประกอบด้วยประโยค ซึ่งจะประกอบด้วยคำหลักที่ใช้ในการสืบค้น ลองดูตัวอย่าง: “ โครงการ Java จาก A ถึง Z”: การวิเคราะห์ฐานข้อมูลและภาษา SQL - 10น่าสนใจกว่าที่นี่ มีการสร้างแบบสอบถามไว้ที่นี่แล้ว พวกเขากำลังทำอะไรอยู่ที่นั่น? ง่ายมาก โดยบอกว่า: “นำสามฟิลด์ (ชื่อ อายุ และวันที่สร้าง) จากตารางลูกค้า เลือกเฉพาะระเบียนที่มีชื่อเท่ากับโรมัน”

บทสรุป

ในบทความนี้เราเริ่มศึกษาฐานข้อมูล เราเข้าใจว่ามันคืออะไรและทำไมเราถึงต้องการมัน ต่อไป เราจะพูดถึงสัญญาณแรกของ SQL ซึ่งเราจะพูดถึงรายละเอียดเพิ่มเติมในบทความถัดไป ตามปกติ ฉันขอแนะนำให้ลงทะเบียนบน GitHub และติดตามบัญชีของฉันเพื่อติดตามซีรีส์นี้และโปรเจ็กต์อื่น ๆ ของฉันที่ฉันทำที่นั่น

การบ้าน

เพื่อเพิ่มความสนใจให้กับบทความชุดนี้เกี่ยวกับ JRTB จะมีการมอบหมายการบ้านเป็นครั้งคราว ตัวอย่างเช่น หากไม่มีการบ้านในวันนี้ บทความถัดไปจะเข้าใจได้ยากขึ้นมาก เพราะจะมีการฝึกฝนมากมายที่นั่น ดังนั้นงานคือการติดตั้ง MySQL DBMS บนคอมพิวเตอร์ของคุณและเข้าสู่ระบบฐานข้อมูลผ่านคอนโซลหรือผ่านโซลูชันอื่น ๆ ขอบคุณทุกท่านที่อ่าน แล้วพบกันใหม่!

รายการเนื้อหาทั้งหมดในซีรีส์นี้อยู่ที่ตอนต้นของบทความนี้

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