SQLite3 noter

From HoerupWiki
Jump to: navigation, search

Tommys noter samlet fra diverse sider og primært sqlite.org - Det er ikke en manual, men mere de småting jeg selv havde brug for i starten.

Tools

Datatyper

Da SQLite skal ses som en SQL erstatning for flade tekstfiler, er det meget begrænset med datatyper.

  • INTEGER - Signed, op til 64bit.
  • TEXT - Som standard UTF-8, ingen begrænsninger udover diskplads.
  • BLOB - Binært felt, alt der kommer ind, kommer uændret ud. Ingen begrænsninger udover diskplads.
  • REAL - Floating point, 8byte IEEE standard.
  • DATETIME - En pseudo type til datofelter.
  • NULL - Indeholder NULL.

Hvis du har brug for DECIMAL, NUMERIC eller DOUBLE PRECISION vil disse blive konveteret til henholdvis REAL, INTEGER og REAL. Pas især på med sidste.

SQLite har ingen DATETIME eller lign. Så best pratice er at gemme som ISO8601 (YYYY-MM-DD HH:MM:SS), i det format kan man stadig sammenligne og bruge mindre og større end sammenligning. Se Dato funktioner for mere.

Funktioner

Jeg nævner lige et par brugbare herunder, men ellers kig her : www.sqlite.org/lang_corefunc.html

Text funktioner

  • substr(text, start[, length]) - Substring, bemærk første tegn er index 1, ikke 0 som i mange programmeringssprog.
  • instr(text, search) - Positionen af search i text, eller 0.
  • trim(text [,chars]) - Fjerner spaces fra start og slut af strengen. Hvis argument 2 er givet, fjerner den alle forekomster af tegne i chars start og slut af strengen.
  • upper(text) - Text konveteret til versaler.
  • lower(text) - Text konveteret til små bogstaver.
  • length(text)

Dato og tid funktioner

  • date(timestring, modifier, modifier, ...) - Datodelen af en dato+tid streng i formatet (YYYY-MM-DD HH:MM:SS) eller UnixTimestamp.
  • time(timestring, modifier, modifier, ...) - Tidsdelen af en dato+tid streng i formatet (YYYY-MM-DD HH:MM:SS) eller UnixTimestamp.
  • datetime(timestring, modifier, modifier, ...) - Dato+Tid af en dato+tid streng.
  • strftime(format, timestring, modifier, modifier, ...) - Valgfri dato+tid elementer fra en dato+tid streng.
%d 		day of month: 00
%f 		fractional seconds: SS.SSS
%H 		hour: 00-24
%j 		day of year: 001-366
%J 		Julian day number
%m 		month: 01-12
%M 		minute: 00-59
%s 		seconds since 1970-01-01
%S 		seconds: 00-59
%w 		day of week 0-6 with Sunday==0
%W 		week of year: 00-53
%Y 		year: 0000-9999
%% 		% 

Datetime modifier

Modifiers bruges til at regne frem eller tilbage fra datetime: Ex

select date('2015-01-01', '-1 days');
= 2014-12-31

Mulige modifiers :

NNN days
NNN hours
NNN minutes
NNN.NNNN seconds
NNN months
NNN years
start of month
start of year
start of day
weekday N
unixepoch
localtime
utc

Se www.sqlite.org/lang_datefunc.html for mere datetime info.

Tal og matematiske funktioner

  • round(tal [,decimaler) - Afrunder tal til nærmeste heltal hvis ingen decimaler er angivet.
  • ramdom() - Gir et 64bit, signed heltal.
  • max(X,Y,...) - Gir det største tal.
  • min(X,Y,...) - Gir det laveste tal.

Aggregate funktioner

Se www.sqlite.org/lang_aggfunc.html

  • avg() -
  • sum() - Returnere NULL ved ingen felter at sammenlægge, brug total() for 0.0 istedet for null.
  • max() -
  • min() -
  • count() - Kan også bruges som count(*) for alle rows.