Virtuaalinen sarake

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).

Toteutus

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

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 > ]
  • type  on sarakkeen tietotyyppi.
  • lauseke  on SQL-lauseke, joka palauttaa kunkin rivin sarakkeen arvon.
  • teksti on valinnainen sarakkeen kommentti.

MySQL

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]

Oracle

Versiosta 11g alkaen Oracle tukee virtuaalisia sarakkeita. [3]

SQL Server

Microsoft SQL Server tukee virtuaalisia sarakkeita, mutta niitä kutsutaan lasketuiksi sarakkeiksi. [neljä]

SQL Server tukee sekä pysyviä että ei-pysyviä laskettuja sarakkeita.

firebird

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.

Syntaksi

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 )