Гэр / Интернет дээр ажиллах / SQL query INSERT INTO - мэдээллийн санг мэдээллээр дүүргэ. T-SQL-ийн үндэс. DML Sql мөр оруулах командын синтакс

SQL query INSERT INTO - мэдээллийн санг мэдээллээр дүүргэ. T-SQL-ийн үндэс. DML Sql мөр оруулах командын синтакс

INSERT мэдэгдэл нь хүснэгтэд шинэ бичлэг оруулдаг. Энэ тохиолдолд баганын утгууд нь шууд утга эсвэл дэд асуулгын үр дүн байж болно. Эхний тохиолдолд мөр бүрийг оруулахын тулд тусдаа INSERT хэллэгийг ашигладаг; хоёр дахь тохиолдолд, дэд асуулгад буцаасан тооны мөрийг оруулах болно.

Операторын синтакс дараах байдалтай байна.

    ОРУУЛАХ[(,...)]

    (УТГА(,…) )

  1. | ( ӨГӨХ УТГА )

Та танилцуулсан синтаксаас харж байгаагаар баганын жагсаалт нь заавал биш юм (синтаксийн тайлбар дахь дөрвөлжин хаалт нь үүнийг заана). Хэрэв энэ нь байхгүй бол оруулсан утгуудын жагсаалт бүрэн байх ёстой, өөрөөр хэлбэл хүснэгтийн бүх баганын утгыг өгөх ёстой. Утгын дараалал нь мөр оруулах хүснэгтийн CREATE TABLE хэллэгт заасан дараалалтай тохирч байх ёстой. Нэмж дурдахад эдгээр утгууд нь оруулсан баганатай ижил төрлийн өгөгдлийн төрөл байх ёстой. Жишээ болгон дараах CREATE TABLE хэллэгээр үүсгэсэн Бүтээгдэхүүний хүснэгтэд мөр оруулах талаар бодож үзээрэй.

    ХҮСНЭГТ бүтээгдэхүүн үүсгэх

    maker char (1 ) NULL БИШ,

    загвар varchar(4) NULL БИШ,

    varchar(7) гэж бичнэ үү

Энэ хүснэгтэд В үйлдвэрлэгчийн 1157 дугаартай компьютерийн загварыг нэмж оруулах шаардлагатай. Үүнийг дараах мэдэгдлээр хийж болно.

    Бүтээгдэхүүнд оруулах

    ҮНЭ ЦЭНЭ ("B" , 1157 , "PC" );

Хэрэв та баганын жагсаалтыг зааж өгвөл тэдгээрийн дарааллын "байгалийн" дарааллыг өөрчилж болно.

    Бүтээгдэхүүнд INSERT INTO (төрөл, загвар, үйлдвэрлэгч)

    ҮНЭ ЦЭНЭ ("PC" , 1157, "B" );

Энэ нь дизайныг илүү төвөгтэй болгодог бүрэн шаардлагагүй шинж чанар юм шиг санагдаж байна. Гэсэн хэдий ч, баганууд нь анхдагч утгуудтай бол ялна. Дараах хүснэгтийн бүтцийг авч үзье.

    ХҮСНЭГТИЙН бүтээгдэхүүн үүсгэх_D

    maker char (1) NULL,

    загвар varchar(4) NULL,

    varchar (7) гэж бичнэ үү. NULL өгөгдмөл "PC"

Энд бүх баганын утгууд нь анхдагч утгатай байна гэдгийг анхаарна уу (эхний хоёр нь NULL, сүүлчийн багана нь PC төрөл). Одоо бид бичиж болно:

    Бүтээгдэхүүн_D (загвар, үйлдвэрлэгч) INSERT INTO

    VALUES(1157 , "B" );

Энэ тохиолдолд мөр оруулах үед алга болсон утгыг анхдагч утга болох PC-ээр солино. CREATE TABLE мэдэгдлийн баганад өгөгдмөл утгыг заагаагүй бөгөөд тухайн хүснэгтийн баганад NULL-г ашиглахыг хориглосон NOT NULL хязгаарлалт заагаагүй бол NULL-ийн анхдагч утгыг илэрхийлнэ гэдгийг анхаарна уу.

Асуулт гарч ирнэ: баганын жагсаалтыг зааж өгөхгүй байх боломжтой юу, гэхдээ анхдагч утгуудыг ашиглах боломжтой юу? Хариулт нь тийм. Үүнийг хийхийн тулд утгыг тодорхой зааж өгөхийн оронд DEFAULT гэсэн нөөцлөгдсөн үгийг ашиглана уу:

    Бүтээгдэхүүнд ОРУУЛАХ_D

    УТГА ("B" , 1158 , ӨГӨГДМӨЛ ) ;

Бүх баганууд анхдагч утгуудтай тул өгөгдмөл утгатай мөр оруулахын тулд дараахь зүйлийг бичиж болно.

    Бүтээгдэхүүнд ОРУУЛАХ_D

    УТГА (ӨГӨГДМӨЛ , өгөгдмөл , өгөгдмөл ) ;

Гэсэн хэдий ч, энэ тохиолдолд тусгай DEFAULT VALUES бүтэц бий (операторын синтаксийг үзнэ үү) дээрх операторыг дараах байдлаар дахин бичихэд ашиглаж болно.

    Бүтээгдэхүүний_D өгөгдмөл УТГА ОРУУЛАХ ;

Хүснэгтэд мөр оруулахдаа бүх хязгаарлалт тавигддаг болохыг анхаарна уу энэ хүснэгт. Эдгээр нь үндсэн гол хязгаарлалт эсвэл байж болно өвөрмөц индекс, CHECK төрлийн хязгаарлалтыг шалгах, лавлагааны бүрэн бүтэн байдлын хязгаарлалт. Хэрэв ямар нэгэн хязгаарлалт зөрчсөн бол мөр оруулахаас татгалзах болно. Одоо дэд асуулга ашиглах тохиолдлыг авч үзье. Бүтээгдэхүүний хүснэгтээс загвартай холбоотой бүх мөрийг Бүтээгдэхүүн_D хүснэгтэд оруулахыг хүсч байна гэж бодъё хувийн компьютерууд(төрөл = 'PC'). Бидэнд шаардлагатай утгууд аль хэдийн зарим хүснэгтэд байгаа тул оруулсан мөрүүдийг гараар үүсгэх нь нэгдүгээрт, үр ашиггүй, хоёрдугаарт, оролтын алдаа гаргах боломжийг олгодог. Дэд асуулга ашиглах нь дараах асуудлуудыг шийддэг.

Хоёр хүснэгтийн хувьд баганын дараалал ижил тул дэд асуулгад "*" тэмдгийг ашиглах нь зөв юм. Хэрэв тийм биш байсан бол INSERT мэдэгдэлд эсвэл дэд асуулгад эсвэл хоёуланд нь баганын дараалалд тохирох баганын жагсаалтыг ашиглах шаардлагатай болно.

Энд, урьдын адил, хэрэв та одоо байгаа өгөгдмөл утгуудыг ашиглахыг хүсвэл бүх баганыг зааж өгөхгүй, жишээлбэл:

Энэ тохиолдолд Бүтээгдэхүүн_D хүснэгтийн төрөл баганыг оруулсан бүх мөрийн PC-ийн анхдагч утгад тохируулна.

Предикат агуулсан дэд асуулга ашиглах үед зөвхөн уг предикатын утга ҮНЭН (МЭДЭГДЭХГҮЙ! биш) гэсэн мөрүүдийг оруулах болно гэдгийг анхаарна уу. Өөрөөр хэлбэл, Бүтээгдэхүүний хүснэгтийн төрлийн багана нь хүчинтэй биш бөгөөд энэ утга нь хэд хэдэн мөрөнд байгаа бол тэдгээр мөрийг Бүтээгдэхүүн_D хүснэгтэд оруулахгүй.

VALUES заалтын мөр үүсгэгчийг ашиглах үед INSERT хэллэгт нэг мөр оруулах хязгаарлалтыг даван туулахын тулд UNION ALL заалт бүхий мөр үүсгэгч дэд асуулга ашиглах нь зохиомол арга юм. Хэрэв бид нэг INSERT хэллэгээр олон мөр оруулах шаардлагатай бол дараах зүйлийг бичиж болно.

    Бүтээгдэхүүнд ОРУУЛАХ_D

    "B" AS үйлдвэрлэгч, 1158 AS загвар, "PC" AS төрлийг сонго

    НЭГДЭЛ

    "C" , 2190 , "Зөөврийн компьютер"-ийг сонго

    НЭГДЭЛ

    "D" , 3219 , "Хэвлэгч"-ийг сонго;

Давхардсан мөр байхгүй гэсэн баталгаатай байсан ч UNION ALL-г ашиглах нь илүү тохиромжтой, учир нь энэ тохиолдолд давхардсан эсэхийг шалгахгүй.

Мөр үүсгэгчийг ашиглан олон тооны tuple оруулах нь аль хэдийн хэрэгжсэн гэдгийг тэмдэглэх нь зүйтэй Microsoft корпорациас боловсруулсан Relational Data Management System (DBMS).Structured Query Language нь харилцааны өгөгдлийн сан дахь өгөгдлийг үүсгэх, өөрчлөх, удирдахад ашигладаг ерөнхий зориулалттай компьютерийн хэл юм. SQL сервер 2008. Энэ боломжийг харгалзан сүүлийн асуулга дараах байдлаар дахин бичиж болно.

    Бүтээгдэхүүний_D ҮНЭ ЦЭВЭРТ ОРУУЛАХ

    ("B", 1158, "PC") ,

    ("C", 2190, "Зөөврийн компьютер") ,

Өгөгдлийн сангийн хүснэгтийг үүсгэх үед sql INSERT INTO асуулга утга учиртай болно. Өөрөөр хэлбэл, хүснэгт байгаа, нэртэй, мөр, багана үүсгэсэн. хүснэгтийг оператор үүсгэнэ: , хүснэгтийг оператор өөрчилнө.

sql query INSERT INTO - асуулгын синтакс

sql INSERT INTO асуулга дараах синтакстай байна:

INSERT INTO table_name (шаардлагатай бол хаалтанд өгөгдөл оруулах баганын жагсаалтыг оруулна) VALUES оруулсан өгөгдөл1, оруулсан өгөгдөл2, оруулсан өгөгдөл3.

INSERT болон INTRO хоёрын хооронд ITNORE сонголтыг оруулж болно. Энэ нь заавал байх албагүй. Хүснэгтийг засварлахдаа үндсэн түлхүүрүүдийг хамгаалах шаардлагатай. Үгүй бол засварлах явцад үндсэн түлхүүрүүдийн давхардал гарсан тохиолдолд IGNORE сонголтыг оруулах үед үндсэн түлхүүр бүхий эхний мөр нь өөрчлөгдсөн хүснэгтэд үлдэх бөгөөд бусад үндсэн түлхүүрүүд устгагдана. Анхдагч байдлаар, энэ сонголтыг орхигдуулсан байна.

LOW_PRIORITY болон DELAYED гэсэн нэмэлт сонголтууд байна. Тэд мэдээллийн санд мэдээлэл оруулах тэргүүлэх чиглэлийг тодорхойлдог. Эхнийх нь мэдээллийн баазыг гаргах хүлээлтийг тогтоодог, хоёр дахь нь мэдээллийг буферлэх гэсэн үг юм.

Асуулгын мөр: VALUES заалттай INSERT нь мэдээллийн сангийн хүснэгтэд нэг мөр нэмнэ. VALUES заалт нь энэ өгөгдлийн утгыг агуулна.

VALUES заалтын оронд дэд асуулга ашиглаж болно. Дэд асуулгатай INSERT нь дэд асуулгад буцаасан мөрүүдийг хүснэгтэд нэмнэ. Өгөгдлийн сангийн сервер нь дэд асуулгыг боловсруулж, бүх буцаж ирсэн мөрүүдийг хүснэгтэд оруулна. Хэрэв дэд асуулга сонгоогүй бол сервер мөр оруулахгүй.

  • subquery_1 - сервер нь харагдацтай ижил аргаар боловсруулдаг дэд асуулга
  • subquery_2 нь хүснэгтэд оруулсан мөрүүдийг буцаадаг дэд асуулга юм. Энэ дэд асуулгын жагсаалт нь INSERT баганын жагсаалттай ижил тооны баганатай байх ёстой.

MySQL мэдээллийн санд дэд асуулга бараг ашиглагддаггүй.

MySQL мэдээллийн сан дахь sql асуулгын жишээнүүдийг INSERT INTO

INSERT INTRO командыг ашиглан MySQL мэдээллийн санд шинэ мөрүүдийг оруулна уу.

Эхний жишээ.

Хүснэгтийн нэрэнд шинэ мөр оруулах.

INSERT INTO table_name VALUES ('2','145','1','name');

Энэ нь бид table_name хүснэгтийн баганад 2,145,1 нэрийн утгыг оруулахыг хүсч байна гэсэн үг юм. Багануудыг заагаагүй тул утгуудыг хүснэгтийн бүх баганад бөглөнө.

Хоёр дахь жишээ.

Хүснэгтийн нэрний хүссэн (заасан) баганад мэдээлэл оруулах.

INSERT INTO хүснэгтийн нэр (үйлчлүүлэгч_харилцагчийн, үйлчлүүлэгчийн_захиалагч, үйлчлүүлэгчийн_мэйл) ҮНЭ ЦЭНЭ ('нэр1','дэд нэр1',' [имэйлээр хамгаалагдсан]'), ('нэр2','дэд нэр2',' [имэйлээр хамгаалагдсан]'), ('нэр3','дэд нэр3',(' [имэйлээр хамгаалагдсан]′);

Игорь Серов "" сайтад тусгайлан зориулсан.

SQL INSERT INTO болон INSERT SELECT мэдэгдлүүд нь хүснэгтэд шинэ мөр оруулахад ашиглагддаг. Зааврыг ашиглах хоёр арга бий:

  1. Зөвхөн утгууд: Эхний арга нь зөвхөн баганын нэргүйгээр оруулах өгөгдлийн утгыг зааж өгөх явдал юм.

Синтакс:

INSERT INTO table_name VALUES (утга1, утга2, утга3,...); table_name: хүснэгтийн нэр. утга1, утга2,.. : шинэ бичлэгийн эхний баганын, хоёр дахь баганын, ... утгууд

  1. Баганын нэр ба утгууд: Хоёрдахь арга нь оруулах баганын нэр, мөрийн утгыг зааж өгнө.

Синтакс:

INSERT INTO хүснэгтийн нэр(багана1, багана2, багана3,..) VALUES(утга1, утга2, утга3,...); table_name: хүснэгтийн нэр. багана1: эхний баганын нэр, хоёр дахь баганын нэр... утга1, утга2,.. : шинэ оруулгад зориулсан эхний баганын, хоёр дахь баганын утгууд,...

Хүсэлтүүд:

Арга 1 ( зөвхөн утгыг оруулах):

INSERT INTO Student VALUES("5","HARSH","WEST BENGAL","8759770477","19");

Үр дүн:

Дараа нь INSERT ашигланОюутны INTO SELECT хүснэгт одоо дараах байдлаар харагдах болно.

ROLL_NO НЭР ХАЯГ УТАС Нас
1 Рам Дели 9455123451 18
2 РАМЕШ ГУРГАОН 9562431543 18
3 СУЖИТ ROHTAK 9156253131 20
4 SURESH Дели 9156768971 18
3 СУЖИТ ROHTAK 9156253131 20
2 РАМЕШ ГУРГАОН 9562431543 18
5 ХАРШ БАРУУН БЕНГАЛ 8759770477 19

Арга 2 ( зөвхөн заасан баганад утгыг оруулах):

Оюутан (ROLL_NO, НЭР, Нас) ҮНЭ ЗҮЙЛҮҮД ("5","PRATIK","19");

Үр дүн:

Оюутны хүснэгт одоо дараах байдлаар харагдах болно.

ROLL_NO НЭР ХАЯГ УТАС Нас
1 Рам Дели 9455123451 18
2 РАМЕШ ГУРГАОН 9562431543 18
3 СУЖИТ ROHTAK 9156253131 20
4 SURESH Дели 9156768971 18
3 СУЖИТ ROHTAK 9156253131 20
2 РАМЕШ ГУРГАОН 9562431543 18
5 ПРАТИК null null 19

Утгагүй багануудыг null гэж тохируулсан болохыг анхаарна уу.

INSERT INTO мэдэгдэлд SELECT-ийг ашиглах

Та MySQL INSERT SELECT мэдэгдлийг ашиглан нэг хүснэгтээс мөр хуулж, өөр хүснэгтэд оруулах боломжтой.

Энэ операторын хэрэглээ нь INSERT INTO-г ашиглахтай адил юм. Үүний ялгаа нь SELECT командыг өөр хүснэгтээс өгөгдөл сонгоход ашигладаг. Доор байна янз бүрийн арга замууд INSERT INTO SELECT ашиглан:

  • Хүснэгтийн бүх баганыг оруулна уу: Та хүснэгтэд байгаа бүх өгөгдлийг хуулж өөр хүснэгтэд буулгаж болно.

Синтакс:

INSERT INTO first_table SELECT * FROM second_table; first_table: Эхний хүснэгтийн нэр. second_table: хоёр дахь хүснэгтийн нэр.

Бид нэг хүснэгтээс өгөгдлийг хуулахдаа SELECT командыг, нөгөө хүснэгтэд оруулахдаа INSERT INTO хэллэгийг ашигласан.

  • Тусдаа хүснэгтийн багануудыг оруулах. Та өөр хүснэгтэд буулгахыг хүссэн хүснэгтийнхээ багануудыг л хуулж болно.

Синтакс:

INSERT INTO эхний_хүснэгт(баганын_нэр1) Хоёрдахь хүснэгтээс баганын_нэр2 СОНГОХ; first_table: Эхний хүснэгтийн нэр. second_table: хоёр дахь хүснэгтийн нэр. colnames1: 1-р хүснэгтийн таслалаар тусгаарлагдсан баганын нэр(,). col-names2: 2-р хүснэгтийн таслалаар тусгаарлагдсан баганын нэр(,).

Бид зөвхөн хоёр дахь хүснэгтийн сонгосон баганаас өгөгдлийг хуулахдаа SELECT мэдэгдлийг, эхний хүснэгтэд оруулахдаа MySQL INSERT INTO SELECT хэллэгийг ашигласан.

  • Хүснэгтээс тодорхой мөрүүдийг хуулж байна. Та SELECT хэллэг бүхий WHERE заалтыг ашиглан дараа нь өөр хүснэгтэд оруулахын тулд хүснэгтээс тодорхой мөрүүдийг хуулж болно. Энэ тохиолдолд та тохирох WHERE заалтыг ашиглах хэрэгтэй.

Синтакс:

Хүснэгт 2: LateralStudent

ROLL_NO НЭР ХАЯГ УТАС Нас
7 СОВИК ДУМДУМ 9876543210 18
8 НИРАЖ НОЙДА 9786543210 19
9 SOMESH ROHTAK 9687543210 20

Хүсэлтүүд:

Арга 1 ( бүх мөр, баганыг оруулах):

INSERT INTO Student SELECT * FROM LateralStudent;

Үр дүн:

Энэ асуулга нь LateralStudent хүснэгтийн бүх өгөгдлийг Оюутны хүснэгтэд оруулна. SQL INSERT INTO SELECT-ийг хэрэглэсний дараа Оюутны хүснэгт дараах байдалтай харагдана.

ROLL_NO НЭР ХАЯГ УТАС Нас
1 Рам Дели 9455123451 18
2 РАМЕШ ГУРГАОН 9562431543 18
3 СУЖИТ ROHTAK 9156253131 20
4 SURESH Дели 9156768971 18
3 СУЖИТ ROHTAK 9156253131 20
2 РАМЕШ ГУРГАОН 9562431543 18
7 СОВИК ДУМДУМ 9876543210 18
8 НИРАЖ НОЙДА 9786543210 19
9 SOMESH ROHTAK 9687543210 20

Арга 2 ( бие даасан багана оруулах):

INSERT INTO Оюутан(ROLL_NO,NAME,Age) СОНГОХ ROLL_NO, NAME, Age FROM LateralStudent;

Үр дүн:

Энэ асуулга нь LateralStudent хүснэгтийн ROLL_NO , NAME болон Age баганаас өгөгдлийг Оюутны хүснэгтэд оруулах болно. Оюутны хүснэгтийн үлдсэн багануудыг null гэж тохируулна. SQL INSERT SELECT-ийг хэрэглэсний дараа хүснэгт дараах байдалтай харагдана.

ROLL_NO НЭР ХАЯГ УТАС Нас
1 Рам Дели 9455123451 18
2 РАМЕШ ГУРГАОН 9562431543 18
3 СУЖИТ ROHTAK 9156253131 20
4 SURESH Дели 9156768971 18
3 СУЖИТ ROHTAK 9156253131 20
2 РАМЕШ ГУРГАОН 9562431543 18
7 СОВИК Null null 18
8 НИРАЖ Null null 19
9 SOMESH Null null 20
  • Оруулах тодорхой мөрүүдийг сонгож байна:

Үр дүн:

Энэ асуулга нь Оюутны хүснэгтэд оруулах LateralStudent хүснэгтээс зөвхөн эхний мөрийг сонгоно. INSERT SELECT-ийг хэрэглэсний дараа хүснэгт иймэрхүү харагдах болно.

Өмнө нь авч үзсэн SELECT мэдэгдлээс гадна Data Manipulation Language (DML) нь INSERT, UPDATE, DELETE гэсэн өөр гурван мэдэгдлийг агуулдаг. SELECT мэдэгдлийн нэгэн адил эдгээр гурван мэдэгдэл нь хүснэгт эсвэл харагдац дээр ажилладаг. Энэ нийтлэлд INSERT мэдэгдлийн тухай өгүүлэх бөгөөд бусад хоёр мэдэгдлийг дараагийн өгүүллээр авч үзэх болно.

INSERT мэдэгдэлХүснэгтэнд мөр (эсвэл мөрийн хэсэг) оруулна. Хоёр байна янз бүрийн хэлбэрүүдэнэ заавар:

INSERT tab_name [(col_list)] өгөгдмөл УТГА | VALUES (( DEFAULT | NULL | илэрхийлэл ) [ ,...n]) INSERT INTO tab_name | харах_нэр [(хамгийн_жагсаалт)] (сонгосон_мэдэгдэл | execute_statement) Синтакс конвенцууд

Мэдэгдэлийн эхний хэлбэр нь хүснэгтэд нэг мөр (эсвэл түүний хэсгийг) оруулах боломжийг олгодог. Мөн INSERT мэдэгдлийн хоёр дахь хэлбэр нь SELECT мэдэгдлийн үр дүнгийн багц эсвэл EXECUTE хэллэгээр гүйцэтгэсэн хадгалагдсан процедурыг хүснэгтэд оруулах боломжийг олгодог. Хадгалагдсан процедур нь хүснэгтэд оруулах өгөгдлийг буцааж өгөх ёстой. INSERT хэллэгийг ашиглах үед SELECT мэдэгдэл нь харгалзах баганын өгөгдлийн төрлүүд таарч байвал өөр эсвэл өгөгдөл оруулж буй ижил хүснэгтээс утгыг сонгож болно.

Хоёр маягтын хувьд оруулсан утга бүрийн өгөгдлийн төрөл нь хүснэгтийн харгалзах баганын өгөгдлийн төрөлтэй тохирч байх ёстой. Бүх мөр болон түр зуурын өгөгдлийг хашилтанд оруулах ёстой; Тоон утгыг хашилтанд оруулах шаардлагагүй.

Нэг мөр оруулах

INSERT мэдэгдлийн хоёр хэлбэрийн хувьд баганын тодорхой жагсаалт заавал байх ёстой. Баганын жагсаалт байхгүй байгаа нь хүснэгтийн бүх баганыг зааж өгсөнтэй тэнцэнэ.

өгөгдмөл УТГА параметрбүх баганын өгөгдмөл утгыг оруулна. TIMESTAMP өгөгдлийн төрөл эсвэл IDENTITY шинж чанартай багануудыг системээс автоматаар үүсгэсэн утгуудын хамт өгөгдмөл байдлаар оруулна. Бусад төрлийн өгөгдлийн баганад харгалзах тэг биш анхдагч утгыг, хэрэв байгаа бол, эсвэл NULL оруулна. Хэрэв баганад хоосон утгыг зөвшөөрөхгүй бөгөөд баганад анхдагч утга тогтоогдоогүй бол INSERT мэдэгдэл амжилтгүй болж, тохирох мессеж гарч ирнэ.

Дараах жишээ нь SampleDb мэдээллийн сан дахь Ажилчдын хүснэгтэд мөрүүдийг оруулж, мэдээллийн санд бага хэмжээний өгөгдөл оруулахын тулд INSERT хэллэгийг хэрхэн ашиглахыг харуулж байна:

SampleDb-г ашиглах; INSERT INTO ажилчдын ҮНЭ ЦЭНЭ(34990, "Андрей", "Батонов", "d1"); INSERT INTO ажилчдын ҮНЭ ЦЭНЭ(38640, "Алексей", "Васин", "d3");

Хоёр байна янз бүрийн арга замуудутгыг оруулах шинэ мөр. Доорх жишээн дэх INSERT мэдэгдэл нь тодорхой ашигладаг түлхүүр үг NULL ба NULL утгыг харгалзах баганад оруулна:

SampleDb-г ашиглах; INSERT INTO Employée VALUES(34991, "Андрей", "Батонов", NULL);

Хүснэгтийн зарим баганад (гэхдээ бүгд биш) утгыг оруулахын тулд та эдгээр баганыг тодорхой зааж өгөх хэрэгтэй. Тодорхойлогдоогүй баганууд нь NULL утгыг зөвшөөрөх эсвэл тэдэнд зориулсан анхдагч утгыг тодорхойлсон байх ёстой.

SampleDb-г ашиглах; INSERT INTO ажилтны(Id, овог нэр, овог) ҮНЭ ЦЭНЭ (34992, "Андрей", "Батонов");

Өмнөх хоёр жишээ ижил байна. Ажилтны хүснэгтэд хоосон утгыг зөвшөөрдөг цорын ганц багана бол Департаментын дугаар багана бөгөөд бусад бүх баганын хувьд энэ утгыг CREATE TABLE мэдэгдлийн NOT NULL заалтаар хориглосон болно.

Үнэт зүйлсийн дараалал өгүүлбэр ҮНЭ ЦЭНЭ INSERT мэдэгдэл нь CREATE TABLE мэдэгдэлд заасан дарааллаас ялгаатай байж болно. Ийм тохиолдолд тэдгээрийн дараалал нь баганын жагсаалтад харгалзах багануудыг жагсаасан дараалалтай тохирч байх ёстой. Дараах нь өгөгдлийг эх хувилбараас өөр дарааллаар оруулах жишээ юм.

SampleDb-г ашиглах; INSERT INTO ажилтны(тэнхимийн дугаар, овог, дугаар, нэр) ҮНЭ ЦЭНЭ ("d1", "Батонов", 34993, "Андрей");

Олон мөр оруулах

INSERT мэдэгдлийн хоёр дахь хэлбэр нь хүснэгтэд дэд асуулгаар сонгосон нэг буюу хэд хэдэн мөрийг оруулдаг. Доорх жишээнд INSERT мэдэгдлийн хоёр дахь хэлбэрийг ашиглан хүснэгтэд мөр оруулах аргыг харуулав. Энэ тохиолдолд Москвад байрлах хэлтэсүүдийн дугаар, нэрийг сонгохын тулд асуулга хийж, үүссэн багцыг өмнө нь үүсгэсэн шинэ хүснэгтэд ачаална.

Дээрх жишээн дээр үүсгэсэн Москвагийн газрын шинэ хүснэгт нь байхгүй Байршлын баганаас бусад тохиолдолд одоо байгаа хэлтсийн хүснэгттэй ижил баганатай байна. INSERT мэдэгдлийн дэд асуулга нь Байршлын баганын утга нь Москва байх хэлтэсийн хүснэгтийн бүх мөрийг сонгож, дараа нь асуулгын эхэнд үүсгэсэн шинэ хүснэгтэд оруулна.

Доорх жишээ нь INSERT мэдэгдлийн хоёр дахь хэлбэрийг ашиглан хүснэгтэд мөр оруулах өөр аргыг харуулж байна. Энэ тохиолдолд p2 төсөл дээр ажиллаж байгаа "Менежер" албан тушаалтай бүх ажилчдын боловсон хүчний тоо, төслийн дугаар, төсөл эхлэх огноог авахын тулд асуулга ажиллуулж, дараа нь үүссэн багцыг эхэнд үүсгэсэн шинэ хүснэгтэд ачаална. асуулгад:

SampleDb-г ашиглах; CREATE TABLE ManagerTeam(EmpId INT NOT NULL, ProjectNumber CHAR(4) NOT NULL, Enter Date DATE); INSERT INTO ManagerTeam(EmpId, ProjectNumber, EnterDate) SELECT EmpId, ProjectNumber, EnterDate FROM Works_on WHERE Job = "Meneger";

INSERT мэдэгдлийг ашиглан мөр оруулахаас өмнө MoscowDepartment болон ManagerTeam хүснэгтүүд (дээрх жишээнүүдэд) хоосон байсан. Хэрэв хүснэгт аль хэдийн байсан бөгөөд өгөгдлийн мөрүүдийг агуулж байсан бол түүнд шинэ мөрүүд нэмэгдэх болно.

Өмнөх хэсгүүдэд бид урьдчилан үүсгэсэн хүснэгтүүдээс өгөгдөл олж авах ажлыг авч үзсэн. Одоо бид хэрхэн хүснэгт үүсгэх/устгах, шинэ бичлэг нэмэх, хуучин бичлэгүүдийг устгах талаар олж мэдэх цаг болжээ. Эдгээр зорилгоор SQLИйм операторууд байдаг: БҮТЭЭХ- хүснэгт үүсгэдэг ӨӨРЧЛӨХ- хүснэгтийн бүтцийг өөрчлөх; DROP- хүснэгт эсвэл талбарыг устгах; INSERT- хүснэгтэд өгөгдөл нэмнэ. Энэ бүлгийн операторуудтай танилцах ажлыг оператороос эхэлцгээе INSERT.

1. Бүхэл мөр нэмэх

Нэрнээс нь харахад оператор INSERTөгөгдлийн сангийн хүснэгтэд мөр оруулах (нэмэх) хийхэд ашигладаг. Нэмэлтийг хэд хэдэн аргаар хийж болно:

  • - нэг бүтэн мөр нэмнэ үү
  • - мөрийн хэсгийг нэмнэ үү
  • - асуулгын үр дүнг нэмэх.

Тиймээс, хүснэгтэд шинэ мөр нэмэхийн тулд бид хүснэгтийн нэрийг зааж, баганын нэрсийг жагсааж, багана тус бүрийн утгыг констракшн ашиглан зааж өгөх хэрэгтэй. INSERT INTO хүснэгтийн нэр (талбар1, талбар2 ...) ҮНЭ ЦЭНЭ (утга1, утга2 ...). Нэг жишээ авч үзье.

Борлуулагчид (ID, Хаяг, Хот, Худалдагчийн_нэр, Улс) ҮНЭ ЦЭНГҮҮД ОРУУЛАХ("6", "1-р гудамж", "Лос Анжелес", "Харри Монро", "АНУ")

Та мөн баганын нэрсийн дарааллыг өөрчилж болно, гэхдээ үүнтэй зэрэгцэн параметр дэх утгуудын дарааллыг өөрчлөх хэрэгтэй. ҮНЭ ЦЭНЭ.

2. Мөрний хэсгийг нэмэх

Өмнөх жишээнд операторыг ашиглах үед INSERTБид хүснэгтийн баганын нэрийг тодорхой тэмдэглэсэн. Ашиглаж байна өгөгдсөн синтакс, бид зарим баганыг алгасаж болно. Энэ нь та зарим баганад утга оруулах боловч бусад баганад утгыг оруулахгүй гэсэн үг юм. Жишээлбэл:

Худалдагч (ID, Хот, Худалдагчийн_нэр) ҮНЭ ЦЭНГҮҮД ОРУУЛАХ("6", "Лос Анжелес", "Харри Монро")

IN энэ жишээБид хоёр баганад утгыг зааж өгөөгүй хаягТэгээд Улс. Та мэдэгдлийн зарим баганыг хасч болно INSERT INTO, хэрэв энэ нь хүснэгтийн тодорхойлолтыг зөвшөөрвөл. Энэ тохиолдолд дараах нөхцлүүдийн аль нэгийг хангасан байх ёстой: энэ багана нь утгыг зөвшөөрөх гэж тодорхойлогддог NULL(ямар нэгэн утга байхгүй) эсвэл хүснэгтийн тодорхойлолтод заасан анхдагч утгыг оруулна. Энэ нь утгыг заагаагүй тохиолдолд анхдагч утгыг ашиглана гэсэн үг юм. Хэрэв та хүснэгтийн мөрөнд утгыг оруулахыг зөвшөөрдөггүй баганыг алгасах юм бол NULLбөгөөд анхдагч утга нь тодорхойлогдоогүй бол DBMS нь алдааны мэдэгдэл гаргах бөгөөд энэ мөрийг нэмэхгүй.

3. Сонгосон өгөгдлийг нэмэх

Өмнөх жишээнүүдэд бид өгөгдлийг асуулгад гараар бичиж хүснэгтэд оруулсан. Гэсэн хэдий ч оператор INSERT INTOХэрэв бид өөр хүснэгтээс өгөгдөл оруулахыг хүсвэл энэ процессыг автоматжуулах боломжийг олгодог. Үүнийг хийхийн тулд SQL нь дараах бүтэцтэй байна: ОРУУЛАХ ... СОНГОХ .... Энэхүү загвар нь нэг хүснэгтээс өгөгдлийг нэгэн зэрэг сонгож, нөгөө хүснэгтэд оруулах боломжийг олгодог. Бидэнд өөр ширээ байна гэж бодъё Борлуулагчид_ЕХЕвроп дахь манай бараа борлуулагчдын жагсаалттай бөгөөд бид тэдгээрийг ерөнхий хүснэгтэд нэмэх хэрэгтэй Борлуулагчид. Эдгээр хүснэгтүүдийн бүтэц нь ижил (ижил тооны багана, ижил нэртэй), гэхдээ өөр өөр өгөгдөлтэй. Үүнийг хийхийн тулд бид дараах хүсэлтийг бичиж болно.

INSERT INTO Худалдагч (ID, Хаяг, Хот, Худалдагчийн_нэр, Улс) СОНГОХID, Хаяг, Хот, Худалдагчийн_нэр, Худалдагч_ЕХ-с Улс

Дотоод түлхүүрүүдийн утга давтагдахгүй гэдгийг анхаарах хэрэгтэй (талбар ID), эс бөгөөс алдаа гарна. Оператор СОНГОХсаналуудыг мөн багтааж болно ХААНАөгөгдлийг шүүх. DBMS нь мэдэгдэлд агуулагдсан баганын нэрэнд анхаарал хандуулдаггүй гэдгийг тэмдэглэх нь зүйтэй. СОНГОХ, зөвхөн тэдний зохион байгуулалтын дараалал нь түүний хувьд чухал юм. Тиймээс, учир нь сонгосон эхний заасан баганад өгөгдөл СОНГОХ, ямар ч байсан хүснэгтийн эхний баганад бөглөнө Борлуулагчидоператорын дараа заасан INSERT INTO, талбайн нэрээс үл хамааран.

4. Нэг хүснэгтээс нөгөө хүснэгтэд өгөгдлийг хуулах

Ихэнхдээ мэдээллийн сантай ажиллахдаа нөөцлөх, өөрчлөх зорилгоор аливаа хүснэгтийн хуулбарыг үүсгэх шаардлагатай болдог. SQL-д хүснэгтийг бүрэн хуулбарлахын тулд тусдаа мэдэгдэл өгсөн болно СОНГОХ. Жишээлбэл, бид хүснэгтийн хуулбарыг үүсгэх хэрэгтэй Борлуулагчид, та хүсэлтийг дараах байдлаар бичих хэрэгтэй болно.

* Худалдагчдаас Sellers_new-г СОНГОХ

Өмнөх загвараас ялгаатай ОРУУЛАХ ... СОНГОХ ...өгөгдөл нэмэх үед одоо байгаа хүснэгт, бүтэц нь өгөгдлийг шинэ хүснэгтэд хуулдаг. Эхнийх нь импортын өгөгдөл, хоёр дахь нь экспортыг бүтээдэг гэж хэлж болно. бүтцийг ашиглах үед СОНГОХ ... ДОТО ... ...дараахь зүйлийг анхаарч үзэх хэрэгтэй.

  • - та оператор дээр дурын өгүүлбэр ашиглаж болно СОНГОХгэх мэт GROUP BYТэгээд БАЙХ
  • - олон хүснэгтээс өгөгдөл нэмэхэд нэгдэхийг ашиглаж болно
  • - өгөгдлийг хэдэн хүснэгтээс авсанаас үл хамааран зөвхөн нэг хүснэгтэд нэмж болно.