Ms SQL วิธีเติมข้อมูลลงในตาราง

โกลอฟนา

ก่อนที่คุณจะเริ่มสร้างตาราง SQL คุณต้องกำหนดโมเดลฐานข้อมูลก่อน

ออกแบบแผนภาพ ER ซึ่งมีสาระสำคัญ คุณลักษณะ และความเชื่อมโยงที่สำคัญ

แนวคิดพื้นฐาน

เอนทิตีคือวัตถุและข้อเท็จจริง ซึ่งข้อมูลจะต้องได้รับการเก็บรักษาไว้

ตัวอย่างเช่นการพัฒนาของบริษัทและโครงการที่องค์กรกำลังดำเนินการ

  1. คุณลักษณะคือคลังสินค้าที่อธิบายสาระสำคัญที่มีคุณสมบัติตามที่กำหนด
  2. ตัวอย่างเช่น คุณลักษณะของนิติบุคคล “ผู้ประกอบวิชาชีพ” คือเงินเดือน และคุณลักษณะของนิติบุคคล “โครงการ” คือค่าจ้างที่มีราคาแพง
  3. การเชื่อมต่อคือการเชื่อมโยงระหว่างสององค์ประกอบ
  4. มันสามารถเป็นแบบสองทิศทางได้
  5. ในทำนองเดียวกัน มีการเชื่อมต่อแบบเรียกซ้ำ เช่นการเชื่อมต่อระหว่างแก่นแท้กับตัวมันเอง

นอกจากนี้ยังจำเป็นต้องระบุคีย์และกลไกในการรักษาความสมบูรณ์ของฐานข้อมูล

สิ่งนี้หมายความว่าอย่างไร?

กล่าวคือมาตรการที่จะช่วยรักษาฐานข้อมูลให้ถูกต้องและเป็นระเบียบเรียบร้อย การเปลี่ยนจากไดอะแกรม ER เป็นแบบจำลองตารางกฎสำหรับการเปลี่ยนไปใช้โมเดลแบบตาราง:

จัดเรียงเอนทิตีทั้งหมดบนโต๊ะใหม่ เปลี่ยนแอตทริบิวต์ทั้งหมดในคอลัมน์ เพื่อให้แอตทริบิวต์เอนทิตีแต่ละรายการปรากฏอยู่ในชื่อของคอลัมน์ตาราง

ตัวระบุที่ไม่ซ้ำกันจะถูกสร้างขึ้นใหม่บนคีย์หลัก

  • ลิงก์ทั้งหมดจะถูกแปลงเป็นคีย์ภายนอก
  • เปิดตาราง SQL ที่สร้างขึ้น

การสร้างฐาน

จากนี้ไปคุณจะต้องเริ่มเซิร์ฟเวอร์ MySQL ในการเริ่มต้น ให้ไปที่เมนู "Start" จากนั้นไปที่ "Programs" จากนั้นไปที่ MySQL และ MySQL Server เลือก MySQL-Command-Line-Client

หากต้องการสร้างฐานข้อมูล ให้ใช้คำสั่งสร้างฐานข้อมูล

ขณะนี้โมเดลได้รับการออกแบบ สร้างฐานข้อมูลแล้ว และเซิร์ฟเวอร์ได้รับการระบุเกี่ยวกับวิธีการทำงานแล้ว

ตอนนี้คุณสามารถเริ่มสร้างตาราง SQL ได้แล้ว

มีที่มาของภาษาของข้อมูล (DDL)

ใช้สำหรับสร้างตาราง MS SQL รวมถึงการกำหนดวัตถุและทำงานกับโครงสร้าง DDL มีชุดคำสั่ง(SQL Server สร้างตาราง ด้วยคำสั่ง DDL เพียงคำสั่งเดียว คุณสามารถสร้างอ็อบเจ็กต์ฐานข้อมูลที่แตกต่างกันและพารามิเตอร์ต่างๆ ได้คำสั่งสร้างตารางใช้สำหรับสิ่งนี้รูปแบบ tt มีลักษณะดังนี้:

สร้างแทดเดิล

  • ตาราง_ชื่อ,
  • name_stovptsya1

  • ชื่อ
  • _stovptsya2

ชนิดข้อมูล [boundary_stovptsya],[boundary_table])

รายงานต่อไปนี้อธิบายไวยากรณ์ของคำสั่งนี้:

  • ชื่อของตารางต้องมีความยาวไม่เกิน 30 อักขระและขึ้นต้นด้วยตัวอักษร
  • อนุญาตให้ใช้เฉพาะอักขระตัวอักษรและตัวอักษรเท่านั้น รวมถึงสัญลักษณ์ “_”, “$” และ “#”
  • อนุญาตให้ใช้อักษรซีริลลิกได้ สิ่งสำคัญคือต้องทราบว่าชื่อตารางไม่ตรงกับชื่อของวัตถุอื่นหรือคำที่จองเซิร์ฟเวอร์ฐานข้อมูล เช่น คอลัมน์ ตาราง ดัชนี ฯลฯสำหรับผิวหนัง stovpchik เลื่อน obov'yazkovo ระบุประเภทของข้อมูล
  • นี่คือชุดมาตรฐานที่ไวกิ้งส่วนใหญ่ใช้

ตัวอย่างเช่น Char, Varchar, ตัวเลข, วันที่, ประเภท Null เป็นต้น

  • การใช้พารามิเตอร์ Default คุณสามารถตั้งค่าสำหรับการตั้งค่าได้
  • สิ่งนี้รับประกันว่าตารางไม่มีค่าที่ไม่สำคัญ
  • เราจะเข้าใจสิ่งนี้ได้อย่างไร?
  • ความหมายเบื้องหลังโปรโมชั่นอาจเป็นสัญลักษณ์ สัญลักษณ์ ฟังก์ชันก็ได้

ไวยากรณ์ของคำสั่งนี้มีลักษณะดังนี้: ALTER TABLE สิ่งสำคัญคือต้องทราบว่าชื่อตารางไม่ตรงกับชื่อของวัตถุอื่นหรือคำที่จองเซิร์ฟเวอร์ฐานข้อมูล เช่น คอลัมน์ ตาราง ดัชนี ฯลฯ( | | | | [(เปิดใช้งาน | ปิดการใช้งาน) คงที่ ฉัน_obezhennya ] | }.

ค้นหาคำสั่งอื่นๆ:

  • RENAME – เปลี่ยนชื่อตาราง
  • TRUNCATE TABLE แสดงแถวทั้งหมดในตาราง

อาจจำเป็นต้องใช้ฟังก์ชันนี้หากจำเป็นต้องเติมตารางใหม่ แต่ไม่จำเป็นต้องบันทึกข้อมูลก่อนหน้า

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

แน่นอน คุณต้องเลือกฐานข้อมูลก่อนจึงจะสามารถดูตารางที่แบ่งย่อยได้ ไวยากรณ์ของคำสั่งคือ: DROP TABLE _โต๊ะ.

ที่เอสแอลแอล เกตเวย์การเข้าถึงตารางการเปลี่ยนแปลงนี้ทำโดยคำสั่งที่ระบุไว้ข้างต้น

เมื่อใช้ตัวเลือก CREATE TABLE เพิ่มเติม คุณสามารถสร้างตารางว่างแล้วกรอกข้อมูลลงในตารางได้

  • นั่นไม่ใช่ทั้งหมด ด้วยคำสั่ง DDL เพียงคำสั่งเดียว คุณสามารถสร้างอ็อบเจ็กต์ฐานข้อมูลที่แตกต่างกันและพารามิเตอร์ต่างๆ ได้คุณยังสามารถสร้างตารางจากตารางอื่นพร้อมกันได้[(ใช่ไหม?จากนั้นจึงสามารถเลือกตารางและเติมข้อมูลจากตารางอื่นลงในตารางได้
  • มันพิเศษสำหรับใคร?คำหลัก
  • เช่น.

ไวยากรณ์นั้นง่ายมาก:

สร้างตาราง

_โต๊ะ

ได้รับการแต่งตั้ง_stovpts_v

  • )] AS พอดซาปิต;
  • ได้รับการแต่งตั้ง_stovptsiv -

ไวยากรณ์สำหรับการสร้างตารางเวลาสามารถใช้ได้ดังนี้: CREATE TABLE ด้วยคำสั่ง DDL เพียงคำสั่งเดียว คุณสามารถสร้างอ็อบเจ็กต์ฐานข้อมูลที่แตกต่างกันและพารามิเตอร์ต่างๆ ได้_โต๊ะ,(ด้วยคำสั่ง DDL เพียงคำสั่งเดียว คุณสามารถสร้างอ็อบเจ็กต์ฐานข้อมูลที่แตกต่างกันและพารามิเตอร์ต่างๆ ได้_stovptsya1ชนิดข้อมูล [interchange_stovptsya] ด้วยคำสั่ง DDL เพียงคำสั่งเดียว คุณสามารถสร้างอ็อบเจ็กต์ฐานข้อมูลที่แตกต่างกันและพารามิเตอร์ต่างๆ ได้คำสั่งสร้างตารางใช้สำหรับสิ่งนี้ประเภทข้อมูล [boundary_stovptsya], [boundary_table])

หลังจากสร้างตารางว่างแล้ว ขั้นตอนตรรกะถัดไปคือการกรอกข้อมูลและอัปเดตตาราง Transact-SQL ใดที่ได้รับการกำหนดคู่คำสั่ง?.

แทรก - อัปเดต

อย่างไรก็ตาม บ่อยครั้งในช่วงท้ายของการออกแบบ จำเป็นต้องเปลี่ยนสคีมาของตารางเอง

ตัวอย่างเช่น หากคีย์หลักหรือประเภทคีย์มีการเปลี่ยนแปลง

  • เพื่อหลีกเลี่ยงการลบตารางเก่าและไม่สร้างใหม่อีกครั้งโดยใช้ CREATE TABLE เพิ่มเติมพร้อมพารามิเตอร์ที่ถูกต้อง คำสั่ง ALTER TABLE จะถูกบล็อก
  • โครงสร้างของโครงสร้างทั้งสามนี้สามารถดูได้ด้านล่าง

โต๊ะเติมเงิน

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

ฉลาดทางสายตามากขึ้น

จะง่ายกว่าถ้าคุณกรอกตารางทีละขั้นตอน

หากต้องการเลือกมุมมองตารางปัจจุบัน:

วีดี.

เมชคานต์ซา

วันที่ของผู้คน

เลขที่อพาร์ตเมนต์

ที่อยู่อีเมล

วันที่ของผู้คน

โอเล็คซิน. วี.วี.กอร์บูนอฟ ดี.ดี. [ป้องกันอีเมล]ซิโมโนวา เค.อาร์

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

วิดัลยาโม

รุ่นก่อนหน้าตาราง DROP Table เพื่อนร่วมบ้าน;

- เรากำลังสร้างตารางสร้างตาราง housemates(housemeateID int NOT NULL CONSTRAINT primary_id PRIMARY KEY, housemateName nvarchar(30) NOT NULL, BithDate date NOT NULL; -- การแทรกข้อมูลลงในตาราง USE GO INSERT INTO ( , , , ,) VALUES (100, "Alexin V วี", "19721122", 11,"

"), (101,"กอร์บูนอฟ ดี.ดี.,"19220525",25," รุ่นก่อนหน้า"), (102," Simonova K.R. "," 19560211 ", 13,"

), (103," ดอร์มิโทวา เค.เอส.,"19770815",9," วันที่ของผู้คนและกรอกคำสั่ง INSERT ต่อไปนี้ วันที่ของผู้คนคำแนะนำที่มีอยู่ วันที่ของผู้คนเพิ่มหนึ่งแถวในตารางเพื่อนร่วมบ้านที่เราสร้างไว้แล้ว: วันที่ของผู้คน")

ในแอปพลิเคชัน มีโครงสร้าง INSERT สองบล็อกแยกกัน:

เข้าไปข้างใน วันที่ของผู้คน- สิ่งที่ระบุตารางที่มีการเพิ่มข้อมูล วันที่ของผู้คนค่านิยม วันที่ของผู้คน- การเริ่มต้นการแนะนำแถว วันที่ของผู้คน",9)

ในบล็อก VALUES การกำหนดค่าเริ่มต้นของแถวจะดำเนินการในลำดับเดียวกันกับขั้นตอนในบล็อก INTO

การเติมแถวหมายถึงค่าตรงกลางที่แขน

สิ่งสำคัญคือต้องเล่นอย่างปลอดภัยผ่านอาการโคม่าและเรียงแถวกัน

โครงสร้าง INSERT สามารถใช้ได้จนถึงบางจุดที่ยังไม่มีข้อมูลเท่านั้น มิฉะนั้นฉันจะขอความเมตตาจาก Vikonannyaอัพเดทตารางครับ

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

- เช่นเดียวกับที่ INSERT ใช้งานได้กับตารางว่างเท่านั้น UPDATE จะใช้ได้กับตารางที่เติมไว้เท่านั้น วันที่ของผู้คน Yakscho จะขอที่อยู่ของคนวัยกลางคนที่ไม่อาจให้อภัยได้ เพื่อเป็นการอภัยโทษ vinikne

ให้รหัสที่น่ารังเกียจใหม่ ภาพหน้าจอทางไปรษณีย์แก่ผู้อยู่อาศัยในคูหาหมายเลขประจำตัว 103

- เช่นเดียวกับที่ INSERT ใช้งานได้กับตารางว่างเท่านั้น UPDATE จะใช้ได้กับตารางที่เติมไว้เท่านั้น วันที่ของผู้คนอัพเดทเพื่อนร่วมบ้าน SET Email = "

โดยที่ housemeateID = 103

ปิดกั้น

  • ชุด
  • - บล็อกการเปลี่ยนแปลงนี้
  • หากจำเป็นต้องอัปเดตความหมายของเมล็ดพันธุ์จำนวนหนึ่ง คุณจะต้องประกันตัวมากเกินไปจนอาการโคม่า

", housemateName = "Rurik S.S." โดยที่ housemeateID = 103 กำลังเปลี่ยนโต๊ะ.

ในขั้นตอนต่อมาของการออกแบบหรือหลังการพัฒนาฐาน ความต้องการมักเกิดขึ้น:

โดดาติ abo vidaliti stovpets;

เปลี่ยนประเภทสถานี จดจำทั้งกลุ่มเป็นคีย์หลักและคีย์ภายนอก และลบการแลกเปลี่ยนสำหรับการดำเนินการทั้งหมดนี้ จะมีการกำหนดคำสั่งในการกำหนดใหม่

โต๊ะเอเตอร์

เพื่อเพิ่มความสมบูรณ์ คำสั่ง ALTER TABLE จะควบคู่กับส่วนคำสั่ง ADD เพิ่มส่วนเพิ่มเติมใหม่ให้กับตารางเพื่อนร่วมบ้านจากส่วนสุดท้าย:สำหรับการดำเนินการทั้งหมดนี้ จะมีการกำหนดคำสั่งในการกำหนดใหม่

แก้ไขตารางเพื่อนร่วมบ้านเพิ่ม PhoneNumber nvarchar (12) NULL;

มีความจำเป็นต้องระงับข้อเสนอจนกว่าจะดำเนินต่อไป

เปลี่ยนคอลัมน์

ตรงกลาง ALTER TABLE:

แก้ไขเพื่อนร่วมบ้านตาราง ALTER COLUMN PhoneNumber ถ่าน (25) ไม่เป็นโมฆะ;

ดูเหมือนว่าจะหยุดนิ่งโดยสิ้นเชิง

ตอนนี้เราได้เรียนรู้เกี่ยวกับประเภทของข้อมูลแล้ว ตอนนี้เราสามารถวิเคราะห์ตารางสำหรับฟอรัมของเราได้ง่ายขึ้น

เรามาเอามันออกไปให้พ้นทางกันเถอะ
มาดูตารางผู้ใช้กันดีกว่า
เรามี 4 แต้ม:
Id_user - ค่าจำนวนเต็มซึ่งจะเป็นประเภท int ล้อมรอบด้วยอักขระ 10 ตัว - int (10)

name คือค่า varchar ล้อมรอบด้วยอักขระ 20 ตัว - varchar(20)

อีเมล – ชุดของค่า varchar ล้อมรอบด้วยอักขระ 50 ตัว – varchar(50)
รหัสผ่าน – ชุดของค่า varchar ล้อมรอบด้วยอักขระ 15 ตัว – varchar(15)
กรอกค่าฟิลด์ทั้งหมดแล้วจึงต้องเพิ่มประเภท NOT NULL

Id_user int (10) ไม่เป็นโมฆะ ชื่อ varchar (20) ไม่เป็นโมฆะอีเมล varchar (50) ไม่เป็นโมฆะ


รหัสผ่าน – ชุดของค่า varchar ล้อมรอบด้วยอักขระ 15 ตัว – varchar(15)
กรอกค่าฟิลด์ทั้งหมดแล้วจึงต้องเพิ่มประเภท NOT NULL
ขั้นตอนแรกตามที่คุณจำได้จากแบบจำลองแนวคิดของฐานข้อมูลของเราคือคีย์หลัก (ค่าเหล่านี้ไม่ซ้ำกันและระบุบันทึกโดยไม่ซ้ำกัน)

คุณสามารถติดตามความเป็นเอกลักษณ์ได้ด้วยตัวเองแต่มันไม่สมเหตุสมผล ซึ่งมีคุณลักษณะพิเศษใน SQL AUTO_INCREMENT

ซึ่งเมื่อเพิ่มข้อมูลลงในตารางจะแสดงค่าสูงสุดของคอลัมน์นี้ ให้ลบค่าออก 1 และเพิ่มลงในคอลัมน์
รหัสผ่าน – ชุดของค่า varchar ล้อมรอบด้วยอักขระ 15 ตัว – varchar(15)
กรอกค่าฟิลด์ทั้งหมดแล้วจึงต้องเพิ่มประเภท NOT NULL
ด้วยวิธีนี้ หมายเลขเฉพาะและประเภทแอปพลิเคชัน NOT NULL จะถูกสร้างขึ้นโดยอัตโนมัติสำหรับรายการนี้
ดังนั้น nadamo คุณลักษณะ stovptsy ที่มีคีย์หลัก:

รหัสผ่าน varchar (15) ไม่เป็นโมฆะ

ตอนนี้ตรวจสอบให้แน่ใจว่าฟิลด์ id_user เป็นคีย์หลัก
คีย์เวิร์ดใน SQL คืออะไร?
คีย์หลัก()
ชื่อของคีย์ฟิลด์ระบุไว้ที่แขน
กรุณาทำการเปลี่ยนแปลง:
Id_user int (10) AUTO_INCREMENT
);

รหัสผ่าน varchar (15) ไม่เป็นโมฆะ



คีย์หลัก (id_user)
ตอนนี้ตารางก็พร้อมแล้ว และตัวเลือกที่เหลือจะเป็นดังนี้:

สร้างผู้ใช้ตาราง ( id_user int (10) AUTO_INCREMENT,ชื่อ varchar (20) ไม่เป็นโมฆะ

อีเมล varchar (50) ไม่เป็นโมฆะ

รหัสผ่าน varchar (15) ไม่เป็นโมฆะ

คีย์หลัก (id_user)
ทีนี้มาดูตารางอื่น - หัวข้อ
คีย์หลัก (id_user)
เมื่อวัดขนาดในลักษณะเดียวกัน เราสามารถมีฟิลด์ต่อไปนี้ได้:
id_author int (10) ไม่เป็นโมฆะ

คีย์หลัก (id_topic)

นอกจากนี้ ในโมเดลฐานข้อมูลของเรา ฟิลด์ id_author ก็เป็นคีย์นอกด้วย
id_topic int (10) AUTO_INCREMENT,
topic_name varchar (100) ไม่เป็นโมฆะ

คีย์หลัก (id_topic)
คีย์ต่างประเทศ (id_author) ผู้ใช้อ้างอิง (id_user)
);

ตารางที่เหลือ – โพสต์ (โพสต์) – สูญหาย ทุกอย่างคล้ายกันที่นี่ ยกเว้นสอง:

ปุ่มภายนอก
สร้างโพสต์ในตาราง (
id_post int (10) AUTO_INCREMENT,
ข้อความไม่เป็นโมฆะ
id_author int (10) ไม่เป็นโมฆะ
id_topic int (10) ไม่เป็นโมฆะ
คีย์หลัก (id_post)
ผู้ใช้อ้างอิงคีย์ต่างประเทศ (id_author) (id_user)
);

คีย์ต่างประเทศ (id_topic) หัวข้ออ้างอิง (id_topic)

โปรดจำไว้ว่า สามารถมีคีย์รองได้หลายคีย์ในตาราง และคีย์ MySQL หลักมีได้เพียงคีย์เดียวเท่านั้น

บทเรียนที่แล้วเราได้ลบฐานข้อมูลฟอรั่มของเรา และถึงเวลาที่จะต้องสร้างมันขึ้นมาใหม่อีกครั้ง เราเปิดตัวเซิร์ฟเวอร์ MySQL (เริ่ม - โปรแกรม - MySQL - เซิร์ฟเวอร์ MySQL 5.1 - ไคลเอนต์บรรทัดคำสั่ง MySQL) ป้อนรหัสผ่าน สร้างฟอรัมฐานข้อมูล (สร้างฟอรัมฐานข้อมูล;) เลือกสำหรับวิกิ (ใช้ฟอรัม;) และสร้างของเรา สามโต๊ะ:โปรดจำไว้ว่า หนึ่งคำสั่งสามารถเขียนได้หลายแถวโดยใช้ปุ่ม Enter (MySQL จะแทรกสัญลักษณ์โดยอัตโนมัติ

แถวใหม่ ->) จากนั้นหลังจากตัวคั่น (จุดที่มีจุด) กดปุ่ม Enter ให้เปิดบรรทัดถัดไปโปรดจำไว้ว่า หากคุณทำผิด คุณสามารถดูตารางหรือฐานข้อมูลทั้งหมดได้โดยใช้ตัวดำเนินการ DROP วิธีการจัดการบรรทัดคำสั่ง

มันยากมาก นั่นเป็นเหตุผลว่าทำไม (โดยเฉพาะใน เวทีซัง:

) การเขียนในโปรแกรมแก้ไขใดๆ เช่น Notepad นั้นง่ายกว่า จากนั้นจึงคัดลอกและวางที่ส่วนท้ายสุด

ตอนนี้ตารางได้ถูกสร้างขึ้นแล้ว เข้าไปได้เลย มาทายทีมกันดีกว่า

แสดงตาราง

ฉัน ค้นหาโครงสร้างของตารางที่เหลือของเรา:

หันไปที่โต๊ะของเรากันเถอะ

ตอนนี้เราต้องป้อนข้อมูลลงในตารางของเรา บนไซต์ต่างๆ คุณมักจะป้อนข้อมูลลงในแบบฟอร์ม html จากนั้นสคริปต์ของฉัน (php, java...) จะดึงข้อมูลนี้จากแบบฟอร์มและป้อนลงในฐานข้อมูลชำระค่าสืบค้น SQL เพิ่มเติมสำหรับการป้อนข้อมูลลงในฐานข้อมูล

ยังเป็นไปไม่ได้ที่เราจะเขียนสคริปต์ใน PHP ได้ แต่ในไม่ช้าเราจะได้เรียนรู้วิธีส่งคำสั่ง SQL เพื่อป้อนข้อมูล


ซึ่งผู้ปฏิบัติงานกำลังได้รับชัยชนะ

แทรก วันที่ของผู้คน", "1111");

- ไวยากรณ์สามารถแบ่งออกเป็นสองประเภท

ตัวเลือกแรกใช้เพื่อป้อนข้อมูลในทุกฟิลด์ของตาราง:


แทรกลงในค่า table_name ("first_stack_values", "other_stuff_values", ..., "remaining_stack_values");

ลองเพิ่มค่าต่อไปนี้ลงในตารางผู้ใช้ของเรา: วันที่ของผู้คน", "2222");

แทรกลงในค่าผู้ใช้ ("1", "sergey", "

อีกทางเลือกหนึ่งคือการป้อนข้อมูลลงในช่องตารางเดียวกัน:

แทรกลงใน table_name ("table_name", "stuff_name") ค่า ("first_table_values", "other_table_values");

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

แทรกผู้ใช้ (ชื่อ, อีเมล, รหัสผ่าน) ค่า ("valera", "

ตอนนี้เราจะเพิ่มสองสามแถวลงในตารางโพสต์ โดยจำไว้ว่าตารางนี้มีคีย์ภายนอก 2 คีย์

id_author และ id_topic ซึ่งเราจะป้อนในตารางที่เกี่ยวข้อง:

  • เรามี 3 ตารางซึ่งมีข้อมูลอยู่
  • อาหารกำลังจะมา - คุณสามารถดูจำนวนข้อมูลที่เก็บไว้ในตารางได้
  • เราจะจัดการกับเรื่องนี้ในบทเรียนหน้า
ฉันจะรวมคำสั่ง SELECT เพื่อสำรวจความสำเร็จและความล้มเหลวหลายร้อยรายการใน SQL Server ได้อย่างไร

SQL: วิธีเลือกแถวต่างๆ ตามค่าปัจจุบันของหน่วยงาน

จะเลือกผลิตภัณฑ์ที่มีราคาสูงสุดสำหรับประเภทผิวได้อย่างไร?

รหัสระดับ ผลิตภัณฑ์ขั้นต่ำ 1 x 1 2 ปี 1 3 z 1 4 a 1

คุณต้องทำซ้ำข้อมูลเดียวกันในฐานข้อมูลโดยเปลี่ยนตัวระบุผลิตภัณฑ์เป็น 1 2.3

40

รหัสระดับ ผลิตภัณฑ์ขั้นต่ำ 1 x 2 2 ปี 2 3 z 2 4 a 2

ฉันสามารถหาเงินเพื่อการศึกษาได้

INSERT INTO dbo.Levels SELECT top 4 * fROM dbo.Levels จะคัดลอกข้อมูล

ฉันสามารถคัดลอกและวางข้อมูลโดยไม่เปลี่ยนค่าผลิตภัณฑ์ได้อย่างไร

< 40) INSERT INTO dbo.Levels(`min`, product) SELECT `min`, cte.n as product fROM dbo.Levels l cross join cte where l.productId = 1;

โดยเร็วที่สุด คุณจะต้องดำเนินการอีกขั้นตอนหนึ่ง:

INSERT INTO dbo.Levels (LevelID, Min, Product) เลือก LevelID, Min, 2 จาก dbo.Levels โดยที่ Product = 1< 40) INSERT INTO dbo.Levels(levelid, `min`, product) SELECT l.levelid+(cte.n-1)*4, `min`, cte.n as product fROM dbo.Levels l cross join cte where l.productId = 1;

... ทำซ้ำแถวด้วยตัวระบุผลิตภัณฑ์อื่น

โปรดทราบว่า WHERE Product = 1 จะเป็น TOP 4 ที่น่าเชื่อถือที่สุดและต่ำกว่า

เนื่องจากคุณจะมีแถวมากกว่าสี่แถวในตาราง คุณจึงไม่สามารถรับประกันได้ว่า TOP 4 จะหมุนแถวเดียวกัน เนื่องจากคุณจะไม่เพิ่ม ORDER BY สำหรับการเลือก แต่ WHERE Product = ... จะหมุนเหมือนเดิมเสมอและ จะดำเนินการต่อไป จากนั้นคุณจะเพิ่มแถวเพิ่มเติมพร้อมรหัสให้กับผลิตภัณฑ์ 1 (คุณจะต้องดูความเป็นไปได้ในการเปลี่ยน TOP 4 เป็น TOP 5 ก่อนที่จะเพิ่มแถวเพิ่มเติม)

คุณสามารถสร้างรหัสผลิตภัณฑ์แล้วเพิ่มลงใน:

ด้วย L0 AS(เลือก 1 AS C UNION ทั้งหมดเลือก 1 AS O), -- 2 แถว L1 AS(เลือก 1 AS C จาก L0 เป็น A CROSS JOIN L0 AS B), -- 4 แถว Nums AS(SELECT ROW_NUMBER() OVER (เรียงตาม (SELECT NULL)) AS N จาก L1) เลือก lvl., lvl., num.[N] จาก dbo

เลเวล CROSS JOIN จำนวน nums