SQL మా సర్వస్వం
మీరు బహుశా ఇప్పటికే ఊహించినట్లుగా, SQL సర్వర్కు అన్ని ఆదేశాలు SQL ప్రశ్నల ద్వారా ఇవ్వబడతాయి. అంతా.
ఈ జట్లు అధికారికంగా 4 గ్రూపులుగా విభజించబడ్డాయి:
-
డేటా డెఫినిషన్ స్టేట్మెంట్లు (డేటా డెఫినిషన్ లాంగ్వేజ్, DDL ):
- క్రియేట్ డేటాబేస్ ఆబ్జెక్ట్ను సృష్టిస్తుంది (డేటాబేస్, టేబుల్, వీక్షణ, వినియోగదారు మరియు మొదలైనవి)
- ALTER ఒక వస్తువును మారుస్తుంది
- DROP ఒక వస్తువును తీసివేస్తుంది
-
డేటా మానిప్యులేషన్ ఆపరేటర్లు (డేటా మానిప్యులేషన్ లాంగ్వేజ్, DML ):
- ఇచ్చిన షరతులను సంతృప్తిపరిచే డేటాను SELECT ఎంపిక చేస్తుంది
- INSERT కొత్త డేటాను జోడిస్తుంది
- UPDATE ఇప్పటికే ఉన్న డేటాను మారుస్తుంది
- DELETE డేటాను తొలగిస్తుంది
-
డేటా యాక్సెస్ డెఫినిషన్ ఆపరేటర్లు (డేటా కంట్రోల్ లాంగ్వేజ్, DCL ):
- GRANT ఒక వస్తువుపై నిర్దిష్ట కార్యకలాపాలను నిర్వహించడానికి వినియోగదారు (సమూహం) అనుమతులను మంజూరు చేస్తుంది
- REVOKE గతంలో జారీ చేసిన అనుమతులను రద్దు చేస్తుంది
- అనుమతి కంటే ప్రాధాన్యతను తీసుకునే నిషేధాన్ని DENY సెట్ చేస్తుంది
-
లావాదేవీ నియంత్రణ భాష ( TCL ) ప్రకటనలు :
- COMMIT లావాదేవీని వర్తింపజేస్తుంది
- ROLLBACK ప్రస్తుత లావాదేవీ సందర్భంలో చేసిన అన్ని మార్పులను వెనక్కి తీసుకుంటుంది
- SAVEPOINT లావాదేవీని చిన్న విభాగాలుగా విభజిస్తుంది
మరియు మొదటి రెండు స్థాయిలు, మేము SELECT స్టేట్మెంట్ యొక్క రకాలను మాత్రమే అధ్యయనం చేసాము. భవిష్యత్తులో మనకు ఎన్ని ఆసక్తికరమైన విషయాలు ఎదురుచూస్తాయో ఊహించండి.
కానీ మేము ఇక్కడ ప్రధానంగా జావా ప్రోగ్రామర్ల గురించి సిద్ధం చేస్తున్నాము, కాబట్టి మీరు ఖచ్చితంగా పనిలో ఎదుర్కొనే దృశ్యాలను మేము అధ్యయనం చేస్తాము.
ప్రాజెక్ట్లోని సిస్టమ్ అడ్మినిస్ట్రేటర్ చాలా మటుకు అన్ని డేటాబేస్లను సృష్టిస్తారు, కానీ మీరు ఖచ్చితంగా చాలాసార్లు డేటా నుండి ఎంపిక చేసుకోవాలి.
అంతేకాకుండా, కొన్నిసార్లు మీ కోడ్ మొత్తం డేటాను డేటాబేస్కు వ్రాయదు లేదా తప్పు మార్గంలో వ్రాయదు, కాబట్టి మీరు తరచుగా పెన్నులతో దానిలోకి ఎక్కి, వాస్తవానికి అక్కడ ఏమి నిల్వ చేయబడిందో చూడవలసి ఉంటుంది.
మునుపటి ఉపన్యాసాలలో మనం తాకిన విషయాలను మళ్ళీ చూద్దాం.
డేటాబేస్లో స్కీమాను సృష్టిస్తోంది
DBMSలో కొత్త స్కీమాను సృష్టించడానికి, మీరు ఆదేశాన్ని అమలు చేయాలి:
CREATE SCHEMA Name;
ఇది సులభమైన ఎంపిక. అలాగే, కొత్త స్కీమాను సృష్టించేటప్పుడు, మీరు డేటా ఎన్కోడింగ్ ఫార్మాట్ మరియు ఇతర పారామితులను పేర్కొనవచ్చు.
మీరు స్కీమాను తొలగించాలనుకుంటే, అది ఉనికిలో ఉందో లేదో మీకు ఖచ్చితంగా తెలియకపోతే, మీరు ఆదేశాన్ని అమలు చేయాలి:
DROP SCHEMA IF EXIST Name;
వివిధ డేటాబేస్ల బ్యాకప్లతో కూడిన ఫైల్లలో మీరు ఈ ఆదేశాలను తరచుగా చూస్తారు, అందుకే నేను వాటిని ఇక్కడకు తీసుకువస్తున్నాను.
ప్రస్తుత పథకాన్ని ఎంచుకోవడం
మీరు మీ DBMSలో చాలా స్కీమాలను కలిగి ఉంటే, వివిధ స్కీమాలు ఒకే టేబుల్లను కలిగి ఉండటం సులభంగా జరగవచ్చు. గందరగోళాన్ని నివారించడానికి, మీరు రెండు విషయాలు చేయవచ్చు:
- ఎల్లప్పుడూ పట్టిక పేరు ముందు స్కీమా పేరును ఉంచండి
- డిఫాల్ట్ స్కీమాను పేర్కొనండి
పరీక్ష స్కీమాలో ఉన్న వినియోగదారు పట్టిక నుండి డేటాను ఎంచుకునే ప్రశ్నను వ్రాద్దాం . ఇది ఇలా కనిపిస్తుంది:
SELECT * FROM test.user;
మీరు ఒక ప్రశ్నలో వివిధ స్కీమాల నుండి అనేక పట్టికలలో చేరాలంటే (JOIN) ఇది చాలా అవసరం.
మార్గం ద్వారా, జావా భాషలో మనం తరచుగా ఇలాంటిదే చేస్తాము: కోడ్లో మనం వేర్వేరు ప్యాకేజీల నుండి ఒకే పేరుతో తరగతులను ఉపయోగించాల్సిన అవసరం ఉంటే, మేము తరగతి పేరుకు ముందు ప్యాకేజీ పేరును జోడిస్తాము.
రెండవ మార్గం డిఫాల్ట్ స్కీమాను పేర్కొనడం . ప్రశ్న పట్టిక పేరును నిర్దేశిస్తే కానీ స్కీమా లేకపోతే, డిఫాల్ట్ స్కీమా ఉపయోగించబడుతుంది. దీన్ని చేయడానికి, USE ప్రకటనను ఉపయోగించండి :
USE name - schemes;
USE స్టేట్మెంట్ని ఉపయోగించి మునుపటి ప్రశ్నను తిరిగి వ్రాద్దాం:
USE test;
SELECT * FROM user;
వీక్షణను సృష్టిస్తోంది
నిజమైన డేటాతో పట్టికలతో పాటు, SQL వాస్తవ పట్టికల నుండి డేటా లాగబడే వర్చువల్ పట్టికల వంటి వాటిని నిల్వ చేయడానికి మిమ్మల్ని అనుమతిస్తుంది. ఇటువంటి వర్చువల్ పట్టికలను VIEW అంటారు.
అటువంటి పట్టిక నిజమైన డేటాను నిల్వ చేయదు మరియు ప్రతిసారీ దానిని యాక్సెస్ చేసినప్పుడు, ఇది నిజమైన పట్టికల నుండి డేటాను లాగుతుంది. అటువంటి వీక్షణ యొక్క కంటెంట్ SQL ప్రశ్నను ఉపయోగించి పేర్కొనబడింది.
మీరు ఇలాంటి ఆదేశంతో ఏదైనా SELECT ప్రశ్న నుండి వీక్షణను సృష్టించవచ్చు:
CREATE VIEW Name AS
SELECT-request;
CREATE VIEW public_employee AS
SELECT id, name FROM employee
పై ఉదాహరణలో, మా టేబుల్ (VIEW) public_employee కేవలం ఉద్యోగి IDలు మరియు వారి పేర్లను మాత్రమే కలిగి ఉంటుంది, కానీ వారి జీతం గురించిన సమాచారం కాదు. మీరు అటువంటి వీక్షణలను నిజమైన టేబుల్ల వలె అదే స్థలంలో ఉపయోగించవచ్చు.
వీక్షణలు ఎందుకు అవసరం? వారికి అనేక ప్రయోజనాలు ఉన్నాయి:
సమాచారానికి ప్రాప్యత యొక్క సౌకర్యవంతమైన నియంత్రణ . మీరు నిర్దిష్ట వినియోగదారులకు VIEWకి మాత్రమే యాక్సెస్ ఇవ్వగలరు, కానీ పట్టికలకు యాక్సెస్ ఇవ్వలేరు. మరియు వీక్షణలో, పట్టికల నుండి పబ్లిక్ సమాచారాన్ని మాత్రమే తీసుకోండి. అదనంగా, భవిష్యత్తులో పట్టికలకు ముఖ్యమైన సమాచారంతో కొత్త నిలువు వరుసలు జోడించబడితే, అది అనుకోకుండా వీక్షణలోకి ప్రవేశించదు.
డేటా డీనార్మలైజేషన్ . నిల్వ సౌలభ్యం కోసం, డేటా తరచుగా వందల మరియు వేల పట్టికలుగా విభజించబడింది, కానీ ఒక సాధారణ వ్యక్తి అటువంటి డేటాతో పనిచేయడం చాలా సౌకర్యవంతంగా లేదు - మీరు చాలా క్లిష్టమైన ప్రశ్నలను వ్రాయవలసి ఉంటుంది. వీక్షణతో, మీరు ఒకే పట్టికలో డజన్ల కొద్దీ విభిన్న పట్టికల నుండి డేటాను ప్రదర్శించే వర్చువల్ పట్టికలను సృష్టించవచ్చు.
పాలిమార్ఫిజం మరియు ఎన్క్యాప్సులేషన్ . మీరు మీ డేటాబేస్ యొక్క నిర్మాణాలను మార్చవచ్చు. అదే సమయంలో, మీ వీక్షణలతో పని చేసే ప్రోగ్రామ్ యొక్క వినియోగదారులు ఏదో మారిందని ఊహించలేరు. మరియు వీక్షణకు ప్రాప్యత ఉన్న ప్రోగ్రామ్ల కోడ్ను తిరిగి వ్రాయవలసిన అవసరం లేదు. మీరు VIEWకి సంబంధించిన SQL స్క్రిప్ట్ను సర్దుబాటు చేయాలి.
చదవడం మాత్రమే . వీక్షణను SELECT ప్రశ్నతో మాత్రమే సెట్ చేయవచ్చు, కాబట్టి వీక్షణతో పని చేయడం వలన నిజమైన పట్టికలలోని డేటాను ఏ విధంగానూ మార్చలేరు. మార్గం ద్వారా, ఇది ప్రశ్న కాషింగ్కు అనుకూలంగా ఉన్న మరొక ప్లస్. కానీ తదుపరిసారి దాని గురించి మరింత.
GO TO FULL VERSION