கட்டுரை அடைவு
MySQL,வினவல்கள் நகல் தரவை எவ்வாறு கையாளுகின்றன?நகல் தரவு அறிக்கையை அகற்ற வடிகட்டவும்
MySQL, நகல் தரவைக் கையாளுதல்
சில MySQL தரவு அட்டவணைகளில் நகல் பதிவுகள் இருக்கலாம். சில சமயங்களில், நகல் தரவு இருப்பதை அனுமதிக்கிறோம், ஆனால் சில நேரங்களில் இந்த நகல் தரவையும் நீக்க வேண்டியிருக்கும்.
இந்த அத்தியாயத்தில், தரவு அட்டவணையில் உள்ள நகல் தரவை எவ்வாறு தடுப்பது மற்றும் தரவு அட்டவணையில் உள்ள நகல் தரவை எவ்வாறு நீக்குவது என்பதை அறிமுகப்படுத்துவோம்.
அட்டவணையில் நகல் தரவைத் தடுக்கவும்
நீங்கள் MySQL தரவு அட்டவணையில் குறிப்பிட்ட புலத்தை இவ்வாறு அமைக்கலாம் முதன்மை விசை அல்லது UNIQUE (தனித்துவம்) தரவின் தனித்துவத்தை உறுதிப்படுத்தும் குறியீடு.
ஒரு உதாரணத்தை முயற்சிப்போம்: கீழே உள்ள அட்டவணையில் குறியீடுகள் மற்றும் முதன்மை விசைகள் எதுவும் இல்லை, எனவே அட்டவணை பல நகல் பதிவுகளை அனுமதிக்கிறது.
CREATE TABLE person_tbl ( first_name CHAR(20), last_name CHAR(20), sex CHAR(10) );
நீங்கள் அட்டவணையில் புலங்களை முதல்_பெயர் மற்றும் கடைசி_பெயரை அமைக்க விரும்பினால், தரவை மீண்டும் செய்ய முடியாது, தரவின் தனித்துவத்தை அமைக்க இரட்டை முதன்மை விசை பயன்முறையை அமைக்கலாம். நீங்கள் இரட்டை முதன்மை விசையை அமைத்தால், அந்த விசையின் இயல்புநிலை மதிப்பு NULL ஆக இருக்க முடியாது, ஆனால் NULL இல்லை என அமைக்கலாம்.பின்வருமாறு:
CREATE TABLE person_tbl ( first_name CHAR(20) NOT NULL, last_name CHAR(20) NOT NULL, sex CHAR(10), PRIMARY KEY (last_name, first_name) );
நாம் ஒரு தனித்துவமான குறியீட்டை அமைத்தால், நகல் தரவைச் செருகும்போது, SQL அறிக்கை வெற்றிகரமாகச் செயல்படத் தவறி பிழையை ஏற்படுத்தும்.
INSERT IGNORE INTO மற்றும் INSERT INTO ஆகியவற்றுக்கு இடையேயான வித்தியாசம் என்னவென்றால், INSERT IGNORE ஆனது ஏற்கனவே தரவுத்தளத்தில் உள்ள தரவை புறக்கணிக்கிறது. தரவுத்தளத்தில் தரவு இல்லை என்றால், அது புதிய தரவைச் செருகும், மேலும் தரவு இருந்தால், அது இந்தத் தரவைத் தவிர்க்கும்.இதன் மூலம், தரவுத்தளத்தில் இருக்கும் தரவை பாதுகாக்க முடியும், மேலும் இடைவெளியில் தரவைச் செருகுவதன் நோக்கத்தை அடைய முடியும்.
பின்வரும் எடுத்துக்காட்டு, INSERT IGNORE INTO ஐப் பயன்படுத்துகிறது, இது பிழையின்றி இயங்குகிறது மற்றும் தரவு அட்டவணையில் நகல் தரவைச் செருகாது:
mysql> INSERT IGNORE INTO person_tbl (last_name, first_name) -> VALUES( 'Jay', 'Thomas'); Query OK, 1 row affected (0.00 sec) mysql> INSERT IGNORE INTO person_tbl (last_name, first_name) -> VALUES( 'Jay', 'Thomas'); Query OK, 0 rows affected (0.00 sec)
INSERT IGNORE INTO தரவைச் செருகும்போது, பதிவின் தனித்துவம் அமைக்கப்பட்ட பிறகு, நகல் தரவு செருகப்பட்டால், எந்தப் பிழையும் வராது, ஆனால் ஒரு எச்சரிக்கை மட்டுமே வழங்கப்படும்.முதன்மை அல்லது தனிப்பட்ட பதிவு இருந்தால், அதை முதலில் நீக்கவும்.புதிய பதிவைச் செருகவும்.
உங்கள் தரவின் தனித்துவத்தை அமைப்பதற்கான மற்றொரு வழி, இது போன்ற தனித்துவமான குறியீட்டைச் சேர்ப்பது:
CREATE TABLE person_tbl ( first_name CHAR(20) NOT NULL, last_name CHAR(20) NOT NULL, sex CHAR(10) UNIQUE (last_name, first_name) );
புள்ளிவிவரங்கள் நகல் தரவு
அட்டவணையில் முதல்_பெயர் மற்றும் கடைசி_பெயரின் நகல் பதிவுகளின் எண்ணிக்கையை கீழே கணக்கிடுவோம்:
mysql> SELECT COUNT(*) as repetitions, last_name, first_name -> FROM person_tbl -> GROUP BY last_name, first_name -> HAVING repetitions > 1;
மேலே உள்ள வினவல் அறிக்கை, person_tbl அட்டவணையில் உள்ள நகல் பதிவுகளின் எண்ணிக்கையை வழங்கும்.பொதுவாக, நகல் மதிப்புகளை வினவ, பின்வருவனவற்றைச் செய்யவும்:
- எந்த நெடுவரிசையில் சாத்தியமான நகல் மதிப்புகள் உள்ளன என்பதைத் தீர்மானிக்கவும்.
- அந்த நெடுவரிசைகளை பட்டியலிட, நெடுவரிசை தேர்ந்தெடுக்கப்பட்ட பட்டியலில் COUNT(*) ஐப் பயன்படுத்தவும்.
- குரூப்பில் பட்டியலிடப்பட்ட நெடுவரிசைகள்.
- HAVING உட்பிரிவு 1 ஐ விட அதிகமான மறுபடியும் மறுபடியும் எண்ணிக்கையை அமைக்கிறது.
நகல் தரவை வடிகட்டவும்
நீங்கள் தனிப்பட்ட தரவைப் படிக்க வேண்டும் என்றால், நகல் தரவை வடிகட்ட, SELECT அறிக்கையில் உள்ள DISTINCT முக்கிய சொல்லைப் பயன்படுத்தலாம்.
mysql> SELECT DISTINCT last_name, first_name -> FROM person_tbl;
அட்டவணையில் இருந்து தனிப்பட்ட தரவைப் படிக்க நீங்கள் GROUP BYஐப் பயன்படுத்தலாம்:
mysql> SELECT last_name, first_name -> FROM person_tbl -> GROUP BY (last_name, first_name);
நகல் தரவு
தரவு அட்டவணையில் உள்ள நகல் தரவை நீக்க விரும்பினால், பின்வரும் SQL அறிக்கையைப் பயன்படுத்தலாம்:
mysql> CREATE TABLE tmp SELECT last_name, first_name, sex -> FROM person_tbl; -> GROUP BY (last_name, first_name, sex); mysql> DROP TABLE person_tbl; mysql> ALTER TABLE tmp RENAME TO person_tbl;
நிச்சயமாக, டேபிளில் உள்ள நகல் பதிவுகளை நீக்க தரவு அட்டவணையில் INDEX (index) மற்றும் PRIMAY KEY (முதன்மை விசை) ஆகியவற்றையும் சேர்க்கலாம்.கீழே உள்ள வழிமுறைகள்:
mysql> ALTER IGNORE TABLE person_tbl -> ADD PRIMARY KEY (last_name, first_name);
ஹோப் சென் வெலியாங் வலைப்பதிவு ( https://www.chenweiliang.com/ ) பகிரப்பட்டது "MySQL எப்படி நகல் தரவை வினவுகிறது மற்றும் கையாளுகிறது?வடிகட்டுதல் மற்றும் நீக்குதல் அறிக்கைகள்" உங்களுக்கு உதவும்.
இந்தக் கட்டுரையின் இணைப்பைப் பகிர வரவேற்கிறோம்:https://www.chenweiliang.com/cwl-499.html
மேலும் மறைக்கப்பட்ட தந்திரங்களைத் திறக்க🔑, எங்கள் டெலிகிராம் சேனலில் சேர வரவேற்கிறோம்!
பிடித்திருந்தால் லைக் செய்து பகிருங்கள்! உங்களின் ஷேர்களும் லைக்குகளும் எங்களின் தொடர் உந்துதலாகும்!