MySQL විචල්‍යයන් පැහැදිලි කිරීම: පරිශීලක-නිර්වචිත සහ පද්ධති විචල්‍යයන් ප්‍රායෝගික උදාහරණ සමඟ

1. MySQL විචල්‍යයන්ගේ සමාලෝචනය

MySQL හි විචල්‍යයන්ගේ භූමිකාව සහ ප්‍රතිලාභ

MySQL විචල්‍යයන් යනු ප්‍රශ්න තුළ අගයන් ගබඩා කර, ඒ අගයන් බහු ප්‍රශ්නවලදී නැවත භාවිතා කිරීමට ඉඩ දෙන ප්‍රයෝජනවත් මෙවලම් වේ. මෙය එකම දත්ත නැවත නැවත ලබා ගැනීමේ අවශ්‍යතාවය ඉවත් කරයි සහ SQL ප්‍රකාශන කෙටි හා කාර්යක්ෂම කරයි.

MySQL හි ප්‍රධාන වශයෙන් දෙකේ වර්ග විචල්‍යයන් ඇත:

  1. පරිශීලක-නිර්වචිත විචල්‍යයන් : නියමිත සැසියක් තුළ භාවිතා කරන තාවකාලික විචල්‍යයන්.
  2. පද්ධති විචල්‍යයන් : MySQL සේවාදායකයේ හැසිරීම පාලනය කිරීම සඳහා භාවිතා කරන සැකසුම් විචල්‍යයන්.

මෙම කොටස තුළ, පළමුව පරිශීලක-නිර්වචිත විචල්‍යයන් පිළිබඳ විස්තරාත්මක නිරීක්ෂණයක් කර, පසුදා පද්ධති විචල්‍යයන් කෙසේ භාවිතා කරන්නේද යන්න පැහැදිලි කරමු.

2. MySQL විචල්‍යයන්ගේ වර්ග

2.1 පරිශීලක-නිර්වචිත විචල්‍යයන්

පරිශීලක-නිර්වචිත විචල්‍යයන් එකම සැසියකට සීමා කර ඇති අතර, වෙනත් ගනුදෙනුකරුවන්ට ප්‍රවේශ නොලබයි. මෙය විචල්‍යයන් එකම සැසිය තුළ ආරක්ෂිතව නැවත භාවිතා කළ හැකි බව තහවුරු කරයි. විචල්‍යයන් @ සංකේතය භාවිතා කර ප්‍රකාශ කරයි.

උදාහරණය:

SET @user_id = 123;
SELECT @user_id;

ඉහත පරිදි, SET භාවිතා කර විචල්‍යයක් නිර්වචනය කර, එහි අගය පසු ප්‍රශ්නවලදී නැවත භාවිතා කළ හැක. ප්‍රශ්න ප්‍රතිඵල විචල්‍යයන්ට ගබඩා කිරීමේ තවත් ක්‍රමයක් SELECT INTO වේ.

SELECT name INTO @user_name FROM users WHERE id = @user_id;

2.2 පද්ධති විචල්‍යයන්

පද්ධති විචල්‍යයන් MySQL සේවාදායක සැකසුම් සකස් කිරීම සඳහා භාවිතා වේ. උදාහරණයක් ලෙස, උපරිම සම්බන්ධතා ගණන පාලනය කිරීම හෝ කාල සීමා සැකසීම කළ හැක.

උදාහරණය:

SHOW VARIABLES LIKE 'max_connections';

මෙම ප්‍රශ්නය MySQL සේවාදායකය විසින් ඉඩ දෙන උපරිම සමකාලීන සම්බන්ධතා ගණන පෙන්වයි. පද්ධති විචල්‍යයන් SET විධානය භාවිතා කර සංශෝධනය කළ හැකි අතර, ඒවා ගෝලීයව හෝ සැසිය මට්ටමින් යෙදිය හැක.

3. විචල්‍යයන් ප්‍රකාශ කිරීම සහ භාවිතා කිරීම

3.1 විචල්‍යයන් ප්‍රකාශ කිරීමේ ක්‍රමය

විචල්‍යයන් SET හෝ SELECT INTO භාවිතා කර ප්‍රකාශ කළ හැක. SET ප්‍රකාශය සරල වන අතර, අගයක් සෘජුවම පවරා ගැනීමට ඉඩ දේ.

උදාහරණය:

SET @user_name = 'Sato';
SELECT @user_name;

අනෙක් පැත්තෙන්, SELECT INTO භාවිතා කර ප්‍රශ්න ප්‍රතිඵල සෘජුවම විචල්‍යයකට ගබඩා කළ හැක.

උදාහරණය:

SELECT name INTO @user_name FROM users WHERE id = 123;

3.2 ප්‍රශ්නවල විචල්‍යයන් භාවිතා කිරීම

විචල්‍යයන් භාවිතා කිරීමෙන්, ඒවා ප්‍රශ්න තුළ පරාමිතීන් ලෙස නැවත භාවිතා කළ හැක. උදාහරණයක් ලෙස, පහත ප්‍රශ්නය @user_id විචල්‍යය භාවිතා කර පරිශීලක තොරතුරු ලබා ගනී.

උදාහරණය:

SELECT * FROM users WHERE id = @user_id;

මෙම ආකාරයෙන්, විචල්‍යයන් එකම සැසිය තුළ බහු ප්‍රශ්නවල දත්ත රැඳවීමට ඉඩ සලසයි.

4. සාමාන්‍ය භාවිතා අවස්ථා

4.1 ප්‍රශ්න සුදුසුකම් වැඩිදියුණු කිරීම

බහු ප්‍රශ්නවලදී නිතර භාවිතා වන දත්ත එකවර විචල්‍යයකට ගබඩා කර, පසු ප්‍රශ්නවලදී නැවත භාවිතා කිරීමෙන් කාර්යක්ෂමතාව වැඩි කළ හැක.

උදාහරණය:

SELECT MAX(id) INTO @max_id FROM users;

මෙහි, උපරිම පරිශීලක ID එක විචල්‍යයකට ගබඩා කර, පසු ප්‍රශ්නවලදී නැවත භාවිතා කරයි.

4.2 දිනය සහ වේලාව සැකසීමේ අවස්ථා

දිනය සහ වේලාව ගණනය කිරීම හෝ ඉතිහාස දත්ත කළමනාකරණය සඳහා විචල්‍යයන් භාවිතා කිරීම, කාල-ශ්‍රේණි දත්ත සකස් කිරීම පහසු කරයි.

උදාහරණය:

SELECT NOW() INTO @current_time;
SELECT @current_time - INTERVAL 1 DAY INTO @yesterday;

මෙම උදාහරණයේ, වත්මන් වේලාව සහ විශේෂිත වේලාව වෙනස්කම විචල්‍යයන්ට ගබඩා කර, අනෙකුත් ප්‍රශ්නවලදී නැවත භාවිතා කරයි.

5. ගබඩා කළ ක්‍රියාවලීන්හි විචල්‍යයන් භාවිතා කිරීම

ගබඩා කළ ක්‍රියාවලීන් තුළ විචල්‍යයන් භාවිතා කිරීමෙන්, සංකීර්ණ තර්කයක් සංවිධානය කර, කේතයේ නැවත භාවිතා හැකියාව වැඩි කරයි. පහත උදාහරණය පරිශීලක තොරතුරු ලබා ගන්නා ගබඩා කළ ක්‍රියාවලියක් පෙන්වයි.

උදාහරණය:

CREATE PROCEDURE get_user_info(IN user_id INT, OUT user_name VARCHAR(255))
BEGIN
    SELECT name INTO user_name FROM users WHERE id = user_id;
END;

මෙම ක්‍රියාවලිය කැඳවීමෙන්, පරිශීලක ID එක පරාමිතියක් ලෙස ලබා දී, ප්‍රතිඵලය විචල්‍යයකට ගබඩා කළ හැක.

6. විචල්‍යයන් භාවිතා කිරීමේ හොඳ පුරුදු

6.1 ආරම්භක කිරීමේ වැදගත්කම

Variables should always be initialized before use. Referencing an uninitialized variable may return NULL. This is especially important when using the same variable across multiple queries.

6.2 සැසිය තුළ විෂය පරාසය කළමනාකරණය

පරිශීලක නිර්මාණය විචල්‍යයන් සැසිය තුළ පමණක් වලංගුය. සැසිය අවසන් වන විට, විචල්‍යයන් නැවත සකස් කෙරේ. සැසි තුළින් විචල්‍යයන් භාවිතා කිරීමට අවශ්‍ය නම්, තාවකාලික පුවරු වැනි විකල්ප ක්‍රම සලකා බලන්න.

7. උසස් තාක්ෂණයන්

7.1 කර්සර් භාවිතයෙන් දත්ත සැකසුම

දත්ත ප්‍රමාණයක් විශාල ලෙස සැකසීමේදී, විමසුම් ප්‍රතිඵල පේළියෙන් පේළියට කළමනාකරණය කිරීමට කර්සර් භාවිතා කළ හැක. මෙය අනුපිළිවෙලින් සැකසුම් සිදු කරන විට විමසුම් ප්‍රතිඵල විචල්‍යයන්හි ගබඩා කිරීමට ඉඩ සලසයි.

උදාහරණය:

DECLARE cursor_user CURSOR FOR SELECT id, name FROM users;

කර්සර් භාවිතයෙන් දත්ත පේළි බහුල සඳහා කාර්යක්ෂම සැකසුම් සිදු කිරීමට හැකියාව ලැබේ.

8. නිගමනය

MySQL විචල්‍යයන් භාවිතයෙන්, විමසුම් කාර්යක්ෂමව කළමනාකරණය කළ හැකි අතර කේත පාඨ ප්‍රචලිතභාවය සහ කාර්ය සාධනය ද වැඩි දියුණු කළ හැක. පරිශීලක නිර්මාණය සහ පද්ධති විචල්‍යයන් අතර නිවැරදිව වෙන් කිරීමෙන් වඩාත් සංකීර්ණ දත්ත මෙහෙයුම් සිදු කිරීමට හැකියාව ලැබේ. විශේෂයෙන්, ගබඩා කළ නිත්‍රථ සහ කර්සර් වැනි උසස් තාක්ෂණයන් සමග විචල්‍යයන් ඒකාබද්ධ කිරීමෙන් MySQL හි දත්ත සැකසුම් හැකියාවන් සැලකිය යුතු ලෙස වැඩි දියුණු කළ හැක.