สอบถามเพื่อเพิ่มแถวลงในตาราง sql เปลี่ยนคำขอโดยใช้คำสั่ง SQL ตัวอย่างการใช้งานแบบสอบถาม

อัปเดตครั้งล่าสุด: 07/13/2017

หากต้องการเพิ่มข้อมูล ให้ใช้คำสั่ง INSERT ซึ่งมีไวยากรณ์ที่เป็นทางการดังต่อไปนี้:

INSERT table_name [(column_list)] ค่า (value1, value2, ... valueN)

อันดับแรกคือนิพจน์ INSERT INTO จากนั้นในวงเล็บคุณสามารถระบุรายการคอลัมน์ที่คั่นด้วยเครื่องหมายจุลภาคที่ควรเพิ่มข้อมูลและในตอนท้ายหลังจากคำว่า VALUES ค่าที่จะเพิ่มสำหรับคอลัมน์จะแสดงรายการอยู่ใน วงเล็บ

ตัวอย่างเช่น สมมติว่าฐานข้อมูลต่อไปนี้ถูกสร้างขึ้นก่อนหน้านี้:

สร้างผลิตภัณฑ์ฐานข้อมูลdb; ไปใช้ผลิตภัณฑ์db; สร้างผลิตภัณฑ์ตาราง (Id INT IDENTITY PRIMARY KEY, ProductName NVARCHAR(30) NOT NULL, ผู้ผลิต NVARCHAR(20) NOT NULL, ProductCount INT DEFAULT 0, Price MONEY NOT NULL)

มาเพิ่มหนึ่งบรรทัดโดยใช้คำสั่ง INSERT:

แทรกค่าผลิตภัณฑ์ ("iPhone 7", "Apple", 5, 52000)

หลังจากดำเนินการสำเร็จใน SQL Server Management Studio ข้อความ "1 แถวที่ได้รับผลกระทบ" ควรปรากฏในฟิลด์ข้อความ:

ควรพิจารณาว่าค่าสำหรับคอลัมน์ในวงเล็บหลังจากคีย์เวิร์ด VALUES ถูกส่งไปตามลำดับที่ประกาศไว้ ตัวอย่างเช่น ในคำสั่ง CREATE TABLE ด้านบน คุณจะเห็นว่าคอลัมน์แรกคือ Id แต่เนื่องจากมีการระบุแอตทริบิวต์ IDENTITY ค่าของคอลัมน์นี้จะถูกสร้างขึ้นโดยอัตโนมัติและสามารถละเว้นได้ คอลัมน์ที่สองแสดงถึง ProductName ดังนั้นค่าแรกซึ่งเป็นสตริง "iPhone 7" จะถูกส่งผ่านไปยังคอลัมน์นั้น ค่าที่สอง - สตริง "Apple" จะถูกส่งไปยังคอลัมน์ที่สามของผู้ผลิตเป็นต้น นั่นคือค่าจะถูกส่งผ่านไปยังคอลัมน์ดังนี้:

    ชื่อสินค้า: "ไอโฟน 7"

    ผู้ผลิต: "แอปเปิล"

นอกจากนี้ เมื่อป้อนค่า คุณสามารถระบุคอลัมน์ทันทีที่จะเพิ่มค่าได้:

INSERT INTO Products (ชื่อผลิตภัณฑ์, ราคา, ผู้ผลิต) ค่า ("iPhone 6S", 41000, "Apple")

ในที่นี้ระบุค่าไว้เพียงสามคอลัมน์เท่านั้น ยิ่งกว่านั้นตอนนี้ค่าจะถูกส่งตามลำดับคอลัมน์:

    ชื่อสินค้า: "ไอโฟน 6S"

    ผู้ผลิต: "แอปเปิล"

สำหรับคอลัมน์ที่ไม่ได้ระบุ (ในกรณีนี้คือ ProductCount) ค่าเริ่มต้นจะถูกเพิ่มหากมีการระบุแอตทริบิวต์ DEFAULT หรือค่า NULL อย่างไรก็ตาม คอลัมน์ที่ไม่ได้ระบุจะต้องเป็นค่าว่างหรือมีแอตทริบิวต์ DEFAULT

เรายังสามารถเพิ่มหลายบรรทัดพร้อมกันได้:

ใส่มูลค่าผลิตภัณฑ์ ("iPhone 6", "Apple", 3, 36000), ("Galaxy S8", "Samsung", 2, 46000), ("Galaxy S8 Plus", "Samsung", 1, 56000)

ในกรณีนี้จะมีการเพิ่มสามแถวลงในตาราง

นอกจากนี้ เมื่อเพิ่ม เราสามารถระบุได้ว่าคอลัมน์ควรมีค่าเริ่มต้นโดยใช้คีย์เวิร์ด DEFAULT หรือค่า NULL:

แทรกลงในผลิตภัณฑ์ (ชื่อผลิตภัณฑ์, ผู้ผลิต, จำนวนผลิตภัณฑ์, ราคา) ค่า ("Mi6", "Xiaomi", ค่าเริ่มต้น, 28000)

ในกรณีนี้ จะใช้ค่าเริ่มต้นสำหรับคอลัมน์ ProductCount (หากตั้งค่าไว้ หากไม่ได้ตั้งค่าไว้ จะเป็น NULL)

หากคอลัมน์ทั้งหมดมีแอตทริบิวต์ DEFAULT ที่ระบุค่าเริ่มต้นหรือเป็นค่าว่าง คุณสามารถแทรกค่าเริ่มต้นสำหรับคอลัมน์ทั้งหมดได้:

แทรกลงในค่าเริ่มต้นของผลิตภัณฑ์

แต่ถ้าเรารับตารางผลิตภัณฑ์คำสั่งดังกล่าวจะล้มเหลวโดยมีข้อผิดพลาดเนื่องจากหลายฟิลด์ไม่มีแอตทริบิวต์ DEFAULT และในเวลาเดียวกันไม่อนุญาตให้มีค่า NULL

ในส่วนก่อนหน้านี้ เราได้ดูงานการดึงข้อมูลจากตารางที่สร้างไว้ล่วงหน้า ตอนนี้ถึงเวลาหาคำตอบว่าเราสามารถสร้าง/ลบตาราง เพิ่มบันทึกใหม่ และลบรายการเก่าได้อย่างไร เพื่อวัตถุประสงค์เหล่านี้ใน SQLมีตัวดำเนินการเช่น: สร้าง- สร้างตาราง เปลี่ยนแปลง- เปลี่ยนโครงสร้างตาราง หยด- ลบตารางหรือฟิลด์ แทรก- เพิ่มข้อมูลลงในตาราง มาเริ่มทำความรู้จักกับโอเปอเรเตอร์กลุ่มนี้จากโอเปอเรเตอร์กันดีกว่า แทรก.

1. การเพิ่มบรรทัดทั้งหมด

ตามชื่อผู้ดำเนินการ แทรกใช้ในการแทรก (ต่อท้าย) แถวลงในตารางฐานข้อมูล การเพิ่มสามารถทำได้หลายวิธี:

  • - เพิ่มหนึ่งบรรทัดเต็ม
  • - เพิ่มส่วนหนึ่งของบรรทัด
  • - เพิ่มผลลัพธ์แบบสอบถาม

ดังนั้น ในการเพิ่มแถวใหม่ลงในตาราง เราจำเป็นต้องระบุชื่อตาราง แสดงรายการชื่อคอลัมน์ และระบุค่าสำหรับแต่ละคอลัมน์โดยใช้โครงสร้าง ใส่เข้าไป table_name (field1, field2 ...) ค่านิยม (ค่า 1 ค่า 2...)- ลองดูตัวอย่าง

แทรกค่าผู้ขาย (ID, ที่อยู่, เมือง, ชื่อผู้ขาย, ประเทศ)("6", "1st Street", "ลอสแอนเจลิส", "แฮร์รี่ มอนโร", "สหรัฐอเมริกา")

คุณยังสามารถเปลี่ยนลำดับของชื่อคอลัมน์ได้ แต่ในขณะเดียวกันคุณต้องเปลี่ยนลำดับของค่าในพารามิเตอร์ ค่านิยม.

2. การเพิ่มส่วนหนึ่งของบรรทัด

ในตัวอย่างก่อนหน้านี้ เมื่อใช้โอเปอเรเตอร์ แทรกเราได้ทำเครื่องหมายชื่อคอลัมน์ตารางไว้อย่างชัดเจน เมื่อใช้ไวยากรณ์นี้ เราสามารถข้ามบางคอลัมน์ได้ ซึ่งหมายความว่าคุณป้อนค่าสำหรับบางคอลัมน์ แต่ไม่ได้ระบุค่าสำหรับคอลัมน์อื่น ตัวอย่างเช่น:

แทรกลงในค่าผู้ขาย (ID, เมือง, ชื่อผู้ขาย)("6", "ลอสแอนเจลิส", "แฮร์รี มอนโร")

ในตัวอย่างนี้ เราไม่ได้ระบุค่าสำหรับสองคอลัมน์ ที่อยู่และ ประเทศ- คุณสามารถแยกบางคอลัมน์ออกจากคำสั่งได้ ใส่เข้าไปหากอนุญาตให้ใช้คำจำกัดความของตาราง ในกรณีนี้ ต้องเป็นไปตามเงื่อนไขข้อใดข้อหนึ่ง: คอลัมน์นี้ถูกกำหนดว่าถูกต้อง โมฆะ(ไม่มีค่าใดๆ) หรือค่าเริ่มต้นที่ระบุในคำจำกัดความของตาราง ซึ่งหมายความว่าหากไม่มีการระบุค่า ระบบจะใช้ค่าเริ่มต้น หากคุณไม่มีคอลัมน์จากตารางที่ไม่อนุญาตให้ค่าปรากฏในแถว โมฆะและไม่มีการกำหนดค่าเริ่มต้น DBMS จะสร้างข้อความแสดงข้อผิดพลาดและแถวจะไม่ถูกเพิ่ม

3. การเพิ่มข้อมูลที่เลือก

ในตัวอย่างก่อนหน้านี้ เราได้แทรกข้อมูลลงในตารางโดยการป้อนข้อมูลด้วยตนเองในแบบสอบถาม อย่างไรก็ตามผู้ปฏิบัติงาน ใส่เข้าไปช่วยให้เราทำกระบวนการนี้เป็นอัตโนมัติหากเราต้องการแทรกข้อมูลจากตารางอื่น เพื่อจุดประสงค์นี้ใน SQL จึงมีโครงสร้างเช่น ใส่เข้าไปใน ... เลือก ...- การออกแบบนี้ช่วยให้คุณเลือกข้อมูลจากตารางหนึ่งและแทรกลงในตารางอื่นได้พร้อมกัน สมมติว่าเรามีโต๊ะอื่น ผู้ขาย_EUพร้อมรายชื่อผู้ขายสินค้าของเราในยุโรปและเราจำเป็นต้องเพิ่มพวกเขาลงในตารางทั่วไป ผู้ขาย- โครงสร้างของตารางเหล่านี้จะเหมือนกัน (จำนวนคอลัมน์เท่ากันและชื่อเหมือนกัน) แต่ข้อมูลต่างกัน เมื่อต้องการทำเช่นนี้ เราสามารถเขียนแบบสอบถามต่อไปนี้:

ใส่ผู้ขาย (ID, ที่อยู่, เมือง, ชื่อผู้ขาย, ประเทศ) SELECTID, ที่อยู่, เมือง, ชื่อผู้ขาย, ประเทศจาก Sellers_EU

คุณต้องให้ความสนใจเพื่อไม่ให้เกิดค่าของคีย์ภายในซ้ำ (field บัตรประจำตัวประชาชน) มิฉะนั้นจะเกิดข้อผิดพลาดขึ้น ผู้ดำเนินการ เลือกอาจรวมถึงข้อเสนอแนะด้วย ที่ไหนเพื่อกรองข้อมูล ควรสังเกตด้วยว่า DBMS ไม่ได้ใส่ใจกับชื่อของคอลัมน์ที่มีอยู่ในคำสั่ง เลือกเฉพาะลำดับที่จัดไว้เท่านั้นที่สำคัญสำหรับเธอ ดังนั้นข้อมูลในคอลัมน์แรกที่ระบุที่ถูกเลือกเนื่องจาก เลือกจะถูกกรอกลงในคอลัมน์แรกของตารางไม่ว่าในกรณีใด ผู้ขายระบุหลังตัวดำเนินการ ใส่เข้าไปโดยไม่คำนึงถึงชื่อฟิลด์

4. การคัดลอกข้อมูลจากตารางหนึ่งไปยังอีกตารางหนึ่ง

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

เลือก * เข้าสู่ผู้ขาย_ใหม่จากผู้ขาย

แตกต่างจากการออกแบบครั้งก่อน ใส่เข้าไปใน ... เลือก ...เมื่อมีการเพิ่มข้อมูลลงในตารางที่มีอยู่ การออกแบบจะคัดลอกข้อมูลไปยังตารางใหม่ คุณยังสามารถพูดได้ว่าโครงสร้างแรกนำเข้าข้อมูล และส่งออกครั้งที่สอง เมื่อใช้การออกแบบ เลือก ... เข้าสู่ ... จาก ...ควรพิจารณาสิ่งต่อไปนี้:

  • - คุณสามารถใช้ประโยคใดก็ได้ในตัวดำเนินการ เลือก, เช่น จัดกลุ่มตามและ มี
  • - คุณสามารถใช้การรวมเพื่อเพิ่มข้อมูลจากหลายตารางได้
  • - ข้อมูลสามารถเพิ่มลงในตารางเดียวเท่านั้น ไม่ว่าจะดึงมาจากกี่ตารางก็ตาม

การเปลี่ยนแปลงแบบสอบถามใช้ในการเพิ่ม (INSERT INTO) ลบ (DELETE) และอัปเดต (UPDATE) บันทึกในตาราง

INSERT INTO คำสั่ง

คำสั่ง INSERT INTO สามารถใช้เพื่อเพิ่มหนึ่งระเบียนขึ้นไปที่ส่วนท้ายของตาราง

ไวยากรณ์ของคำสั่ง INSERT INTO มีดังนี้:
แทรกลงใน Table_Name [(Field_Name)] ค่า (Data_Values);

ตัวอย่างเช่น วางบันทึกที่มีข้อมูล (1, BF-16a, 1, 1) ในตาราง "กลุ่ม" ในคอลัมน์ที่เกี่ยวข้อง (รหัสกลุ่ม ชื่อ หลักสูตร ภาคการศึกษา)

โดยขอในรูปแบบ:
แทรกลงในกลุ่ม (รหัสกลุ่ม, ชื่อ, หลักสูตร, ภาคการศึกษา) ค่า (1, BF-16a, 1, 1);
ป้อนแบบสอบถามในแบบฟอร์มโดยดำเนินการคำสั่ง "Query Builder" บนแท็บ "การสร้าง" ในโหมด "โหมด SQL" จากเมนูมุมมอง

บันทึกคำขอด้วยชื่อ "Add_1_records" เป็นผลให้วัตถุที่ไม่เกี่ยวข้องจะปรากฏใน "พื้นที่การนำทาง" - "Add_1_records" (รูปที่ 1)


ข้าว. 1.

หลังจากบันทึกคำขอแล้ว คุณต้องดำเนินการคำขอนี้โดยคลิกที่ไอคอน "เรียกใช้" อันเป็นผลมาจากการดำเนินการคำสั่ง "Add_1_records" บันทึกแรกจะปรากฏในตารางว่าง (รูปที่ 2)



ข้าว. 2.

คำสั่งอัพเดต

คำสั่ง UPDATE ได้รับการออกแบบมาเพื่อแก้ไขรายการที่มีอยู่ในคอลัมน์ตาราง ทำให้สามารถอัปเดตค่าในคอลัมน์ตารางที่ระบุได้

ไวยากรณ์คำสั่ง UPDATE เป็นดังนี้:
อัปเดต Table_Name SET Column_Name = New_Value โดยที่ Selection_Condition;

ส่วนคำสั่ง SET ระบุชื่อของคอลัมน์ที่จำเป็นต้องเปลี่ยนแปลงข้อมูล ส่วนคำสั่ง WHERE เป็นทางเลือก แต่สามารถใช้เพื่อระบุเฉพาะแถวในคอลัมน์ (ตาราง) ที่จำเป็นต้องอัปเดต

มาสร้างคำขอเพื่อเปลี่ยนบันทึกในตาราง "กลุ่ม" ของฐานข้อมูล sql_training_st.mdb

ตัวอย่างเช่น เรามาเปลี่ยนรายการที่มีอยู่สำหรับรหัสฟิลด์คีย์แรกในคอลัมน์ "ชื่อ" ของตาราง "กลุ่ม"

คำขอในรูปแบบ:
อัปเดตชื่อกลุ่มชุด ="BF-16b" โดยที่ ID = 1;

บันทึกคำขอด้วยชื่อ "Change_record_1" ด้วยเหตุนี้ วัตถุ “Change_record_1” จะปรากฏใน “พื้นที่การเปลี่ยนแปลง” (รูปที่ 3)



ข้าว. 3.

หลังจากบันทึกคำขอแล้ว คุณต้องดำเนินการคำขอนี้โดยคลิกที่ไอคอน "เรียกใช้" อันเป็นผลมาจากการดำเนินการคำสั่ง "Change_record_1" กล่องโต้ตอบจะปรากฏขึ้นโดยคุณต้องป้อนค่าของพารามิเตอร์ ID=1 แล้วคลิกตกลง หลังจากขั้นตอนเหล่านี้ ในตาราง "กลุ่ม" รายการในช่อง "ชื่อ" จะเปลี่ยนจาก BF-16a เป็น BF-16b (รูปที่ 4)



ข้าว. 4.

คำสั่งลบ

คำสั่ง DELETE ได้รับการออกแบบมาเพื่อลบระเบียนออกจากตาราง

รูปแบบการร้องขอให้ลบบันทึก:
ลบจาก Table_Name โดยที่ Selection_Condition;

มาสร้างคำขอเพื่อเปลี่ยนบันทึกในตาราง "กลุ่ม" ของฐานข้อมูล sql_training_st.mdb

ตัวอย่างเช่น ลองลบระเบียนที่มีอยู่สำหรับรหัสฟิลด์คีย์แรกในคอลัมน์ (ฟิลด์) ทั้งหมดของตาราง "กลุ่ม"

โดยขอในรูปแบบ:
ลบออกจากกลุ่มโดยที่ ID=1;
สร้างแบบสอบถามบนแบบฟอร์มโดยดำเนินการคำสั่ง "Query Builder" บนแท็บ "การสร้าง" ในโหมด "โหมด SQL" จากเมนูมุมมอง

เราบันทึกคำขอด้วยชื่อ “Delete_record_1” ด้วยเหตุนี้ วัตถุ “Delete_record_1” จะปรากฏใน “พื้นที่การเปลี่ยนภาพ” (รูปที่ 5)



ข้าว. 5.

หลังจากบันทึกคำขอแล้ว คุณต้องดำเนินการคำขอนี้โดยคลิกที่ไอคอน "เรียกใช้" อันเป็นผลมาจากการดำเนินการคำสั่ง "Delete_record_1" กล่องโต้ตอบจะปรากฏขึ้นโดยคุณต้องป้อนค่าของพารามิเตอร์ ID=1 แล้วคลิกตกลง หลังจากขั้นตอนเหล่านี้ กล่องโต้ตอบ "ยืนยันการลบบันทึก" จะเปิดขึ้น หลังจากการยืนยัน ข้อมูลในทุกฟิลด์จะถูกลบในตาราง "กลุ่ม" เช่น รายการถูกลบแล้ว (รูปที่ 6)



ข้าว. 6.

ควรสังเกตว่าหากต้องการลบข้อมูลในช่องเฉพาะของตาราง ขอแนะนำให้ใช้คำสั่ง UPDATE และแทนที่ค่าในฟิลด์ที่ต้องการด้วย Null หากคุณต้องการลบตารางทั้งหมด คุณควรใช้ตัวดำเนินการ DROP TABLE (ไวยากรณ์ของตัวดำเนินการ: DROP TABLE Table_Name;)

มาคืนค่าบันทึกแรกในตาราง "กลุ่ม" โดยดำเนินการคำสั่ง "Add_1_records" ด้วยเหตุนี้เราจะกู้คืนบันทึกแรก (รูปที่ 7)



ข้าว. 7.

กำลังลบรายการ

หากต้องการลบระเบียนออกจากตาราง ให้ใช้ตัวดำเนินการ DELETE:

ลบจากชื่อตาราง WHERE เงื่อนไข;

ตัวดำเนินการนี้จะลบบันทึก (ไม่ใช่ค่าแต่ละคอลัมน์) ออกจากตารางที่ระบุซึ่งตรงตามเงื่อนไขที่ระบุ เงื่อนไขคือการแสดงออกทางตรรกะ โครงสร้างต่างๆ ได้ถูกกล่าวถึงในห้องปฏิบัติการก่อนหน้านี้

แบบสอบถามต่อไปนี้จะลบระเบียนออกจากตารางลูกค้าโดยที่ค่าคอลัมน์ LName คือ "Ivanov":

ลบจากลูกค้า

โดยที่ LName = "อีวานอฟ"

หากตารางมีข้อมูลเกี่ยวกับไคลเอนต์หลายรายที่มีนามสกุล Ivanov ลูกค้าทั้งหมดจะถูกลบ

คำสั่ง WHERE อาจมีแบบสอบถามย่อยสำหรับการเลือกข้อมูล (คำสั่ง SELECT) แบบสอบถามย่อยในคำสั่ง DELETE ทำงานเหมือนกับในคำสั่ง SELECT ทุกประการ แบบสอบถามต่อไปนี้จะลบไคลเอ็นต์ทั้งหมดออกจากเมืองมอสโก ในขณะที่ตัวระบุเฉพาะของเมืองจะถูกส่งกลับโดยใช้แบบสอบถามย่อย

ลบจากลูกค้า

WHERE IdCity IN (เลือก IdCity จากเมือง WHERE CityName = "Moscow")

Transact-SQL ขยาย SQL มาตรฐานโดยอนุญาตให้คุณใช้ส่วนคำสั่ง FROM เพิ่มเติมในคำสั่ง DELETE ส่วนขยายนี้ ซึ่งระบุการรวม สามารถใช้แทนแบบสอบถามย่อยในส่วนคำสั่ง WHERE เพื่อระบุแถวที่จะลบ ช่วยให้คุณสามารถระบุข้อมูลจาก FROM ที่สองและลบแถวที่เกี่ยวข้องออกจากตารางในส่วนคำสั่ง FROM แรก โดยเฉพาะแบบสอบถามก่อนหน้านี้สามารถเขียนใหม่ได้ดังนี้

ลบจากลูกค้า

จากลูกค้า k เข้าร่วมภายใน

การดำเนินการลบบันทึกออกจากตารางเป็นอันตรายในแง่ที่ว่ามีความเกี่ยวข้องกับความเสี่ยงของการสูญเสียข้อมูลที่ไม่สามารถย้อนกลับได้ในกรณีที่มีข้อผิดพลาดทางความหมาย (แต่ไม่ใช่ทางวากยสัมพันธ์) ในการกำหนดนิพจน์ SQL เพื่อหลีกเลี่ยงความยุ่งยาก ก่อนที่จะลบบันทึก ขอแนะนำให้คุณเรียกใช้แบบสอบถามแบบใช้เลือกข้อมูลที่เหมาะสมก่อนเพื่อดูว่าบันทึกใดจะถูกลบ ตัวอย่างเช่น ก่อนที่จะดำเนินการลบแบบสอบถามที่กล่าวถึงก่อนหน้านี้ การเรียกใช้แบบสอบถามแบบใช้เลือกข้อมูลที่เกี่ยวข้องจะไม่เสียหาย

เลือก *

จากลูกค้า k เข้าร่วมภายใน

เมือง c ON k.IdCity = c.IdCity และ c.CityName = "มอสโก"

หากต้องการลบระเบียนทั้งหมดออกจากตาราง เพียงใช้คำสั่ง DELETE โดยไม่มีคีย์เวิร์ด WHERE ในกรณีนี้ ตารางที่มีคอลัมน์ทั้งหมดที่กำหนดไว้จะถูกบันทึกไว้และพร้อมสำหรับการแทรกบันทึกใหม่ ตัวอย่างเช่น แบบสอบถามต่อไปนี้จะลบระเบียนสำหรับผลิตภัณฑ์ทั้งหมด

ลบออกจากผลิตภัณฑ์

การมอบหมายงานอิสระ:กำหนดแบบสอบถามใน SQL เพื่อลบคำสั่งซื้อทั้งหมดที่ไม่มีผลิตภัณฑ์เดียว (นั่นคือ คำสั่งซื้อที่ว่างเปล่าทั้งหมด)



เนื้อหาของบทความ
1. แบบสอบถาม MySQL ที่ง่ายที่สุด
2. แบบสอบถาม SELECT อย่างง่าย
3. คำสั่ง INSERT (รายการใหม่) แบบธรรมดา
4. แบบสอบถาม UPDATE แบบง่าย (เขียนทับ, ผนวก)
5. แบบสอบถาม DELETE (ลบบันทึก) แบบธรรมดา
6. แบบสอบถาม DROP แบบง่าย (ลบตาราง)
7. คำสั่ง MySQL ที่ซับซ้อน
8. แบบสอบถาม MySQL และตัวแปร PHP

1. แบบสอบถาม SQL ที่ง่ายที่สุด

1. แสดงรายการฐานข้อมูลทั้งหมด

แสดงฐานข้อมูล;
2. แสดงรายการตารางทั้งหมดในฐานข้อมูล base_name

แสดงตารางใน base_name;

2. คำสั่ง SELECT อย่างง่ายไปยังฐานข้อมูล MySQL

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

1. เลือกข้อมูลทั้งหมดในตาราง tbl_name

SELECT * จาก tbl_name;
2. แสดงจำนวนเรคคอร์ดในตาราง tbl_name

SELECT count(*) จาก tbl_name;
3. เลือก (SELECT) จาก (FROM) ตาราง tbl_name จำกัด (LIMIT) 3 ระเบียน โดยเริ่มจาก 2

SELECT * จาก tbl_name จำกัด 2,3;
4. เลือก (SELECT) ALL (*) บันทึกจาก (FROM) ตาราง tbl_name และเรียงลำดับ (ORDER BY) ตามฟิลด์ id ตามลำดับ

SELECT * จาก tbl_name เรียงลำดับตาม id;
5. เลือก (SELECT) บันทึกทั้งหมดจาก (FROM) ตาราง tbl_name และเรียงลำดับ (ORDER BY) ตามฟิลด์ id ในลำดับย้อนกลับ

SELECT * จาก tbl_name เรียงลำดับตาม id DESC;
6. เลือก ( เลือก) บันทึกทั้งหมด (*) จาก ( จาก) ตาราง ผู้ใช้และจัดเรียงพวกมัน ( สั่งซื้อโดย) ทั่วทั้งสนาม รหัสตามลำดับจากน้อยไปหามาก ขีดจำกัด ( จำกัด) 5 รายการแรก

SELECT * จากผู้ใช้ เรียงลำดับตาม id จำกัด 5;
7. เลือกบันทึกทั้งหมดจากตาราง ผู้ใช้, สนามไหน ชื่อสอดคล้องกับค่า เจน่า.

เลือก * จากผู้ใช้โดยที่ fname="Gena";
8. เลือกบันทึกทั้งหมดจากตาราง ผู้ใช้โดยที่ค่าฟิลด์ ชื่อเริ่มต้นด้วย จีอี.

SELECT * จากผู้ใช้โดยที่ fname LIKE "Ge%";
9. เลือกบันทึกทั้งหมดจากตาราง ผู้ใช้, ที่ไหน ชื่อลงท้ายด้วย นาและเรียงลำดับเรกคอร์ดตามค่าจากน้อยไปหามาก รหัส.

SELECT * จากผู้ใช้โดยที่ fname LIKE "%na" ORDER BY id;
10. เลือกข้อมูลทั้งหมดจากคอลัมน์ ชื่อ, ฉันชื่อจากโต๊ะ ผู้ใช้.

เลือก fname, lname จากผู้ใช้;

11. สมมติว่าคุณมีประเทศในตารางข้อมูลผู้ใช้ ดังนั้น หากคุณต้องการแสดงเฉพาะรายการค่าที่เกิดขึ้น (เช่น รัสเซียจะไม่แสดง 20 ครั้ง แต่เพียงครั้งเดียว) เราจะใช้ DISTINCT มันจะนำรัสเซีย ยูเครน เบลารุส ออกจากกลุ่มค่านิยมซ้ำซาก ดังนั้นจากโต๊ะ ผู้ใช้ลำโพง ประเทศค่าที่ไม่ซ้ำทั้งหมดจะถูกส่งออก

เลือกประเทศที่แตกต่างจากผู้ใช้
12. เลือกข้อมูลแถวทั้งหมดจากตาราง ผู้ใช้ที่ไหน อายุมีค่า 18,19 และ 21

SELECT * จากผู้ใช้โดยที่อายุ (18,19,21);
13. เลือกค่า MAXIMUM อายุในตาราง ผู้ใช้- นั่นคือถ้าคุณมีค่ามากที่สุดในตารางของคุณ อายุ(จากอายุภาษาอังกฤษ) คือ 55 ดังนั้นผลลัพธ์ของแบบสอบถามจะเป็น 55

เลือกสูงสุด (อายุ) จากผู้ใช้;
14. เลือกข้อมูลจากตาราง ผู้ใช้ตามสาขา ชื่อและ อายุที่ไหน อายุใช้ค่าที่น้อยที่สุด

เลือกชื่อ, ขั้นต่ำ (อายุ) จากผู้ใช้;
15. เลือกข้อมูลจากตาราง ผู้ใช้ข้ามสนาม ชื่อที่ไหน รหัสไม่เท่ากับ 2

เลือกชื่อจากผู้ใช้ WHERE id!="2";

3. คำสั่ง INSERT (รายการใหม่) แบบธรรมดา

แทรก– แบบสอบถามที่ช่วยให้คุณสามารถแทรกบันทึกลงในฐานข้อมูลได้เบื้องต้น นั่นคือจะสร้างระเบียนใหม่ (บรรทัด) ในฐานข้อมูล

1. สร้างรายการใหม่ในตาราง ผู้ใช้ในสนาม ชื่อแทรก Sergey และในสนาม อายุแทรก 25 ดังนั้นแถวใหม่ที่มีค่าเหล่านี้จะถูกเพิ่มลงในตาราง หากมีคอลัมน์มากกว่านี้ คอลัมน์ที่เหลือจะยังคงว่างเปล่าหรือมีค่าเริ่มต้น

แทรกลงในผู้ใช้ (ชื่อ, อายุ) ค่า ("Sergey", "25");

4. คำสั่ง UPDATE อย่างง่ายไปยังฐานข้อมูล MySQL

อัปเดต– แบบสอบถามที่ช่วยให้คุณสามารถจองค่าฟิลด์หรือเพิ่มบางอย่างลงในแถวที่มีอยู่แล้วในฐานข้อมูล ตัวอย่างเช่นมีบรรทัดสำเร็จรูป แต่จำเป็นต้องเขียนพารามิเตอร์อายุใหม่เนื่องจากมีการเปลี่ยนแปลงไปตามกาลเวลา

1. ในตาราง ผู้ใช้ อายุกลายเป็น 18

อัปเดตผู้ใช้ SET age = "18" WHERE id = "3";
2. ทุกอย่างเหมือนกับในคำขอแรก เพียงแสดงไวยากรณ์ของคำขอ โดยมีการเขียนทับสองฟิลด์ขึ้นไป
ในตาราง ผู้ใช้โดยที่ id เท่ากับ 3 ค่าของฟิลด์ อายุอายุ 18 และ ประเทศรัสเซีย.

อัปเดตผู้ใช้ SET อายุ = "18", ประเทศ = "รัสเซีย" WHERE id = "3";

5. คำสั่ง DELETE (ลบบันทึก) แบบธรรมดาไปยังฐานข้อมูล MySQL

ลบ– แบบสอบถามที่จะลบแถวออกจากตาราง

1. ลบแถวออกจากตาราง ผู้ใช้ที่ไหน รหัสเท่ากับ 10

ลบออกจากผู้ใช้โดยที่ id = "10";

6. แบบสอบถาม DROP แบบง่าย (ลบตาราง) ไปยังฐานข้อมูล MySQL

หยด– แบบสอบถามที่จะลบตาราง

1. ลบทั้งตาราง tbl_name.

วางตาราง tbl_name;

7. การสืบค้นที่ซับซ้อนไปยังฐานข้อมูล MySQL

ข้อความค้นหาที่น่าสนใจซึ่งมีประโยชน์แม้กับผู้ใช้ที่มีประสบการณ์

เลือก id, ชื่อ, ประเทศจากผู้ใช้, ผู้ดูแลระบบ WHERE TO_DAYS(NOW()) - TO_DAYS(registration_date)<= 14 AND activation != "0" ORDER BY registration_date DESC;
คอลัมน์ SELECTS ของแบบสอบถามที่ซับซ้อนนี้ รหัสชื่อประเทศในตาราง ผู้ใช้ผู้ดูแลระบบที่ไหน การลงทะเบียน_วันที่(วันที่) ไม่เก่ากว่า 14 วันฉัน การเปิดใช้งานไม่เท่ากัน 0 , เรียงตาม การลงทะเบียน_วันที่ในลำดับย้อนกลับ (ใหม่ก่อน)

อัปเดตผู้ใช้ SET age = "18+" WHERE age = (เลือกอายุจากผู้ใช้ WHERE male = "man");
ข้างต้นเป็นตัวอย่างของสิ่งที่เรียกว่า คำขอภายในคำขอใน SQL อัปเดตอายุของผู้ใช้เป็น 18+ โดยที่เพศเป็นชาย ฉันไม่แนะนำตัวเลือกคำขอดังกล่าว จากประสบการณ์ส่วนตัวฉันจะบอกว่าควรสร้างหลาย ๆ อันแยกกันดีกว่า - พวกมันจะถูกประมวลผลเร็วขึ้น

8. การสืบค้นฐานข้อมูล MySQL และ PHP

ในการสืบค้น MySQL ในหน้า PHP คุณสามารถแทรกตัวแปรเป็นค่าที่เปรียบเทียบได้ ฯลฯ ตัวอย่างบางส่วน

1. เลือกบันทึกทั้งหมดจากตาราง ผู้ใช้, สนามไหน ชื่อสอดคล้องกับค่าของตัวแปร $ชื่อ.

เลือก * จากผู้ใช้โดยที่ fname="$name";
2. ในตาราง ผู้ใช้โดยที่ id เท่ากับ 3 ค่าของฟิลด์ อายุการเปลี่ยนแปลงค่าของตัวแปร $age

อัปเดตผู้ใช้ SET age = "$age" WHERE id = "3";

ความสนใจ!หากคุณสนใจตัวอย่างอื่น ๆ ให้เขียนคำถามในความคิดเห็น!