SQL எங்கள் எல்லாமே

நீங்கள் ஏற்கனவே யூகித்தபடி, SQL சேவையகத்திற்கான அனைத்து கட்டளைகளும் SQL வினவல்கள் மூலம் வழங்கப்படலாம். எல்லாம்.

இந்த அணிகள் அதிகாரப்பூர்வமாக 4 குழுக்களாக பிரிக்கப்பட்டுள்ளன:

  • தரவு வரையறை அறிக்கைகள் (தரவு வரையறை மொழி, DDL ):

    • CREATE ஆனது ஒரு தரவுத்தள பொருளை உருவாக்குகிறது (தரவுத்தளமே, அட்டவணை, பார்வை, பயனர் மற்றும் பல)
    • ALTER ஒரு பொருளை மாற்றுகிறது
    • DROP ஒரு பொருளை நீக்குகிறது
  • தரவு கையாளுதல் ஆபரேட்டர்கள் (தரவு கையாளுதல் மொழி, DML ):

    • கொடுக்கப்பட்ட நிபந்தனைகளை பூர்த்தி செய்யும் தரவை SELECT தேர்ந்தெடுக்கிறது
    • INSERT புதிய தரவைச் சேர்க்கிறது
    • புதுப்பிப்பு ஏற்கனவே உள்ள தரவை மாற்றுகிறது
    • DELETE தரவை நீக்குகிறது
  • தரவு அணுகல் வரையறை ஆபரேட்டர்கள் (தரவு கட்டுப்பாட்டு மொழி, DCL ):

    • GRANT ஒரு பொருளில் சில செயல்பாடுகளைச் செய்ய ஒரு பயனர் (குழு) அனுமதிகளை வழங்குகிறது
    • REVOKE முன்பு வழங்கப்பட்ட அனுமதிகளை ரத்து செய்கிறது
    • அனுமதியை விட முன்னுரிமை எடுக்கும் தடையை DENY அமைக்கிறது
  • பரிவர்த்தனை கட்டுப்பாட்டு மொழி ( TCL ) அறிக்கைகள் :

    • COMMIT ஒரு பரிவர்த்தனையைப் பயன்படுத்துகிறது
    • தற்போதைய பரிவர்த்தனையின் சூழலில் செய்யப்பட்ட அனைத்து மாற்றங்களையும் ROLLBACK திரும்பப் பெறுகிறது
    • SAVEPOINT ஒரு பரிவர்த்தனையை சிறிய பிரிவுகளாக பிரிக்கிறது

முதல் இரண்டு நிலைகளில், SELECT அறிக்கையின் வகைகளை மட்டுமே நாங்கள் படித்தோம். எதிர்காலத்தில் நமக்கு எத்தனை சுவாரஸ்யமான விஷயங்கள் காத்திருக்கின்றன என்று கற்பனை செய்து பாருங்கள்.

ஆனால் நாங்கள் இங்கு முதன்மையாக ஜாவா புரோகிராமர்களைப் பற்றித் தயார் செய்கிறோம், எனவே நீங்கள் நிச்சயமாக வேலையில் சந்திக்கும் அந்த காட்சிகளை நாங்கள் படிப்போம்.

திட்டத்தில் உள்ள கணினி நிர்வாகி பெரும்பாலும் அனைத்து தரவுத்தளங்களையும் உருவாக்குவார், ஆனால் நீங்கள் நிச்சயமாக பல முறை தரவிலிருந்து தேர்வு செய்ய வேண்டும்.

மேலும், சில நேரங்களில் உங்கள் குறியீடு எல்லா தரவையும் தரவுத்தளத்தில் எழுதாது அல்லது தவறான வழியில் எழுதாது, எனவே நீங்கள் அடிக்கடி பேனாக்களுடன் அதில் ஏறி உண்மையில் என்ன சேமிக்கப்படுகிறது என்பதைப் பார்க்க வேண்டும்.

முந்தைய விரிவுரைகளில் நாம் தொட்ட விஷயங்களை மீண்டும் பார்ப்போம்.

தரவுத்தளத்தில் ஒரு திட்டத்தை உருவாக்குதல்

DBMS இல் ஒரு புதிய திட்டத்தை உருவாக்க, நீங்கள் கட்டளையை இயக்க வேண்டும்:

CREATE SCHEMA Name;

இது எளிதான விருப்பம். மேலும், ஒரு புதிய திட்டத்தை உருவாக்கும் போது, ​​நீங்கள் தரவு குறியாக்க வடிவம் மற்றும் பிற அளவுருக்களைக் குறிப்பிடலாம்.

நீங்கள் ஸ்கீமாவை நீக்க விரும்பினால், ஆனால் அது இருக்கிறதா என்று உங்களுக்குத் தெரியவில்லை என்றால், நீங்கள் கட்டளையை இயக்க வேண்டும்:

DROP SCHEMA IF EXIST Name;

வெவ்வேறு தரவுத்தளங்களின் காப்புப்பிரதிகளைக் கொண்ட கோப்புகளில் இந்த கட்டளைகளை நீங்கள் அடிக்கடி பார்ப்பீர்கள், அதனால்தான் அவற்றை இங்கே கொண்டு வருகிறேன்.

தற்போதைய திட்டத்தைத் தேர்ந்தெடுப்பது

உங்கள் டிபிஎம்எஸ்ஸில் நிறைய ஸ்கீமாக்கள் இருந்தால், வெவ்வேறு ஸ்கீமாக்கள் ஒரே டேபிள்களைக் கொண்டிருப்பது எளிதாக நடக்கும். குழப்பத்தைத் தவிர்க்க, நீங்கள் இரண்டு விஷயங்களைச் செய்யலாம்:

  • அட்டவணைப் பெயருக்கு முன் எப்போதும் ஸ்கீமா பெயரை வைக்கவும்
  • இயல்புநிலை திட்டத்தை குறிப்பிடவும்

சோதனைத் திட்டத்தில் உள்ள பயனர் அட்டவணையில் இருந்து தரவைத் தேர்ந்தெடுக்கும் வினவலை எழுதுவோம் . இது இப்படி இருக்கும்:

SELECT * FROM test.user;

ஒரு வினவலில் வெவ்வேறு திட்டங்களில் இருந்து பல அட்டவணைகளில் நீங்கள் சேர வேண்டும் என்றால் (JOIN) இது இன்றியமையாதது.

மூலம், ஜாவா மொழியில் நாம் அடிக்கடி இதேபோன்ற ஒன்றைச் செய்கிறோம்: குறியீட்டில் வெவ்வேறு தொகுப்புகளிலிருந்து ஒரே பெயரில் வகுப்புகளைப் பயன்படுத்த வேண்டும் என்றால், வகுப்பின் பெயருக்கு முன் தொகுப்பின் பெயரைச் சேர்க்கிறோம்.

இரண்டாவது வழி, இயல்புநிலை திட்டத்தைக் குறிப்பிடுவது . வினவல் அட்டவணையின் பெயரைக் குறிப்பிட்டாலும், ஸ்கீமா இல்லை என்றால், இயல்புநிலை திட்டம் பயன்படுத்தப்படும். இதைச் செய்ய, USE அறிக்கையைப் பயன்படுத்தவும் :

USE name - schemes;

USE அறிக்கையைப் பயன்படுத்தி முந்தைய வினவலை மீண்டும் எழுதுவோம்:

USE test;
SELECT * FROM user;

ஒரு பார்வையை உருவாக்குதல்

உண்மையான தரவுகளுடன் அட்டவணைகள் கூடுதலாக, SQL உங்களை மெய்நிகர் அட்டவணைகள் போன்றவற்றை சேமிக்க அனுமதிக்கிறது, அங்கு தரவு உண்மையான அட்டவணையில் இருந்து இழுக்கப்படுகிறது. இத்தகைய மெய்நிகர் அட்டவணைகள் VIEW என்று அழைக்கப்படுகின்றன.

அத்தகைய அட்டவணை உண்மையான தரவைச் சேமிக்க முடியாது, ஒவ்வொரு முறையும் அதை அணுகும்போது, ​​அது உண்மையான அட்டவணையில் இருந்து தரவை இழுக்கிறது. அத்தகைய பார்வையின் உள்ளடக்கம் ஒரு SQL வினவலைப் பயன்படுத்தி குறிப்பிடப்படுகிறது.

நீங்கள் எந்த SELECT வினவலிலிருந்தும் ஒரு VIEW ஐ உருவாக்கலாம்:

CREATE VIEW Name AS
SELECT-request;
பணியாளர் அட்டவணையின் அடிப்படையில் ஒரு பொது_பணியாளர் மெய்நிகர் அட்டவணையை உருவாக்கும் வினவலை எழுதுவோம், அங்கு பணியாளரின் சம்பளத் தகவல் மறைக்கப்படும்:
CREATE VIEW public_employee AS
SELECT id, name FROM employee

மேலே உள்ள எடுத்துக்காட்டில், எங்கள் அட்டவணை (VIEW) public_employee இல் பணியாளர் ஐடிகள் மற்றும் அவர்களின் பெயர்கள் மட்டுமே இருக்கும், ஆனால் அவர்களின் சம்பளம் பற்றிய தகவல் இல்லை. உண்மையான அட்டவணைகள் உள்ள அதே இடத்தில் நீங்கள் அத்தகைய காட்சிகளைப் பயன்படுத்தலாம்.

காட்சிகள் ஏன் தேவை? அவர்களுக்கு பல நன்மைகள் உள்ளன:

தகவல் அணுகல் நெகிழ்வான கட்டுப்பாடு . நீங்கள் குறிப்பிட்ட பயனர்களுக்கு VIEW க்கு மட்டுமே அணுகலை வழங்க முடியும், ஆனால் அட்டவணைகளுக்கு அணுகலை வழங்க முடியாது. பார்வையில், அட்டவணையில் இருந்து பொது தகவல்களை மட்டும் எடுத்துக் கொள்ளுங்கள். கூடுதலாக, எதிர்காலத்தில் முக்கியமான தகவல்களுடன் புதிய நெடுவரிசைகள் அட்டவணையில் சேர்க்கப்பட்டால், அது தற்செயலாக பார்வைக்கு வராது.

தரவு இயல்புநிலைப்படுத்தல் . சேமிப்பக வசதிக்காக, தரவு பெரும்பாலும் நூற்றுக்கணக்கான மற்றும் ஆயிரக்கணக்கான அட்டவணைகளாகப் பிரிக்கப்படுகிறது, ஆனால் ஒரு சாதாரண நபர் அத்தகைய தரவுகளுடன் பணிபுரிவது மிகவும் வசதியானது அல்ல - நீங்கள் மிகவும் சிக்கலான வினவல்களை எழுத வேண்டும். காட்சி மூலம், ஒரே அட்டவணையில் டஜன் கணக்கான வெவ்வேறு அட்டவணைகளிலிருந்து தரவைக் காண்பிக்கும் மெய்நிகர் அட்டவணைகளை நீங்கள் உருவாக்கலாம்.

பாலிமார்பிசம் மற்றும் என்காப்சுலேஷன் . உங்கள் தரவுத்தளத்தின் கட்டமைப்புகளை மாற்றலாம். அதே நேரத்தில், உங்கள் பார்வைகளுடன் பணிபுரியும் நிரலின் பயனர்கள் ஏதோ மாறிவிட்டது என்று யூகிக்க மாட்டார்கள். பார்வைக்கான அணுகலைக் கொண்ட நிரல்களின் குறியீட்டை மீண்டும் எழுத வேண்டிய அவசியமில்லை. VIEW உடன் தொடர்புடைய SQL ஸ்கிரிப்டை நீங்கள் மாற்றியமைக்க வேண்டும்.

படிக்க மட்டும் . பார்வையை ஒரு SELECT வினவலுடன் மட்டுமே அமைக்க முடியும், எனவே View உடன் பணிபுரிவதால் உண்மையான அட்டவணையில் உள்ள தரவை எந்த வகையிலும் மாற்ற முடியாது. மூலம், இது வினவல் தேக்ககத்திற்கு ஆதரவான மற்றொரு பிளஸ் ஆகும். ஆனால் அடுத்த முறை அதைப் பற்றி மேலும்.