Virtuaalinen sarake on relaatiotietokantataulukon sarake, jonka arvo lasketaan automaattisesti käyttämällä muiden sarakkeiden arvoja tai muuta determinististä lauseketta. Virtuaaliset sarakkeet eivät ole osa mitään SQL -standardia, ja ne toteutetaan vain joissakin RDBMS :issä , kuten MariaDB , SQL Server , Oracle ja Firebird (tietokantapalvelin).
Virtuaalisarakkeita on kahdenlaisia:
Virtuaalisarakearvot lasketaan suoraan tarvittaessa, eli välittömästi, esimerkiksi kun ne palautetaan SELECT-käskyllä. Sarakkeiden vakioarvot lasketaan, kun rivi lisätään taulukkoon, ja ne kirjoitetaan kuten kaikki muutkin arvot. Ne voivat muuttua, jos muut arvot muuttuvat. Sekä virtuaalisilla että pysyvillä sarakkeilla on hyvät ja huonot puolensa: virtuaaliset sarakkeet eivät vie levytilaa, mutta ne on arvioitava aina, kun kysely hakee niitä; pysyvät sarakkeet eivät vaadi CPU-aikaa, mutta vievät levytilaa. Joskus saraketyypin valitseminen ei kuitenkaan ole mahdollista, koska jotkin DBMS-järjestelmät tukevat vain yhtä saraketyyppiä (tai ei mitään niistä).
MariaDB on MySQL: n haarukka . Virtuaaliset sarakkeet lisättiin versioon 5.2. [yksi]
Lausekkeilla, joita voidaan käyttää virtuaalisten sarakkeiden arvioimiseen, on seuraavat rajoitukset:
Pysyvät sarakkeet voidaan indeksoida ja ne voivat olla osa vierasavainta pienin rajoituksin.
Virtuaalisia sarakkeita voidaan käyttää vain taulukoissa, jotka käyttävät niitä tukevaa tallennuskonetta.
Tallennuskoneet, jotka tukevat virtuaalisia sarakkeita:
MRG_MyISAM-taulukot voivat perustua MyISAM-taulukoihin, jotka sisältävät pysyviä sarakkeita; mutta vastaava MRG_MyISAM-sarake on määritettävä tavalliseksi sarakkeeksi.
< tyyppi > [ LUOTU AINA ] AS ( < lauseke > ) [ VIRTUAALINEN | PYSYVÄ ] [ AINUTLAATUINEN ] [ AINUTLAATUINEN AVAIN ] [ KOMMENTTI < teksti > ]Tuki virtuaalisille sarakkeille, jotka tunnetaan MySQL :ssä luotuina sarakkeina, tuli saataville versiossa 5.7. Useita niiden käytön rajoituksia on alennettu myöhemmissä versioissa. [2]
Versiosta 11g alkaen Oracle tukee virtuaalisia sarakkeita. [3]
Microsoft SQL Server tukee virtuaalisia sarakkeita, mutta niitä kutsutaan lasketuiksi sarakkeiksi. [neljä]
SQL Server tukee sekä pysyviä että ei-pysyviä laskettuja sarakkeita.
Firebird on aina tukenut virtuaalisia sarakkeita, aivan kuten sen edeltäjä InterBase tukee niitä. Niitä kutsutaan lasketuiksi sarakkeiksi. [5]
Firebird tukee virtuaalisia sarakkeita, ei vakioita, ja antaa sinun tehdä alivalintoja kutsumalla sisäänrakennettuja toimintoja, ulkoisia toimintoja ja tallennettuja aliohjelmia virtuaalisessa sarakelausekkeessa.
Virtuaalisarakkeen luominen voidaan tehdä taulukkoa luotaessa, syntaksi virtuaalisten sarakkeiden määrittämiselle, kun niitä lisätään jo olemassa olevaan taulukkoon, on seuraava:
sarakkeen_nimi [ tyyppi ] LASKETTU ( lauseke ) _tai
sarakkeen_nimi [ tyyppi ] LUOTU AINA AS ( lauseke )Tietokanta | |
---|---|
Käsitteet |
|
Objektit |
|
Avaimet | |
SQL | |
Komponentit |