Mysql yeniləməsi nümunələrin olduğu yerdir. MySQL sorğularını YENİLƏNİN. Parametrlər və ya Arqumentlər




DELETE açar sözü nədir?

SQL DELETE əmri verilənlər bazası cədvəllərindən artıq tələb olunmayan sətirləri silmək üçün istifadə olunur. Cədvəldən bütün sıranı silir. Sil əmri verilənlər bazanızdan müvəqqəti və ya köhnəlmiş məlumatları silmək üçün əlverişlidir. SİL əmri bir sorğuda cədvəldən birdən çox sətir silə bilər. Verilənlər bazası cədvəlindən çoxlu sayda sətirləri silərkən bu, üstünlüklər olduğunu sübut edir.

Bir sıra silindikdən sonra onu bərpa etmək mümkün deyil. Buna görə də verilənlər bazasından hər hansı məlumatı silməzdən əvvəl verilənlər bazasının ehtiyat nüsxəsini çıxarmaq tövsiyə olunur. Bu, verilənlər bazasını bərpa etməyə və tələb olunarsa, sonradan məlumatlara baxmaq imkanı verə bilər.

Komanda sintaksisini silin

Sil əmrinin əsas sintaksisi aşağıda göstərildiyi kimidir.

  • DELETE FROM `table_name` MySQL serverinə cədvəldən sətirləri silməyi bildirir.
  • isteğe bağlıdır və DELETE sorğusunun təsir etdiyi sətirlərin sayını məhdudlaşdıran filtr qoymaq üçün istifadə olunur.

DELETE sorğusunda WHERE bəndindən istifadə edilmədikdə, verilmiş cədvəldəki bütün sətirlər silinəcək. SİL əmri ilə bağlı ətraflı müzakirələrə keçməzdən əvvəl, işləmək üçün bəzi nümunə məlumatları filmlər cədvəlinə daxil edək.

INSERT INTO `filmlərə` (`başlıq`, `rejissor`, `buraxılış_ili`, `kateqoriya_id`) DƏYƏRLƏR ("The Great Dictator", "Chalie Chaplie", 1920, 7); INSERT INTO `filmlər` (`başlıq`, `rejissor`, `kateqoriya_id`) VALUES ("nümunə film", "Anonim", 8); INSERT INTO filmlərə (`başlıq`, `rejissor`, `buraxılış_ili`, `kateqoriya_id`) DƏYƏRLƏR ("film 3", "Con Braun", 1920, 8);

Yuxarıdakı skriptin yerinə yetirilməsi filmlər cədvəlinə üç (3) film əlavə edir. Dərsimizə davam etməzdən əvvəl gəlin cədvəlimizdəki bütün filmləri əldə edək. Aşağıda göstərilən ssenari bunu edir.

'filmlərdən' * SEÇİN;

movie_iditlerejissorburaxılış ilikateqoriya_id
1 Karib dənizinin quldurları 4Rob Marshall2011 1
2 Sarah Marshalı unutmaqNikolas Stoller2008 2
3 X-MenSIFIR2008 SIFIR
4 Kod adı QaraEdqar Cimz2010 SIFIR
5 Atamın Kiçik QızlarıSIFIR2007 8
6 Mələklər və ŞeytanlarSIFIR2007 6
7 Davinci koduSIFIR2007 6
9 Bal aylarıCon Şults2005 8
16 67% GünahkarSIFIR2012 SIFIR
18 Böyük DiktatorChalie Chaplie1920 7
19 nümunə filmanonimSIFIR8
20 film 3Con Braun1920 8

Tutaq ki, Myflix video kitabxanası artıq öz üzvlərinə "Böyük Diktator"u icarəyə vermək istəmir və onlar onun verilənlər bazasından silinməsini istəyirlər. Onun film identifikatoru 18-dir, biz onun sırasını silmək üçün aşağıda göstərilən skriptdən istifadə edə bilərik. kino masasından.

Myflix-ə qarşı MySQL WorkBench-də yuxarıdakı skriptin icrası id 18 olan filmi verilənlər bazası cədvəlindən silir.

Filmlər cədvəlinin cari vəziyyətinə baxaq.

'filmlərdən' * SEÇİN;

movie_idbaşlıqrejissorburaxılış ilikateqoriya_id
1 Karib dənizinin quldurları 4Rob Marshall2011 1
2 Sarah Marshalı unutmaqNikolas Stoller2008 2
3 X-MenSIFIR2008 SIFIR
4 Kod adı QaraEdqar Cimz2010 SIFIR
5 Atamın Kiçik QızlarıSIFIR2007 8
6 Mələklər və ŞeytanlarSIFIR2007 6
7 Davinci koduSIFIR2007 6
9 Bal aylarıCon Şults2005 8
16 67% GünahkarSIFIR2012 SIFIR
19 nümunə filmanonimSIFIR8
20 film 3Con Braun1920 8
  • id 18 olan film sorğu nəticələri dəstinə qaytarılmayıb.
  • cədvəl üçün bir sütunu silə bilməzsiniz. Bütün sıranı silə bilərsiniz.

Deyək ki, silmək istədiyimiz filmlərin siyahısı var IN ilə birlikdə WHERE bəndindən istifadə edə bilərik.

Yuxarıdakı skriptin icrası 20 və 21 ID-li filmləri filmlər cədvəlimizdən silir.

YENİLƏMƏ ƏMRİ NƏDİR?

Yeniləmə əmri cədvəldəki sətirləri dəyişdirmək üçün istifadə olunur. Yeniləmə əmri bir sahəni və ya bir neçə sahəni eyni anda yeniləmək üçün istifadə edilə bilər. O, həmçinin başqa bir cədvəlin dəyərləri ilə cədvəli yeniləmək üçün istifadə edilə bilər.

Komanda sintaksisini yeniləyin

SQL Update əmrinin əsas sintaksisi aşağıda göstərildiyi kimidir.

  • YENİLƏNİB `masa_adı` MySQL-ə cədvəldəki məlumatları yeniləməyi bildirən əmrdir.
  • SET `sütun_adı` = `yeni_dəyər" yeniləmə sorğusundan təsirlənəcək sahələrin adları və dəyərləridir. Qeyd edək ki, yeniləmə dəyərlərini təyin edərkən sətir məlumat növləri tək dırnaq içərisində olmalıdır. Rəqəmsal dəyərlərə ehtiyac yoxdur dırnaq içərisində olmaq üçün tarix məlumat növü tək dırnaq içərisində və "YYYY-AA-GG" formatında olmalıdır.
  • isteğe bağlıdır və YENİLƏNMƏ sorğusundan təsirlənən sətirlərin sayını məhdudlaşdıran filtr qoymaq üçün istifadə edilə bilər.

İndi üzvlər cədvəlindəki məlumatları yeniləyən praktiki nümunəyə baxaq, fərz edək ki, üzvümüzün 1 və 2 nömrələrində onların məlumat qeydlərində aşağıdakı yeniləmələr var.

Üzvlük nömrəsi Yeniləmələr tələb olunur
1 Əlaqə nömrəsi 999-dan 0759 253 532-yə dəyişdirildi
2 Adı Janet Smith Jones olaraq dəyişdirin və fiziki ünvan Melrose 123-ə yenilənməlidir

Məlumatlarımıza hər hansı yeniləmə etməzdən əvvəl 1 nömrəli üzvlük üçün yeniləmələr etməyə başlayacağıq, gəlin üzvlük nömrəsi 1 üçün qeydi əldə edək. Aşağıda göstərilən skript bunu etməyə bizə kömək edir.

Yuxarıdakı skriptin icrası bizə aşağıdakı nəticələri verir.

üzvlük nömrəsitam_adlarcinsDoğum tarixifiziki ünvanPoçt ünvanıəlaqə_nömrəsie-poçt
1 Janet ConsQadın21-07-1980 Birinci küçə 4 saylı torpaq sahəsiŞəxsi Çanta999

İndi aşağıda göstərilən skriptdən istifadə edərək əlaqə nömrəsini yeniləyək.

Yuxarıdakı skriptin icrası 1 nömrəli üzvlük üçün əlaqə nömrəsini 999-dan 0759 253 532-yə yeniləyir. İndi yeniləmə skriptini yerinə yetirdikdən sonra 1 nömrəli üzvlük üçün rekorda baxaq.

Yuxarıdakı skriptin icrası bizə aşağıdakı nəticələri verir.

üzvlük nömrəsitam_adlarcinsDoğum tarixifiziki ünvanPoçt ünvanıəlaqə_nömrəsie-poçt
1 Janet ConsQadın21-07-1980 Birinci küçə 4 saylı torpaq sahəsiŞəxsi Çanta0759 253 542 Bu e-poçt ünvanı spam botlardan qorunur. Baxmaq üçün JavaScript-i aktiv etməlisiniz.

İndi 2 nömrəli üzvlük üçün tələb olunan yeniləmələrə baxaq.

üzvlük nömrəsitam_adlarcinsDoğum tarixifiziki ünvanPoçt ünvanıəlaqə_nömrəsie-poçt
2 Smith JonesQadın23-06-1980 Park küçəsiSIFIRSIFIRBu e-poçt ünvanı spam botlardan qorunur. Baxmaq üçün JavaScript-i aktiv etməlisiniz.

Aşağıdakı skript bunu etməyə kömək edir.

Yuxarıdakı skriptin icrası 2 nömrəli üzvlüyün tam adlarını Janet Smith Jones-a və fiziki ünvanı Melrose 123-ə yeniləyir.

üzvlük nömrəsitam_adlarcinsDoğum tarixifiziki ünvanPoçt ünvanıəlaqə_nömrəsie-poçt
2 Janet Smit ConsQadın23-06-1980 Melrose 123SIFIRSIFIRBu e-poçt ünvanı spam botlardan qorunur. Baxmaq üçün JavaScript-i aktiv etməlisiniz.

Xülasə

  • Sil əmri cədvəldən artıq tələb olunmayan məlumatları silmək üçün istifadə olunur.
  • "HARADA bəndi" DELETE sorğusunun təsir etdiyi sətirlərin sayını məhdudlaşdırmaq üçün istifadə olunur.
  • Məlumatlar silindikdən sonra onları bərpa etmək mümkün deyil, ona görə də məlumatları silməzdən əvvəl ehtiyat nüsxələri çıxarmaq tövsiyə olunur.
  • Yeniləmə əmri mövcud məlumatları dəyişdirmək üçün istifadə olunur.
  • YENİLƏNMƏ sorğusunun təsir etdiyi sətirlərin sayını məhdudlaşdırmaq üçün "HARADA bəndi" istifadə olunur.

MySQL-də məlumatları dəyişdirmək və ya yeniləmək lazım gələrsə, işləmək üçün SQL UPDATE əmrindən istifadə edə bilərik. ,

qrammatika

MySQL Sheet Data General SQL sintaksisini dəyişdirmək üçün UPDATE əmri aşağıdakılardır:

YENİLƏNİN cədvəl_adı SET sahəsi1=yeni-dəyər1, sahə2=yeni-dəyər2

  • Siz eyni zamanda bir və ya bir neçə sahəni yeniləyə bilərsiniz.
  • Siz WHERE bəndində istənilən şərti təyin edə bilərsiniz.
  • Məlumatları ayrıca cədvəldə də yeniləyə bilərsiniz.

Cədvəlin sətirlərində göstərilən məlumatları yeniləmək lazım olduqda, INEKE çox faydalıdır.

Məlumatları yeniləmək üçün əmr xətti

Aşağıda SQL UPDATE əmrindən istifadə edərək verilənlər cədvəlində göstərilən w3big_tbl-i yeniləyəcəyik:

misallar

Aşağıdakı nümunə verilənlər cədvəlini w3big_title w3big_id sahəsinin dəyəri 3 kimi yeniləyəcək:

# mysql -u root -p parol; Şifrəni daxil edin:******** mysql> w3big istifadə edin; Verilənlər bazası dəyişdirildi mysql> YENİLƏNİB w3big_tbl -> SET w3big_title=" JAVA-nı Öyrənmək)" -> WHERE w3big_id=3; Query OK, 1 row affected (0.04 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> !}

Məlumatları yeniləmək üçün PHP skriptindən istifadə edin

SQL ifadələrini yerinə yetirmək üçün mysql_query() funksiyasından istifadə etmək üçün PHP funksiyası var, siz SQL UPDATE bəyanatından istifadə edə bilərsiniz və ya INEKE tətbiq edilmir.

MySQL>-də bu funksiya SQL ifadələrinin icrasının komanda xətti effekti eynidir.

misallar

Aşağıdakı nümunə w3big_title 3 sahəsində w3big_id məlumatını yeniləyəcək.

YENİLƏNİN tbl_name SET col_name1=expr1 [, col_name2=expr2, ...]

UPDATE bəyanatı mövcud cədvəlin sətirlərindəki yeni dəyərləri olan sütunları yeniləyir. SET ifadəsi hansı sütunların dəyişdirilməli olduğunu və onlarda hansı dəyərlərin təyin edilməli olduğunu göstərir. WHERE bəndi, əgər varsa, hansı sətirlərin yeniləndiyini müəyyən edir. Əks halda, bütün sətirlər yenilənir. Əgər ORDER BY ifadəsi göstərilibsə, sətirlər orada göstərilən ardıcıllıqla yenilənəcək.

LOW_PRIORITY açar sözü göstərilibsə, bu YENİLƏNMƏ əmrinin icrası digər müştərilər cədvəli oxuyub qurtarana qədər gecikir.

İQNORE açar sözü göstərilibsə, yeniləmə əmri dublikat açar xətası ilə qarşılaşsa belə, dayandırılmayacaq. Münaqişələrə səbəb olan sıralar yenilənməyəcək.

Göstərilən ifadədən sütuna tbl_name arqumenti ilə daxil olarsa, YENİLƏNMƏ əmri həmin sütun üçün cari qiymətdən istifadə edir. Məsələn, aşağıdakı əmr yaş sütununu cari dəyərdən bir böyük dəyərə təyin edir:

Mysql> YENİLƏNİB şəxsi məlumat SET yaş=yaş+1;

UPDATE əmri dəyərləri soldan sağa təyin edir. Məsələn, aşağıdakı əmr yaş sütununu təkrarlayır, sonra onu artırır:

Mysql> YENİLƏNİB şəxsi məlumat SET yaş=yaş*2, yaş=yaş+1;

Əgər sütun cari dəyərinə təyin edilibsə, MySQL bunu hiss edir və onu yeniləmir.

UPDATE əmri faktiki olaraq dəyişdirilmiş sətirlərin sayını qaytarır. MySQL 3.22 və sonrakı versiyalarında C API funksiyası mysql_info() tapılan və yenilənmiş cərgələrin sayını və YENİLƏNİB həyata keçirilən zaman baş vermiş xəbərdarlıqların sayını qaytarır.

MySQL 3.23 versiyasında siz LIMIT # istifadə edə bilərsiniz ki, yalnız müəyyən edilmiş sıraların sayı dəyişdirilib.

Bu MySQL dərsliyi MySQL-dən necə istifadə olunacağını izah edir YENİLƏNİB bəyanat sintaksis və nümunələrlə.

Sintaksis

Ən sadə formada MySQL-də bir cədvəli yeniləyərkən UPDATE bəyanatının sintaksisi belədir:

YENİLƏNİB cədvəl SET sütun1 = ifadə1, sütun2 = ifadə2, ... ;

Bununla belə, bir cədvəli yeniləyərkən MySQL UPDATE bəyanatının tam sintaksisi belədir:

YENİLƏNİN [ LOW_PRIORITY ] [ IGNORE ] cədvəl SET sütun1 = ifadə1, sütun2 = ifadə2, ... ] ;

MySQL-də bir cədvəli digər cədvəldən verilənlərlə yeniləyərkən UPDATE bəyanatının sintaksisi belədir:

YENİLƏNİB Cədvəl1 SET sütunu1 = (Cədvəl2 HARADA şərtlərindən ifadə1 SEÇİN) ;

Birdən çox cədvəli yeniləyərkən MySQL UPDATE bəyanatının sintaksisi belədir:

YENİLƏNİB cədvəl1, cədvəl2, ... SET sütunu1 = ifadə1, sütun2 = ifadə2, ... HARADA cədvəl1.sütun = cədvəl2.sütun VƏ şərtlər;

Parametrlər və ya Arqumentlər

LOW_PRIORITY Könüllü. LOW_PRIORITY təmin edilərsə, yeniləmə heç bir proses oxunmayana qədər təxirə salınacaq masa. LOW_PRIORITY, masa səviyyəsində kilidləmədən istifadə edən MyISAM, MEMORY və MERGE cədvəlləri ilə istifadə edilə bilər. İQNORE Könüllü. İQNORE təmin edilərsə, yeniləmə zamanı rast gəlinən bütün xətalar nəzərə alınmır. Əgər cərgədə yeniləmə əsas açarın və ya unikal indeksin pozulması ilə nəticələnərsə, həmin cərgədə yeniləmə həyata keçirilmir. sütun1, sütun2 Yeniləmək istədiyiniz sütunlar. ifadə1, ifadə2 Təyin ediləcək yeni dəyərlər sütun 1, sütun 2. Belə ki sütun 1 ifadə1, sütun 2 dəyəri təyin ediləcək ifadə2, və s. WHERE şərtləri Könüllüdür. Yeniləmənin icrası üçün yerinə yetirilməli olan şərtlər. İfadə ilə SİFARİŞ Könüllü. Yenilənəcək qeydlərin sayını məhdudlaşdırarkən qeydləri müvafiq qaydada çeşidləmək üçün LIMIT ilə birlikdə istifadə edilə bilər. LIMIT ədəd_sətir Könüllüdür. LIMIT təmin edilərsə, o, cədvəldə yenilənəcək qeydlərin maksimum sayına nəzarət edir. Ən çox qeydlərin sayı ilə müəyyən edilir sıra_sayı cədvəldə yenilənəcək.

Misal - Tək sütunu yeniləyin

Çox sadə MySQL UPDATE sorğu nümunəsinə baxaq.

Müştəriləri YENİLƏNİN SET soyadı = "Anderson" HARADA customer_id = 5000;

Bu MySQL YENİLƏNİB nümunəsi Soyad"Anderson"a müştərilər masa olduğu yer Müştəri identifikasiya nömrəsi 5000-dir.

Misal - Çoxlu sütunları yeniləyin

Bir UPDATE bəyanatı ilə birdən çox sütunu yeniləmək istəyə biləcəyiniz MySQL YENİLƏNMƏ nümunəsinə baxaq.

YENİLƏNİB müştərilər SET vəziyyəti = "Kaliforniya", customer_rep = 32 WHERE customer_id > 100;

Birdən çox sütunu yeniləmək istədiyiniz zaman bunu sütun/dəyər cütlərini vergüllə ayıraraq edə bilərsiniz.

dövlət"Kaliforniya"ya və müştəri_rep 32 harada Müştəri identifikasiya nömrəsi 100-dən çoxdur.

Nümunə - Cədvəli başqa cədvəldən məlumatlarla yeniləyin

MySQL-də başqa bir cədvəldən verilənlərlə cədvəli necə yeniləməyi göstərən YENİLƏNMƏ nümunəsinə baxaq.

Müştəriləri YENİLƏNİN
SET şəhəri = (Şəhər SEÇİN
Təchizatçılardan
WHERE təchizatçılar.təchizatçı_adı = müştərilər.müştəri_adı)
WHERE customer_id > 2000;

Bu YENİLƏNİB nümunəsi yalnız müştərilər olan bütün qeydlər üçün cədvəl Müştəri identifikasiya nömrəsi 2000-dən böyükdür. Zaman Təchizatçı adı etibarən təchizatçılar cədvəl uyğun gəlir Müştəri adı etibarən müştərilər masa, şəhər təchizatçılar cədvəlindən kopyalanacaq şəhər sahəsində müştərilər masa.

Nümunə - Çoxlu Cədvəlləri yeniləyin

Bir UPDATE bəyanatında birdən çox cədvəli əhatə edən yeniləməni yerinə yetirmək istəyə biləcəyiniz MySQL YENİLƏNMƏ nümunəsinə baxaq.

YENİLƏNİB müştərilər, təchizatçılar SET customer.city = təchizatçılar.city WHERE customers.customer_id = suppliers.supplier_id;

Bu MySQL UPDATE bəyanatı nümunəsini yeniləyəcək şəhər sahəsində müştərilər masaya şəhər etibarən təchizatçılar masa olduğu yer Müştəri identifikasiya nömrəsi uyğun gəlir təchizatçı_id.

Bu dərslikdə siz necə istifadə edəcəyinizi öyrənəcəksiniz MySQL UPDATE bəyanatı sintaksis və nümunələrlə.

Təsvir

MySQL UPDATE bəyanatı MySQL verilənlər bazasındakı cədvəldəki mövcud qeydləri yeniləmək üçün istifadə olunur. İcra etmək istədiyiniz yeniləmə növündən asılı olaraq UPDATE bəyanatı üçün üç sintaksis var.

Sintaksis

MySQL-də tək cədvəli yeniləyərkən UPDATE bəyanatı üçün sadə sintaksis forması:

İndi bir cədvəli yeniləyərkən MySQL UPDATE bəyanatının tam sintaksisi belədir:

YA
MySQL-də bir cədvəli digər cədvəldən verilənlərlə yeniləyərkən UPDATE bəyanatının sintaksisi belədir:

YA
Birdən çox cədvəli yeniləyərkən UPDATE bəyanatı üçün MySQL sintaksisi belədir:

Parametrlər və ya Arqumentlər

LOW_PRIORITY - isteğe bağlıdır. LOW_PRIORITY müəyyən edilərsə, cədvəldən oxunan heç bir proses olmayana qədər yeniləmə gecikəcək. LOW_PRIORITY cədvəl səviyyəsində kilidləmədən istifadə edən MyISAM, MEMORY və MERGE cədvəlləri ilə istifadə edilə bilər.
İQNORE - isteğe bağlıdır. İQNORE təmin edilərsə, yeniləmə zamanı rast gəlinən bütün xətalar nəzərə alınmır. Əgər sətirdəki yeniləmə əsas açarı və ya unikal indeksi pozarsa, həmin cərgədə yeniləmə uğursuz olacaq.
sütun1, sütun2 yeniləmək istədiyiniz sütunlardır.
ifadə1 , ifadə2 — sütun1 , sütun2 təyin etmək üçün yeni dəyərlər. Beləliklə, sütun1-ə ifadə1 dəyəri, sütun2-yə ifadə2 dəyəri təyin edilir və s.
HARA şərtləri - isteğe bağlıdır. Yeniləmənin baş verməsi üçün yerinə yetirilməli olan şərtlər.
SİPARİŞ BY ifadə - isteğe bağlıdır. Yenilənəcək qeydlərin sayını məhdudlaşdırarkən qeydləri müvafiq qaydada çeşidləmək üçün LIMIT ilə birlikdə istifadə edilə bilər.
LIMIT ədəd_sətir - isteğe bağlıdır. LIMIT göstərilibsə, o, cədvəldə yenilənəcək qeydlərin maksimum sayını idarə edir. Number_rows faylında göstərilən qeydlərin maksimum sayı cədvəldə yenilənəcək.

Bir sütunun yenilənməsi nümunəsi

MySQL UPDATE sorğusunun çox sadə nümunəsinə baxaq.

Bu MySQL nümunəsində YENİLƏNİB, soyad sahəsini müştərilər cədvəlində 'Ford' olaraq yenilədi, burada customer_id = 500.

Çox sütunun yenilənməsi nümunəsi

Gəlin MySQL UPDATE nümunəsinə baxaq, burada bir UPDATE bəyanatından istifadə edərək birdən çox sütunu yeniləyə bilərsiniz.

Birdən çox sütunu yeniləmək istəyirsinizsə, sütun/dəyər cütlərini vergüllə ayırmaqla bunu edə bilərsiniz.
Bu misal MySQL UPDATE bəyanatı vəziyyəti 'Nevada' vəziyyətinə, customer_rep isə 23-ə yeniləndi, burada customer_id 200-dən böyükdür.

Cədvəlin başqa bir cədvəldən verilənlərlə yenilənməsi nümunəsi

MySQL-də başqa bir cədvəldən verilənlərlə cədvəli necə yeniləməyi göstərən YENİLƏNİB nümunəsinə baxaq.

MySQL

Bu YENİLƏMƏ nümunəsi customer_id-nin 5000-dən çox olduğu bütün qeydlər üçün yalnız müştərilər cədvəlini yeniləyəcək. Təchizatçılar cədvəlindəki təchizatçı_adı müştərilər cədvəlindəki müştəri_adı ilə eyniləşdikdə, təchizatçılar cədvəlindəki şəhər müştərilər cədvəlinin şəhər sahəsinə kopyalanacaq.