บทความจากซีรีส์เกี่ยวกับการสร้างโปรเจ็กต์ Java (ลิงก์ไปยังเนื้อหาอื่นอยู่ท้ายสุด) เป้าหมายคือการวิเคราะห์เทคโนโลยีที่สำคัญ ผลลัพธ์คือการเขียนบอทโทรเลข
สุขภาพแข็งแรงนะผู้อ่านที่รัก วันนี้เราจะพูดนิดหน่อยและเขียนมากขึ้นเพราะมือของเราจำได้ดีกว่าตาของเรามาก คุณอาจสงสัยว่า: ทำไมเราถึงใช้ MySQL? ตัวอย่างเช่น มี PostgreSQL เดียวกันและโซลูชันอื่นๆ ทุกอย่างเรียบง่ายที่นี่ ก่อนอื่นมันฟรี ประการที่สองมีอินเทอร์เฟซ UI ที่สะดวก (เราจะพูดถึงมันในบทความแยกต่างหาก) ประการที่สามเธอคุ้นเคยและถูกใจฉัน นอกเหนือจากที่กล่าวมาทั้งหมด MySQL ยังเป็นเรื่องธรรมดามากอีกด้วย
ดีใจกับคนที่ทำ! ไม่สำคัญว่าคุณจะอยู่ในระดับใดใน JavaRush สิ่งสำคัญคือต้องสามารถติดตั้งและกำหนดค่าเครื่องมือที่จำเป็นสำหรับการทำงานตามคู่มือได้ และฉันรับรองกับคุณว่าจะมีมากมาย คนที่พยายามแต่ไม่สำเร็จก็ไม่กลัวเช่นกัน สิ่งนี้ไม่ได้เกิดขึ้นในครั้งแรกเสมอไป บางครั้งคุณต้องหยุดพักแล้วลองอีกครั้งด้วยความเข้มแข็งที่สดใหม่ ใครเป็นผู้ติดตั้ง MySQL ด้วยตัวเอง - เขียน "+" ในความคิดเห็นเพื่อให้ฉันรู้ว่ามีคนกำลังทำอยู่ ฉันจะทำสิ่งนี้ด้วยตัวเองด้วย เนื่องจากฉันไม่มีแล็ปท็อป Windows อีกต่อไป ฉันจึงจะแสดงบน MacBook ฉันไม่คิดว่ากระบวนการติดตั้งจะแตกต่างกันมากนัก สำหรับผู้ที่ต้องการติดตั้งเองโดยใช้คู่มือภาษาอังกฤษ กรุณาคลิกที่นี่
ดาวน์โหลดและเปิดใช้งาน อย่างไรก็ตาม ทุกอย่างไม่เหมาะกับฉันทันที ปรากฎว่า Apple ไม่อนุญาตให้ติดตั้งเวอร์ชันล่าสุด:
คุณสามารถปิดการใช้งานได้แน่นอน แต่ MacBook ใช้งานได้และฉันจะไม่ยุ่งกับการตั้งค่าของมัน ดังนั้นจากการลองผิดลองถูกฉันจึงพบเวอร์ชันที่สามารถติดตั้งได้ - นี่คือ5.7.21 หากต้องการค้นหาเวอร์ชันอื่น ให้ไปที่ แท็บ เอกสารเก่าแล้วเลือกเวอร์ชันที่ต้องการ
จากนั้นให้เรียกใช้ไฟล์ที่ดาวน์โหลด คลิกถัดไปถัดไปถัดไปแต่สุดท้ายระวัง! จะมีชื่อผู้ใช้และรหัสผ่านเพื่อเข้าสู่ฐานข้อมูล สำหรับฉันมันมีลักษณะเช่นนี้:
มันบอกว่าที่นี่จะมีผู้ใช้ที่มีชื่อrootและรหัสผ่านVac/zto= .24q เป็นอันเสร็จสิ้นการติดตั้ง
เราเข้าไปแล้วดูว่าต้องเปิดเซิร์ฟเวอร์ก่อน ในการดำเนินการนี้เพียงคลิกเริ่มเซิร์ฟเวอร์ MySQLเท่านี้ก็เรียบร้อย ใช่ คุณยังสามารถทำเครื่องหมายในช่องเพื่อให้เซิร์ฟเวอร์เริ่มทำงานในเบื้องหลังทุกครั้งที่เครื่องเริ่มทำงานได้
สิ่งสำคัญคือต้องทราบว่าฉันจะเริ่มต้นคำขอทั้งหมดในเทอร์มินัลด้วย สัญลักษณ์ $เพื่อให้ชัดเจน ถัดไป คุณต้องเชื่อมต่อโดยตรงกับเซิร์ฟเวอร์ MySQL ผ่านทางบรรทัดคำสั่ง หากต้องการทำสิ่งนี้ ให้เปิดเทอร์มินัลแล้วเขียน: $ mysql และมีสองตัวเลือก:
ที่นั่นเราเขียนรหัสผ่านและเรายินดีในรูปแบบนี้:
เพียงบรรทัดสุดท้ายบอกว่าเราลงชื่อเข้าใช้ MySQL เทอร์มินัลเซิร์ฟเวอร์ แต่รหัสผ่านสำหรับรูทนี้กลายเป็นรหัสผ่านครั้งเดียวและจำเป็นต้องเปลี่ยนเป็นรหัสผ่านอื่น ด้วยเหตุผลด้านความปลอดภัยแน่นอน หากเราไม่เปลี่ยนแปลงและพยายามสร้างฐานข้อมูลใหม่บนเซิร์ฟเวอร์ เราจะได้รับการตอบสนองต่อไปนี้: ข้อผิดพลาด 1820 (HY000): คุณต้องรีเซ็ตรหัสผ่านของคุณโดยใช้คำสั่ง ALTER USER ก่อนที่จะดำเนินการคำ สั่งนี้
พวกเขาถูกบังคับให้พูด โอเคมันยากสำหรับเราเหรอ? มาทำให้รหัสผ่านง่ายขึ้น (เฉพาะงานในพื้นที่เท่านั้น สำหรับงานจริงรหัสผ่านจะต้องซับซ้อนแน่นอน) สมมติว่าroot∫เช่นชื่อผู้ใช้ หากต้องการเปลี่ยนรหัสผ่าน คุณต้องป้อนบรรทัด: ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; และคำตอบจะเป็นดังนี้:
เพื่อให้แน่ใจว่าทุกอย่างทำงานได้อย่างถูกต้อง ลองสร้างฐานข้อมูลใหม่โดยใช้ไวยากรณ์ต่อไปนี้ : $ CREATE DATABASE test_db; เพื่อให้แน่ใจว่าฐานข้อมูลดังกล่าวถูกสร้างขึ้นบนเซิร์ฟเวอร์เราเขียนคำสั่ง: $ SHOW DATABASES; และผลก็คือเราได้รับสิ่งต่อไปนี้:
เท่านั้นเอง :) เป็นไปไม่ได้ที่จะบอกว่ามันง่ายและรวดเร็ว ดังนั้นใครก็ตามที่ทำเอง - ให้ความเคารพเป็นพิเศษ ส่วนใครที่ยังไม่ได้ทำก็ไม่ต้องกังวลไป มีคู่มือ การติดตั้งทุกประเภท:
ทุกอย่างอธิบายไว้ที่นั่นอย่างมีเหตุผล สิ่งเดียวคือทุกอย่างเป็นภาษาอังกฤษ ตอนนี้เราเขียนบรรทัดแรกของเราใน SQL
โดยทั่วไปคำว่าDROPมีหน้าที่ในการลบบางสิ่งออก ในกรณีนี้ เราได้ลบฐานข้อมูลแล้ว แต่ยังสามารถใช้เพื่อวัตถุประสงค์อื่นได้ (เช่น การวางโต๊ะ) และตอนนี้เพื่อเชื่อฉันตรวจสอบผลลัพธ์ มาดูกันว่ามีฐานข้อมูลเหลืออยู่กี่ฐานข้อมูล: $ SHOW DATABASES;
ดังที่เราเห็นไม่มีฐานข้อมูลชื่อ test_db CHTD :D
ขั้นตอนต่อไปคือการสร้างตาราง ที่? ก่อนอื่น เรามาสร้างตารางกับประเทศกันก่อน ทำไมเป็นอย่างนั้น? เนื่องจากเมืองต่างๆ จำเป็นต้องมีรหัสต่างประเทศสำหรับประเทศที่เมืองนั้นตั้งอยู่ และสามารถรับได้หลังจากที่ประเทศเหล่านี้โดยทั่วไปเริ่มมีอยู่ในฐานข้อมูลแล้ว (ต่อไปนี้ - จะใช้ชื่อย่อจากฐานข้อมูล) ดังที่เราจำได้จากบทความที่แล้วในตารางที่อธิบายประเทศต่างๆ เรามีสองฟิลด์ ได้แก่ ID และชื่อ โดยที่ ID เป็นตัวระบุที่ไม่ซ้ำกัน และชื่อคือชื่อประเทศ ดังนั้นการสร้างฐานข้อมูลดังกล่าวจึงง่ายเหมือนกับการปอกเปลือกลูกแพร์ เราเขียน: $ CREATE TABLE ประเทศ (id INT ชื่อ VARCHAR(30));
อย่างที่คุณเห็นทุกอย่างเป็นไปด้วยดี โดยการเปรียบเทียบกับ SHOW DATABASES เราสามารถดูรายการตารางได้: $ SHOW TABLES;
นี่โต๊ะของเรานะ ตอนนี้เรามาเรียนรู้วิธีการลบตารางกัน เมื่อต้องการทำเช่นนี้ เราเขียน: $ DROP TABLE ประเทศ;
สิ่งสำคัญคือต้องทราบว่าเมื่อลบตารางหรือฐานข้อมูลแล้ว จะไม่สามารถกู้คืนได้!
อย่างที่คุณเห็น ข้อมูลทั้งหมดเกี่ยวกับตารางจะถูกบันทึกไว้ที่นี่ หากต้องการเพิ่มบางสิ่งลงในตาราง คุณต้องใช้ คำสั่ง INSERT INTO table_name VALUES( ) มาเพิ่มสามระเบียนสำหรับสามประเทศ: $ INSERT INTO country VALUES (1, 'Ukraine'); $ INSERT INTO ค่านิยมของประเทศ (2, 'รัสเซีย'); $ INSERT INTO ค่าประเทศ (3, 'Belorus');
หากต้องการดูสิ่งที่เก็บไว้ในฐานข้อมูล เราจะใช้คำของ่ายๆ เพื่อรับข้อมูล เมื่อต้องการทำเช่นนี้ เราต้องการรับข้อมูลของเขตข้อมูลทั้งหมดจากตารางประเทศ จำประโยคก่อนหน้าอย่างระมัดระวังเพราะแบบสอบถาม sql จะเป็นดังนี้: $ SELECT * FROM country; โดยที่ * หมายถึง ต้องกรอกข้อมูลให้ครบทุกช่อง
แค่นี้เราก็สวยได้ หากเราต้องการได้เฉพาะฟิลด์ใดฟิลด์หนึ่ง นั่นไม่ใช่ปัญหา แทนที่จะติดดาว เราจะเขียนชื่อของฟิลด์ที่ควรคั่นด้วยเครื่องหมายจุลภาค ลองด้วยตัวเอง ;) เราได้สร้างตารางแล้ว แต่มีข้อมูลไม่เพียงพอ ขนาดประชากรคงไม่เจ็บหรอกใช่ไหม? และจะทำอย่างไร?
ดังที่คุณเห็นจากภาพ เราได้เพิ่มฟิลด์ใหม่ลงในตารางสำเร็จแล้ว และตรวจสอบด้วยคำสั่งที่สองว่าฟิลด์นั้นอยู่ในสคีมา ขั้นตอนที่สองคือการอัปเดตรายการในตารางและกำหนดค่า เอาตัวเลขมาจากวิกิพีเดียครับ ไม่ใช่ว่าฉันเชื่อใจพวกเขา แต่อย่างไรก็ตาม นี่เป็นวิธีที่เร็วและง่ายที่สุด เมื่อต้องการทำเช่นนี้ ให้ใช้คำสั่ง DML อื่น แต่ก่อนอื่น สมมติว่าเราต้องการทำอะไร: เราต้องการอัปเดตตารางประเทศ ทำให้ฟิลด์ประชากรเท่ากับ 41806221 ในบันทึกโดยที่ id = 1 และนี่คือลักษณะของโครงสร้างนี้: อัปเดตtable_name SET table_row1 = value WHERE table_row2 = ค่า2; ตามนั้นเราเขียนว่า: $ อัปเดตประเทศ ประชากร SET = 41806221 WHERE id = 1; ที่นี่เราใช้คีย์เวิร์ด WHERE
เป็นครั้งแรก จำเป็นต้องเพิ่มค่าสำหรับการกรอง ตัวอย่างเช่น ครั้งนี้เราบอกว่าจำเป็นต้องอัปเดตเฉพาะฟิลด์ (ฟิลด์) ที่มี id เท่ากับ 1 เท่านั้น (จนกว่าเราจะบอก sql ว่านี่คือคีย์หลัก - อาจมีหลายรายการ) นอกจากนี้เรายังสามารถระบุเงื่อนไขเช่น WHERE id > 2 หากเราไม่ได้ระบุการกรองเลย ค่านี้จะถูกเขียนลงในบันทึกตารางทั้งหมด สำหรับรัสเซีย เบลารุส และประเทศอื่น ๆ อัปเดตตัวเอง ;) ทีนี้ลองรับข้อมูลจากตารางสำหรับฟิลด์ชื่อและประชากร โดยที่ id มากกว่า 1 $ SELECT ชื่อ ประชากร จากประเทศ WHERE id >1; ดังนั้นเราจึงได้รับเฉพาะสาขาที่เราต้องการเท่านั้น การใช้ INSERT INTO ทำให้เราสามารถระบุได้ว่าฟิลด์ใดที่เราต้องการเพิ่มและฟิลด์ใดที่เราต้องการเว้นว่างไว้ เพื่อดำเนินการนี้ เราเขียน: $ INSERT INTO country (ชื่อ, ประชากร) VALUES('Georgia', 1234566); หากต้องการตรวจสอบสิ่งที่เกิดขึ้น มาดูรายการฟิลด์ทั้งหมด: $ SELECT * FROM country; หากไม่มีรหัส รายการจะไม่ดี และแน่นอนว่าประชากรถูกพรากไปจากส่วนหัว ดังนั้นคุณต้องลบออก ใช้ คำสั่ง DELETE FROM table_name : $ DELETE FROM country WHERE name = 'Georgia'; วิธีนี้ทำให้เราได้เรียนรู้วิธีลบฟิลด์ออกจากตาราง!["โครงการ Java จาก A ถึง Z": เราวิเคราะห์ฐานข้อมูลและภาษา SQL ตอนที่ 2 - 26]()
!["โครงการ Java จาก A ถึง Z": เราวิเคราะห์ฐานข้อมูลและภาษา SQL ส่วนที่ 2 - 27]()
- ตรวจการบ้าน
- การติดตั้ง MySQL บน MacOS
- เข้าสู่ระบบบรรทัดคำสั่ง MySQL
- เขียนบรรทัดแรกของเราใน SQL
- การบ้าน
- ผลลัพธ์
ตรวจการบ้าน
ครั้งสุดท้ายที่ฉันมอบหมายงาน - ติดตั้ง MySQL บนเครื่องของฉันและเข้าสู่ระบบ ผ่านคอนโซลหรือด้วยวิธีอื่นใด ทุกอย่างเสร็จแล้วเหรอ?
การติดตั้ง MySQL บน MacOS
ก่อนอื่น ไปที่ลิงค์ต่อไปนี้เลือกระบบปฏิบัติการ ไม่ว่าจะเป็น Windows, Ubuntu หรือ MacOS ดังที่แสดงด้านล่าง:



เข้าสู่ระบบบรรทัดคำสั่ง MySQL
หากต้องการเข้าสู่ระบบ คุณต้องตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ MySQL เปิดอยู่ ในการดำเนินการนี้ไปที่System Preferencesค้นหาไอคอน MySQL ที่นั่น:

- หากการตอบสนองคือ“ERROR 1045 (28000): Access rejected for user 'roman_beskrovnyi'@'localhost' (usingpassword: NO"แสดงว่าเซิร์ฟเวอร์ได้รับการติดตั้งและกำลังถูกเรียกคืน คุณเพียงแค่ต้องส่งคำสั่งที่ถูกต้อง ถึงมัน
- หากไม่พบคำตอบ: mysqlไม่เป็นไร แค่ไม่มีลิงก์ไปยังเซิร์ฟเวอร์ ในการดำเนินการนี้ คุณจะต้องสร้างนามแฝงด้วยตัวแปร mysql ดังนั้นเราจึงเขียนบรรทัดต่อไปนี้:
$ นามแฝง mysql=/usr/local/mysql/bin/mysql
สิ่งนี้จะช่วยได้สำหรับเซสชันเทอร์มินัลนี้เท่านั้น แต่เราไม่ต้องการอีกต่อไป - เราจะไม่ทำงานผ่านเทอร์มินัลตลอดเวลาอย่างแน่นอน
- ไม่ได้ติดตั้ง MySQL อย่าหลอกคอมพิวเตอร์ของคุณ





เขียนบรรทัดแรกของเราใน SQL
ดังที่คุณอาจสังเกตเห็นข้างต้น เรารู้สองคำสั่ง:- สร้างฐานข้อมูล - สร้างฐานข้อมูลบนเซิร์ฟเวอร์
- แสดงฐานข้อมูล - แสดงฐานข้อมูลที่สร้างและพร้อมใช้งานทั้งหมดบนเซิร์ฟเวอร์


สร้างฐานข้อมูลและตารางของคุณเอง
สร้างฐานข้อมูลเมือง: $ สร้างเมืองฐานข้อมูล; หากต้องการทำงานในฐานข้อมูลใดฐานข้อมูลหนึ่ง คุณจะต้องเข้าสู่ระบบฐานข้อมูลนั้น หากต้องการทำสิ่งนี้ให้ใช้ คำสั่ง USE Database_nameหลังจากนั้นคำสั่งทั้งหมดสำหรับการทำงานกับตารางจะถูกดำเนินการในฐานข้อมูลนี้ $ ใช้เมือง; ดังที่เห็นได้จากการตอบสนอง - ฐานข้อมูลถูกเปลี่ยนการเปลี่ยนไปใช้ฐานข้อมูลนี้สำเร็จ



ทำงานกับโต๊ะ
มาคืนค่าตารางที่เราสร้างขึ้นกันเถอะ ในการทำเช่นนี้คุณเพียงแค่ต้องทำซ้ำสิ่งที่คุณทำไปแล้ว หากต้องการดูโครงสร้างตาราง คุณต้องใช้คำสั่งต่อไปนี้ - DESC table_name : $ DESC country;


- เพิ่มฟิลด์ใหม่ให้กับสคีมาตาราง - ประชากร
- อัพเดตรายการที่มีอยู่





การบ้าน
การบ้านจะเป็นดังนี้:- คุณต้องเพิ่มคีย์หลัก (PRIMARY KEY) จากฟิลด์ ID ลงในสคีมาตารางประเทศ
- เพิ่มประเทศอื่นลงในตารางประเทศ - มอลโดวา
- ตามโครงร่างของบทความก่อนหน้านี้ ให้สร้างเมืองตารางซึ่งจะมีฟิลด์ที่อธิบายไว้ทั้งหมด ชื่อฟิลด์จะเป็นดังนี้: id, ชื่อ, country_id, ประชากร
- เพิ่มคีย์หลักลงในตารางเมือง
- เพิ่มคีย์ต่างประเทศลงในตารางเมือง
มาสรุปกัน
เราทำสิ่งต่างๆ มากมายในบทความนี้ ขั้นแรก เราติดตั้งและเริ่มต้นเซิร์ฟเวอร์ฐานข้อมูล MySQL ประการที่สอง เราได้เรียนรู้รายการคำหลักและคำค้นหาทั้งหมด ซึ่งตอนนี้เราสามารถสร้าง/ลบฐานข้อมูลและตารางได้แล้ว เราเรียนรู้วิธีการเพิ่มข้อมูลลงในตาราง อัปเดต และลบข้อมูลเหล่านั้น นี่คือคำสั่งทั้งหมดที่เราใช้พร้อมคำอธิบาย:- สร้างฐานข้อมูลdatabase_name; - สร้างฐานข้อมูลใหม่
- แสดงฐานข้อมูล; — ดูรายการฐานข้อมูล
- วางฐานข้อมูลdatabase_name; - ลบฐานข้อมูล
- ใช้ฐานข้อมูล_ชื่อ; - ทำงานในฐานข้อมูล
- สร้างตาราง table_name (id INT, ....); - สร้างตาราง
- แสดงตาราง; - ดูรายการตาราง
- รายละเอียดตาราง table_name; — ดูแผนภาพตาราง
- วางตาราง table_name; - ลบตาราง
- แทรกลงใน table_name ค่า (); - เพิ่มฟิลด์ลงในตาราง
- SELECT * จาก table_name โดยที่ table_row = ค่า; — รับเขตข้อมูลในตารางภายใต้เงื่อนไขหลัง WHERE
- SELECT * จาก table_name; - รับทุกช่องในตาราง
- แก้ไขตาราง table_name เพิ่มคอลัมน์ column_name COLUMN_TYPE; — เพิ่มฟิลด์ฟิลด์ใหม่ให้กับสคีมาตาราง
- อัปเดต talbe_name SET talbe_row1 = value1 โดยที่ table_row2 = value2; — อัปเดตบันทึกในตาราง: ตั้งค่าของฟิลด์หนึ่งโดยขึ้นอยู่กับเงื่อนไขสำหรับฟิลด์อื่น
- ลบออกจาก table_name โดยที่ table_row1 = value1; — ลบฟิลด์ (หรือฟิลด์) ออกจากตารางภายใต้เงื่อนไขบางประการ
GO TO FULL VERSION