Jeg sjekket SQL-syntax på nettet. Det ser ut som: 1. DISTINCT brukes når man trekker data ut av basen vha. SELECT, unique er et synonym - men DISTINCT er ANSI/ISO standard.
Min stemme går derfor til norske *distinkt* av mnemisk årsak.
Info fra IBM angående SELECT ----------------- IBM Informix Guide to SQL: Syntax Previous Page | Next Page | Index SQL Statements > SELECT > Allowing Duplicates You can apply the ALL, UNIQUE, or DISTINCT keywords to indicate whether duplicate values are returned, if any exist. If you do not specify any of these keywords in the Projection clause, all qualifying rows are returned by default. Keyword Effect ALL Specifies that all qualifying rows are returned, regardless of whether duplicates exist. (This is the default specification.) DISTINCT Excludes duplicates of qualifying rows from the result set UNIQUE Excludes duplicate. (Here UNIQUE is a synonym for DISTINCT. This is an extension to the ANSI/ISO standard.)
For example, the next query returns all the unique ordered pairs of values from the stock_num and manu_code columns in rows of the items table. If several rows have the same pair of values, that pair appears only once in the result set:
SELECT DISTINCT stock_num, manu_code FROM items --------------------------------------------------
2. UNIQUE finner jeg er et kritierium som settes av den som oppretter databasen og knyttes til hva denne tabellen kan lagre. IBM sier også her at "unique" og "distinct" er synonymer. Men eksempelet, som jeg tror er signifikant, bruker UNIQUE.
Min stemme går til *unik*, igjen av mnemisk årsak.
Fra IBM: ----------------- CREATE TABLE accounts (acc_name CHAR(12), acc_num SERIAL UNIQUE CONSTRAINT acc_num) ------------------
Kilde: http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ib...
Når det så gjelder teknisk språk i databasesammenheng, så vil "unik" som oversettelse av "distinct" passe _svært_ dårlig ettersom man i SQL i forbindelse med nøkkler også har modifikatoren UNIQUE som ihvertfall må oversettes til "unik". Å oversette både "distinct" og "unique" til "unik" på norsk vil ikke være særlig bra.
Det var et av de spørsmålene jeg stilte helt til å begynne med, men det er ennå ikke helt besvart: Hva er forskjellen på kommandoen UNIQUE og kommandoen DISTINCT? Hvis vi vet det kan vi kanskje finne en entydeig beskrivelse :-)
Med referanse til IBMs utsagn:
SELECT DISTINCT (ANSI/ISO standard) oversettelse: distinkt (unik - i parantes)
CREATE TABLE ... UNIQUE ..... oversettelse: unik
betydning: distinkt==klar, tydelig, adskillende, forskjellig
Men selvsagt, begge er på en måte synonymerm men slett ikke helt, de er koblet - i praktisk bruk er de ikke synonymer og gir vel mest en karakteristikk av brukeren som velger å bruke SELECT DISTINCT ....
Anta en tabell med kun: CREATE TABLE .... UNIQUE ..... Da er SELECT DISTINCT overflødig, allt er allerede klart og tydelig i og med at allt allerede er unikt og dermed forskjellig, men dette er distinkt (klart) for brukeren. SELECT DISTINCT == SELECT
Dog, anta en tabell med kun CREATE TABLE .... nonunique ..... Da vil SELECT DISTINCT gi mulighet for forskjellige svar i forhold til hva du ellers ville ha fått avhengig av hva som er databasen til enhver tid. SELECT DISTINCT != SELECT (muligens ulik)
Vi må bare anta brukeren har formålet klart og tydelig for seg og vet hvem hun spør og kjenner den lille forskjellen.
Dette gjelder vel både distinct og unique? Poenget er vel at man henter fram bare ett ekemplar av hver oppføring, finnes det like oppføringer, så begrenses ut-resultatet allikevel til en kopi (a la Linux-kommandoen uniq), men jeg forstår fortsatt ikke hva da uniq gjør som distinct ikke gjør, eller omvendt :-)
SELECT DISTINCT (DISTINCT er definert i ANSI/ISO, ikke UNIQUE) CREATE ... UNIQUE ....
Se over, det er nok ganske så forskjellig, eller distinkt
Torfinn -------------------------------------------------------------------- Av interesse: hva er Q'en i SQL oversatt med? en kveri, kverien, kverier, kveriene