JavaRush /Kurslar /All lectures for UZ purposes /Jadvalga ma'lumot qo'shish

Jadvalga ma'lumot qo'shish

All lectures for UZ purposes
Daraja, Dars
Mavjud

INSERT INTO VALUES() operatori

Biz jadval yaratishni tushundik, endi SQL-so'rovi yordamida jadvalga ma'lumot qo'shishni batafsil ko'rib chiqamiz.

Haqiqatan ham, bu juda oson, lekin ba'zi nozik jihatlari bor. Jadvalga ma'lumot kiritishning eng oddiy variantida ikki narsani ko'rsatish kerak:

  • ustun nomlari
  • ustun qiymatlari (ma'lumotlar)

Ustun nomlarini ko'rsatish shart, chunki ko'pincha ustunlarning standart qiymatlari bo'ladi, ular ma'lumotlarni kiritishda ko'rsatilmaydi. Va odatda, har bir jadvalda hech bo'lmaganda bitta shunday ustun mavjud, masalan, qatorning id.

Jadvalga ma'lumot kiritish so'rovi quyidagicha ko'rinadi:

INSERT INTO table (column1, column2, column3) VALUES (value1, value2, value3), (value1, value2, value3), (value1, value2, value3);

Masalan, user jadvaliga yangi yozuv qo'shishni xohlaysan, bu so'rov quyidagicha bo'ladi:

INSERT INTO user (name, level, created_time) VALUES (‘Rabinovich’, 5, ‘2022-06-06’);

INSERT INTO SELECT operatori

Jadvalga ma'lumot qo'shishning yana bir tez-tez uchraydigan ssenariysi — bu ma'lumotlarni boshqa jadvaldan, sxemadan yoki hatto boshqa ma'lumotlar bazasidan olish.

Buning uchun INSERT INTO so'rovi qisman VALUES o'rniga ma'lumotlarni tanlash so'rovi kiritilishi mumkin.

Bunday so'rovning umumiy ko'rinishi quyidagicha:

INSERT INTO table (column1, column2, column3) SELECT-so'rov;

Keling, employee jadvalidan barcha foydalanuvchilarni user jadvaliga qo'shadigan so'rovni yozamiz:

INSERT INTO user (name, created_time) SELECT employee.name, employee.join_date FROM employee;

Bizda employee jadvalida turli xil ma'lumotlar mavjud, lekin ulardan biz faqat ikkita maydonni tanlaymiz – ism va kompaniyaga kirish vaqti.

Shuningdek, user jadvali foydalanuvchi darajasini – level ko'rsatishni talab qiladi. Employee jadvalida hodimlarning darajasi yo'q, shuning uchun biz user jadvalidagi level maydonining standart qiymatidan foydalanamiz. Biz shunchaki level ko'rsatmaymiz va SQL standart qiymat o'rnatadi.

Faraz qilaylik, bizni standart qiymat qoniqtirmaydi va biz level 99 bo'lishini xohlaymiz, user.created_time esa bugungi kunga almashtirilishi kerak, u holda shunday yozishimiz mumkin:

INSERT INTO user (name, level, created_time) SELECT employee.name, 99, CURDATE() FROM employee;

Yana bir qator qiziqarli narsalarni qilish mumkin, lekin o'ylaymanki, hozircha shu yetarli. Batafsil o'qish uchun MySQL rasmiy sahifasini ko'rib chiqing.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION