SQLShack (Suomi)

Tässä artikkelissa tutkii SQL Delete -sarakkeen prosessin olemassa olevasta taulukosta. Ymmärrämme myös vaikutukset, jotka aiheutuvat poistamalla sarake, jossa on määritetyt rajoitukset ja objektit.

Johdanto

Relaatiotietokannassa käytämme mallisuunnittelutekniikkaa Normalisations ja jaamme suuret taulukot pienempiin taulukoihin. Se auttaa vähentämään tietojen redundanssia ja riippuvuutta. Meillä on useita normalisointilomakkeita, jotka on määritetty seuraavassa kuvassa.

Tässä artikkelissa ei käsitellä normalisointitekniikoita. Voit viitata artikkeliin – Mikä on tietokannan normalisointi SQL Serverissä?

Oletetaan, että sinulla on olemassa taulukko, jossa on useita sarakkeita. Tässä taulukossa on tiettyjä sarakkeita, jotka eivät ole merkityksellisiä nyt. Et tarvitse näitä sarakkeita. Harkitse esimerkiksi tuotetaulukkoa, ja tässä taulukossa sinulla on sarake. Toteutimme erillisen mekanismin tuotepalautteen keräämiseksi, eikä tällä sarakkeella ole merkitystä.

Ymmärretään, miksi on välttämätöntä poistaa ei-toivotut sarakkeet SQL-taulukosta. Alla on taulukon rakenne ja meidän on poistettava sarake, jolla on tietotyyppi varchar (2000).

Tämä taulukko sisältää 4 miljoonaa rivit, ja käyttäjä suoritti komennon valitaksesi kaikki tietueet tästä taulukosta.

1

SELECT * FROM Tuotteet;

Sieppaa varsinainen toteutussuunnitelma (paina CTRL + M) tämän kyselyn ja asiakastilastojen kanssa (paina Vaihto + Alt + S).

Suorita kysely toisessa kyselyikkunassa ilman saraketta ja sieppaa vastaava tilasto.

1
2
3
4

VALITSE
,
,
FROM ..

Verrataan SSMS: n molempien kyselyjen todellista toteutussuunnitelmaa. Voit huomata, että kysely ilman saraketta tarjoaa paremman suorituskyvyn. Käännetyn muistin arvot, suorittimen aika ja odotusaikojen väheneminen ovat vähäisiä.

Kyselyn optimoija ja SQL-tietokantamoottori vaativat lisäponnisteluja tälle sarakkeelle, vaikka tietojen hyödyntäminen ei ole hyödyllistä.

Vertaa vastaavasti molempien kyselyiden asiakastilastoja. Voit huomata merkittävän vähenemisen palvelimelta vastaanotetuissa TDS-paketeissa. Asiakkaalle lähetetyt tavut, palvelimelta vastaanotetut tavut, asiakkaan käsittelyaika ja kokonaiskäsittelyaika kyselylle, joka ei sisällä saraketta. Se voi auttaa sinua säästämään myös verkon kaistanleveyttä.

Tässä aion, että sinun tulisi suorittaa tietokannan puhdistus ja poistaa ei-toivotut sarakkeet myös kyselyn suorituskyvyn parantamiseksi.

Selvitetään, kuinka sarake poistetaan olemassa olevasta SQL-taulukosta.

SQL DELETE -sarakkeesta SSMS-objektinhallintaohjelmalla

Sarake voidaan poistaa graafisen käyttäjän avulla Interface (GUI) -menetelmä SQL Serverissä. Muodosta yhteys SSMS: n ilmentymään, laajenna tietokantoja. Etsi tietystä tietokannasta tietty taulukko ja laajenna sarakkeita.

Se näyttää tietyn taulukon kaikki sarakkeet. Napsauta hiiren kakkospainikkeella poistettavaa saraketta ja napsauta Poista, kuten seuraavassa kuvassa näkyy.

Se avaa ikkuna ja luettelo poistettavan sarakkeen nimestä. Napsauta OK ja sarake poistetaan taulukosta.

SQL DELETE -sarakkeet SSMS-taulukon suunnittelijalla

Käytämme SSMS: ssä taulukon suunnittelijaa määrittelemään tarvittavat sarakkeet, tietotyypit ja sarakkeen ominaisuudet, kuten ensisijaisen avaimen, identiteettisarakkeet. Voimme käyttää sitä myös sarakkeen poistamiseen olemassa olevasta taulukosta.

Napsauta taulukkoa hiiren kakkospainikkeella ja siirry Suunnittelu.

Se näyttää tietyn taulukon kaikki sarakkeet.

Napsauta hiiren kakkospainikkeella sarakkeen vasenta reunaa ja saat vaihtoehdon Poista sarake. Napsauta sitä poistaaksesi sarakkeen.

Voit joko tallentaa sen painamalla CTRL + S tai sulkea taulukon suunnittelijan ja napsauta Kyllä seuraavassa ikkunassa.

SQL POISTA sarakkeet T-SQL-taulukkosuunnittelijan avulla

Voimme käyttää sarakkeen poistamiseen myös Taulukko-komentoa. Syntaksi on helppo käyttää. Seuraava komento poistaa sarakkeen taulukosta.

1
2
3
4

KÄYTÄ
GO
ALTER-TAULUKKO. Pudota sarake
GO

  • Määritä ensin taulukon nimi, joka sisältää poistettavan sarakkeen
  • Toiseksi määritä poistettavan sarakkeen nimi

Voimme poistaa myös useita sarakkeita yhdessä Alter-taulukon komennossa, mutta kaikkien sarakkeiden tulisi kuulua yhteen taulukkoon. Tämä komento poistaa ja sarakkeet yhdellä komennolla.

1
2
3
4

KÄYTÄ
GO
ALTER PÖYTÄ . Pudota sarake,
GO

SQL DELETE -sarakkeessa on CHECK-rajoituksia

Käytämme CHECK-rajoituksia rajoittaaksemme sarakkeen arvoaluetta. Oletetaan, että sinulla on sarake, jolla on CHECK-rajoituksia.

Haluamme poistaa sarakkeen, mutta tässä sarakkeessa on TARKISTA-rajoitus. Yritetään poistaa se.

1
2

MUUTTOTAULUKKO. DROP COLUMN ProductPrice
GO

Saat virheilmoituksen, jonka mukaan objektit CK_Price_Check riippuu sarakkeesta.

Emme voi poistaa tätä saraketta, ennen kuin sillä on riippuvainen esine siinä. Jos haluat poistaa tämän sarakkeen, poista ensin riippuvuus ja poista sitten sarake.

Yritetään poistaa sarake, jolla on TARKISTA rajoituksia, taulukon suunnittelijan avulla. Avoin pöydän suunnittelija.

Napsauta hiiren kakkospainikkeella saraketta ja tarkista, että tässä taulukossa on TARKISTA-rajoituksia.

Se näyttää TARKISTA rajoitukset seuraavan kuvan mukaisesti.

Napsauta nyt hiiren kakkospainikkeella saraketta ja poista sarake. Se ei anna virheilmoitusta.

Sulje suunnittelijaikkuna ja pyytää sinua napsauttamaan Kyllä tallentaaksesi muutokset.

Se antaa sinulle vahvistusvaroituksen ja viestin tarkistusrajoituksesta.

Napsauta Kyllä, eikä se muokkaa taulukkoa. Se ei voi poistaa saraketta, koska TARKISTA-rajoitus riippuu siitä.

Emme voi poistaa saraketta taulukon suunnittelijan avulla, jos sarake on riippuvainen muista objekteista.

SQL DELETE -sarakkeessa on määritetty SQL-näkymä

Luodaan SQL-näkymä valitaksesi kaikki tietueet taulukosta.

1
2
3

Luo näkymä vw_ProductSales
nimellä
SELECT * ProductSalesista

Tämä näkymä riippuu taulukon kaikista sarakkeista. Pudota sarake Alter table -komennolla.

1
2

MUUTTOTAULUKKO. DROP COLUMN ProductPrice
GO

Emme saa virheilmoitusta kyselyn suorittamisesta. Yritetään käyttää tietueita näkymästä.

1
2

SELECT *
FROM vw_ProductSales;

Saamme virheilmoituksen, koska taulukko ei sisällä sarake. Tämä sarake oli käytettävissä, kun olemme luoneet SQL-näkymän.

  • Huomaa: meidän tulisi tarkistaa objektiriippuvuudet ennen sarakkeen pudottamista. Se poistaa myöhemmin kohtaamamme ongelmat.

Johtopäätös

Tässä artikkelissa opimme SQL: stä Poista sarake olemassa olevasta taulukosta käyttämällä erilaisia menetelmiä. Meidän pitäisi olla tietoisia kaikista näistä menetelmistä. Ole varovainen tuotantoympäristössä ennen sarakkeiden poistamista. Sinun tulisi poistaa kaikki riippuvuudet ja suunnitella se oikein.

  • Kirjoittaja
  • Viimeisimmät viestit
MCSA-sertifikaattina ja Intian Gurgaonissa toimiva Microsoft Certified Trainer, jolla on 13 vuoden kokemus, Rajendra työskentelee useissa suurissa yrityksissä, jotka keskittyvät suorituskyvyn optimointiin, seurantaan, korkeaan käytettävyyteen sekä hätäpalautumisstrategioihin ja toteutukseen. Hän on kirjoittanut satoja arvovaltaisia artikkeleita SQL Server, Azure, MySQL, Linux, Power BI, Performance tuning, AWS / Amazon RDS, Git ja niihin liittyvistä tekniikoista, joita tähän mennessä on lukenut yli 10 miljoonaa lukijaa.
Hän on luonut yhden suurimmista ilmaisista online-artikkelikokoelmista yhdestä aiheesta, 50-osaisella sarjallaan SQL Server Always On Availability Groups -ryhmissä. Hänen osuutensa perusteella SQL Server -yhteisöön hänet on tunnustettu useilla palkinnoilla, kuten arvostettu ”Vuoden paras kirjailija” jatkuvasti vuosina 2020 ja 2021 SQLShackissa.
Raj on aina kiinnostunut uusista haasteista, joten jos tarvitset konsultointia apua mistä tahansa hänen kirjoituksissaan käsitellystä aiheesta, hän on tavoitettavissa osoitteessa [email protected]
Näytä kaikki käyttäjän Rajendra Gupta viestit

Viimeisimmät viestit, jotka on kirjoittanut Rajendra Gupta (katso kaikki)
  • Pienien ja suurten versiopäivitysten tekeminen AWS: lle RDS SQL Server – 29. tammikuuta 2021
  • AWS RDS PostgreSQL -esiintymien käyttöönotto – 27. tammikuuta 2021
  • Paikallisten SQL-tietokantojen siirtäminen AWS RDS SQL Serveriin AWS DMS: n avulla – 25. tammikuuta , 2021

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *