Postgresl లో విలువలు ఇప్పటికే లేనట్లయితే వరుసను చేర్చండి

Insert Row If Values Don T Already Exist Postgresl



డేటాబేస్ మేనేజ్‌మెంట్ సిస్టమ్‌లను తెలుసుకోవడం మరియు తారుమారు చేయడం వల్ల డేటాబేస్‌ల గురించి మార్పులతో మనకు పరిచయం ఏర్పడింది. నిర్దిష్ట పట్టికలలో వర్తింపజేయడం, చొప్పించడం, అప్‌డేట్ చేయడం మరియు తొలగించడం వంటివి సాధారణంగా ఉంటాయి. ప్రస్తుత వ్యాసంలో, చొప్పించే పద్ధతి ద్వారా డేటా ఎలా నిర్వహించబడుతుందో చూద్దాం. మనం చొప్పించదలిచిన పట్టికను సృష్టించాలి. పట్టికల వరుసలలో కొత్త డేటాను జోడించడం కోసం ఇన్సర్ట్ స్టేట్‌మెంట్ ఉపయోగించబడుతుంది. PostgreSQL ఇన్సర్ట్స్ స్టేట్‌మెంట్ ఒక ప్రశ్నను విజయవంతంగా అమలు చేయడానికి కొన్ని నియమాలను వర్తిస్తుంది. ముందుగా మనం అడ్డు వరుసలను చేర్చాలనుకునే పట్టిక పేరు తర్వాత కాలమ్ పేర్లు (గుణాలు) పేర్కొనాలి. రెండవది, VALUE నిబంధన తర్వాత కామాతో వేరు చేయబడిన విలువలను మనం తప్పక నమోదు చేయాలి. చివరగా, నిర్దిష్ట పట్టికను సృష్టించేటప్పుడు ప్రతి విలువ తప్పనిసరిగా లక్షణాల జాబితాల క్రమం అందించిన విధంగానే ఉండాలి.

వాక్యనిర్మాణం

>> ఇన్సర్ట్ INTOTABLENAME(కాలమ్ 1,కాలమ్) విలువలు ('విలువ 1', 'విలువ 2');

ఇక్కడ, కాలమ్ అనేది టేబుల్ యొక్క లక్షణాలు. విలువలను నమోదు చేయడానికి VALUE కీవర్డ్ ఉపయోగించబడుతుంది. ‘విలువ’ అనేది నమోదు చేయాల్సిన పట్టికల డేటా.







PostgreSQL షెల్ (psql) లో వరుస ఫంక్షన్లను చొప్పించడం

Postgresql విజయవంతంగా ఇన్‌స్టాల్ చేసిన తర్వాత, మేము డేటాబేస్ పేరు, పోర్ట్ నంబర్ మరియు పాస్‌వర్డ్‌ను నమోదు చేస్తాము. Psql ప్రారంభించబడుతుంది. అప్పుడు మేము వరుసగా ప్రశ్నలు వేస్తాము.





ఉదాహరణ 1: పట్టికలకు కొత్త రికార్డులను జోడించడానికి INSERT ని ఉపయోగించడం
వాక్యనిర్మాణం తరువాత, మేము ఈ క్రింది ప్రశ్నను సృష్టిస్తాము. పట్టికలో వరుసను చేర్చడానికి, మేము కస్టమర్ అనే పట్టికను సృష్టిస్తాము. సంబంధిత పట్టికలో 3 నిలువు వరుసలు ఉంటాయి. నిర్దిష్ట కాలమ్‌ల డేటా-టైప్ ఆ కాలమ్‌లో డేటాను నమోదు చేయడానికి మరియు రిడెండెన్సీని నివారించడానికి పేర్కొనబడాలి. పట్టికను రూపొందించడానికి ప్రశ్న:





>> సృష్టించు పట్టికకస్టమర్(idint,పేరు వర్చార్ (40), దేశంవర్చార్ (40));

పట్టికను సృష్టించిన తర్వాత, మేము ఇప్పుడు వరుస ప్రశ్నలను మాన్యువల్‌గా వేర్వేరు ప్రశ్నలలో చొప్పించడం ద్వారా డేటాను నమోదు చేస్తాము. ముందుగా, లక్షణాలకు సంబంధించి నిర్దిష్ట కాలమ్‌లలో డేటా యొక్క ఖచ్చితత్వాన్ని నిర్వహించడానికి మేము కాలమ్ పేరును పేర్కొన్నాము. ఆపై, విలువలు నమోదు చేయబడతాయి. విలువలు సింగిల్ కోమాస్ ద్వారా ఎన్కోడ్ చేయబడతాయి, ఎందుకంటే అవి ఎటువంటి మార్పు లేకుండా చేర్చబడతాయి.



>> చొప్పించు లోకికస్టమర్(id,పేరు, దేశం) విలువలు ('1','అలియా', 'పాకిస్తాన్');

ప్రతి విజయవంతమైన చొప్పించిన తర్వాత, అవుట్‌పుట్ 0 1 అవుతుంది, అంటే ఒకేసారి 1 అడ్డు వరుస చేర్చబడుతుంది. ముందుగా పేర్కొన్న ప్రశ్నలో, మేము 4 సార్లు డేటాను చేర్చాము. ఫలితాలను వీక్షించడానికి, మేము ఈ క్రింది ప్రశ్నను ఉపయోగిస్తాము:

>> ఎంచుకోండి*నుండికస్టమర్;

ఉదాహరణ 2: ఒకే ప్రశ్నలో బహుళ వరుసలను జోడించడంలో INSERT ప్రకటనను ఉపయోగించడం
డేటాను చొప్పించడంలో అదే విధానం ఉపయోగించబడుతుంది కానీ చొప్పించు స్టేట్‌మెంట్‌లను చాలాసార్లు పరిచయం చేయలేదు. నిర్దిష్ట ప్రశ్నను ఉపయోగించి మేము ఒకేసారి డేటాను నమోదు చేస్తాము; ఒక వరుసలోని అన్ని విలువలు క్రింది ప్రశ్నను ఉపయోగించి వేరు చేయబడతాయి, మేము అవసరమైన అవుట్‌పుట్‌ను పొందుతాము

ఉదాహరణ 3: మరొక పట్టికలోని సంఖ్యల ఆధారంగా ఒక పట్టికలో బహుళ వరుసలను చేర్చండి
ఈ ఉదాహరణ ఒక పట్టిక నుండి మరొక పట్టికకు చొప్పించడానికి సంబంధించినది. రెండు పట్టికలను పరిగణించండి, a మరియు b. టేబుల్ ఎ 2 లక్షణాలను కలిగి ఉంది, అనగా పేరు మరియు తరగతి. CREATE ప్రశ్నను వర్తింపజేయడం ద్వారా, మేము పట్టికను పరిచయం చేస్తాము. పట్టిక సృష్టించిన తర్వాత, ఇన్సర్ట్ ప్రశ్నను ఉపయోగించి డేటా నమోదు చేయబడుతుంది.

>> సృష్టించు పట్టికకు(పేరు వర్చార్ (30),తరగతి వర్చార్ (40));
>> చొప్పించు లోకికువిలువలు ('ఆమ్నా',1),('భీష్మ', '2'),('జావేద్', '3'),('డౌన్',4');

నాలుగు విలువలు మించిపోయిన సిద్ధాంతాన్ని ఉపయోగించి పట్టికలో చేర్చబడ్డాయి. మేము ఎంచుకున్న స్టేట్‌మెంట్‌లను ఉపయోగించి తనిఖీ చేయవచ్చు.

అదేవిధంగా, మేము అన్ని పేర్లు మరియు విషయాల లక్షణాలను కలిగి ఉన్న పట్టిక b ని సృష్టిస్తాము. చొప్పించడానికి మరియు సంబంధిత పట్టిక నుండి రికార్డును పొందడానికి అదే 2 ప్రశ్నలు వర్తిస్తాయి.

>> సృష్టించు పట్టికబి(అన్ని పేర్లు varchar(30), విషయం వర్చార్(70));

ఎంచుకున్న సిద్ధాంతం ద్వారా రికార్డును పొందండి.

>> ఎంచుకోండి*నుండిb;

పట్టిక విలువలను చొప్పించడానికి బి పట్టికలో, మేము ఈ క్రింది ప్రశ్నను ఉపయోగిస్తాము. పట్టికలోని అన్ని పేర్లు ఉండే విధంగా ఈ ప్రశ్న పని చేస్తుంది బి పట్టికలో చేర్చబడుతుంది కు పట్టిక యొక్క సంబంధిత కాలమ్‌లో నిర్దిష్ట సంఖ్య సంభవించే సంఖ్యను చూపించే సంఖ్యల లెక్కింపుతో బి . b.allnames పట్టికను పేర్కొనడానికి ఆబ్జెక్ట్ ఫంక్షన్‌ను సూచిస్తుంది. కౌంట్ (b.allnames) ఫంక్షన్ మొత్తం సంఘటనలను లెక్కించడానికి పనిచేస్తుంది. ప్రతి పేరు ఒకేసారి సంభవించినందున, ఫలిత కాలమ్‌లో 1 సంఖ్య ఉంటుంది.

>> చొప్పించు లోకికు(పేరు,తరగతి) ఎంచుకోండిb. అన్ని పేర్లు, లెక్కింపు(b. అన్ని పేర్లు) నుండిబిసమూహం ద్వారాb. అన్ని పేర్లు;

ఉదాహరణ 4: ఉనికిలో లేకపోతే వరుసలలో ఇన్సర్ట్ డేటా
ఈ ప్రశ్న వరుసలు లేనట్లయితే ఎంటర్ చేయడానికి ఉపయోగించబడుతుంది. ముందుగా అందించిన ప్రశ్న వరుస ఇప్పటికే ఉందో లేదో తనిఖీ చేస్తుంది. ఇది ఇప్పటికే ఉన్నట్లయితే, అప్పుడు డేటా జోడించబడదు. మరియు డేటా వరుసగా లేనట్లయితే, కొత్త చొప్పించడం జరుగుతుంది. ఇక్కడ tmp అనేది కొంతకాలం డేటాను నిల్వ చేయడానికి ఉపయోగించే తాత్కాలిక వేరియబుల్.

>> చొప్పించు లోకిబి(అన్ని పేర్లు, విషయం) ఎంచుకోండి*నుండి (ఎంచుకోండి'కింజా'గాఅన్ని పేర్లు, 'ఇస్లామియాట్'గావిషయం) గాtmpఎక్కడ కాదు ఉనికిలో ఉంది ( ఎంచుకోండిఅన్ని పేర్లునుండిబిఎక్కడఅన్ని పేర్లు='సుండ్లు'పరిమితి 1);

ఉదాహరణ 5: INSERT స్టేట్‌మెంట్ ఉపయోగించి PostgreSQL అప్‌సర్ట్
ఈ ఫంక్షన్‌లో రెండు రకాలు ఉన్నాయి:

  • నవీకరణ: సంఘర్షణ జరిగితే, పట్టికలో ఉన్న డేటాకు రికార్డ్ సరిపోలితే, అది కొత్త డేటాతో అప్‌డేట్ చేయబడుతుంది.
  • వివాదం జరిగితే, ఏమీ చేయవద్దు : పట్టికలో ఉన్న డేటాతో రికార్డ్ సరిపోలితే, అది రికార్డ్‌ని దాటవేస్తుంది లేదా లోపం కనుగొనబడితే, అది కూడా విస్మరించబడుతుంది.

ప్రారంభంలో, మేము కొంత నమూనా డేటాతో పట్టికను రూపొందిస్తాము.

>> సృష్టించు పట్టికtbl2(IDINT ప్రాథమిక కీ,పేరు అక్షర వైవిధ్యం);

పట్టికను సృష్టించిన తర్వాత మేము tbl2 లో డేటాను ప్రశ్న ఉపయోగించి ఇన్సర్ట్ చేస్తాము:

>> ఇన్సర్ట్ INTOtbl2విలువలు (1,'ఉజ్మా'),(2,'అబ్దుల్'),(3,'హమ్నా'),(4,'ఫాతిమా'),(5,'షిజా'),(6,'జవేరియా');

వివాదం జరిగితే, అప్‌డేట్ చేయండి:

>>ఇన్సర్ట్ INTOtbl2విలువలు (8,'రైడ్') పైకాన్ఫిలిక్(ID) చేయండి అప్‌డేట్ సెట్ పేరు=మినహాయించబడింది.పేరు;

మొదట, మేము id 8 మరియు Rida పేరు యొక్క సంఘర్షణ ప్రశ్నను ఉపయోగించి డేటాను నమోదు చేస్తాము. అదే ఐడిని అనుసరించి అదే ప్రశ్న ఉపయోగించబడుతుంది; పేరు మార్చబడుతుంది. పట్టికలోని ఒకే ఐడిలో పేర్లు ఎలా మార్చబడతాయో ఇప్పుడు మీరు గమనించవచ్చు.

>> ఇన్సర్ట్ INTOtbl2విలువలు (8,'పని') పైకాన్ఫిలిక్(ID) చేయండి అప్‌డేట్ సెట్ పేరు =మినహాయించబడింది.పేరు;

ఐడి 8 లో వివాదం ఉందని మేము కనుగొన్నాము, కాబట్టి పేర్కొన్న అడ్డు వరుస నవీకరించబడింది.

వివాదం జరిగితే, ఏమీ చేయవద్దు

>> ఇన్సర్ట్ INTOtbl2విలువలు (9,'హీరా') పైకాన్ఫిలిక్(ID) చేయండి ఏమిలేదు;

ఈ ప్రశ్నను ఉపయోగించి, కొత్త అడ్డు వరుస చేర్చబడింది. ఆ తర్వాత, అదే వివాదం సంభవించిన సంఘర్షణను చూడటానికి మేము ఉపయోగిస్తాము.

>>ఇన్సర్ట్ INTOtbl2విలువలు (9,'హీరా') పైకాన్ఫిలిక్(ID) చేయండి ఏమిలేదు;

పై చిత్రం ప్రకారం, INSERT 0 0 ప్రశ్న అమలు చేసిన తర్వాత డేటా నమోదు చేయబడలేదని మీరు చూస్తారు.

ముగింపు

డేటాబేస్ సంబంధాలలో రిడెండెన్సీని తగ్గించడానికి, డేటా లేనప్పుడు, లేదా చొప్పించడం పూర్తి కానట్లయితే, పట్టికలలో అడ్డు వరుసలను చొప్పించే అవగాహన భావనను మేము క్లుప్తంగా చూశాము.