Difference between revisions of "SQLite3 noter"

From HoerupWiki
Jump to: navigation, search
(Funktioner)
(Datatyper)
 
(15 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
=Tools=
 
=Tools=
 
*[http://sqlitebrowser.org/ SQLite Browser] - Windows, Mac, Linux GUI tool.
 
*[http://sqlitebrowser.org/ SQLite Browser] - Windows, Mac, Linux GUI tool.
 +
*[https://code.google.com/p/phpliteadmin/ PhpLiteAdmin] - PHP admin tool, ligesom phpMyAdmin til MySQL.
 +
*[http://sqliteadmin.orbmu2k.de/ SQLite Administratir] - Kun til Windows, men ser rigtig godt ud.
  
 
=Datatyper=
 
=Datatyper=
Line 11: Line 13:
 
*'''BLOB''' - Binært felt, alt der kommer ind, kommer uændret ud. 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.  
 
*'''REAL''' - Floating point, 8byte IEEE standard.  
 +
*'''DATETIME''' - En pseudo type til datofelter.
 
*'''NULL''' - Indeholder NULL.  
 
*'''NULL''' - Indeholder NULL.  
  
Line 16: Line 19:
  
 
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.
 
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.
 
Se [https://www.sqlite.org/lang_datefunc.html www.sqlite.org/lang_datefunc.html] for mere datatime info.
 
  
 
=Funktioner=
 
=Funktioner=
Line 23: Line 24:
  
 
==Text funktioner==
 
==Text funktioner==
'''substr(text, start[, length])''' - Substring, bemærk første tegn er index 1, ikke 0 som i mange programmeringssprog.
+
*'''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.
'''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.
'''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.
+
*'''lower(text)''' - Text konveteret til små bogstaver.
 
+
*'''length(text)'''
'''upper(text)''' - Text konveteret til versaler.
 
 
 
'''lower(text)''' - Text konveteret til små bogstaver.
 
 
 
'''length(text)'''
 
  
 
==Dato og tid funktioner==
 
==Dato og tid funktioner==
'''date(timestring, modifier, modifier, ...)''' - Datodelen af en dato+tid streng i formatet (YYYY-MM-DD HH:MM:SS) eller UnixTimestamp.
+
*'''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.
'''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.
'''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
 
  %d day of month: 00
 
  %f fractional seconds: SS.SSS
 
  %f fractional seconds: SS.SSS
Line 57: Line 50:
 
  %% %  
 
  %% %  
  
Læs om mere her : [https://www.sqlite.org/lang_datefunc.html sqlite.org/lang_datefunc.html]
+
'''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 [https://www.sqlite.org/lang_datefunc.html www.sqlite.org/lang_datefunc.html] for mere datetime info.
  
 
==Tal og matematiske funktioner==
 
==Tal og matematiske funktioner==
'''round(tal [,decimaler)'''
+
 
'''ramdom()'''
+
*'''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 [https://www.sqlite.org/lang_aggfunc.html 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.

Latest revision as of 10:42, 30 March 2015

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.