Documentation Source Text

Hex Artifact Content
Login

Artifact 4ad79021d9db531ef98d6e3329b0740308a736ed661d533673dcb2332c18c397:


0000: 3c 74 69 74 6c 65 3e 53 51 4c 20 46 65 61 74 75  <title>SQL Featu
0010: 72 65 73 20 54 68 61 74 20 53 51 4c 69 74 65 20  res That SQLite 
0020: 44 6f 65 73 20 4e 6f 74 20 49 6d 70 6c 65 6d 65  Does Not Impleme
0030: 6e 74 3c 2f 74 69 74 6c 65 3e 0a 0a 3c 68 32 3e  nt</title>..<h2>
0040: 53 51 4c 20 46 65 61 74 75 72 65 73 20 54 68 61  SQL Features Tha
0050: 74 20 53 51 4c 69 74 65 20 44 6f 65 73 20 4e 6f  t SQLite Does No
0060: 74 20 49 6d 70 6c 65 6d 65 6e 74 3c 2f 68 32 3e  t Implement</h2>
0070: 0a 0a 3c 70 3e 0a 53 51 4c 69 74 65 20 69 6d 70  ..<p>.SQLite imp
0080: 6c 65 6d 65 6e 74 73 20 6d 6f 73 74 20 6f 66 20  lements most of 
0090: 74 68 65 20 63 6f 6d 6d 6f 6e 20 66 65 61 74 75  the common featu
00a0: 72 65 73 20 6f 66 20 53 51 4c 2e 0a 52 61 74 68  res of SQL..Rath
00b0: 65 72 20 74 68 61 6e 20 74 72 79 20 74 6f 20 6c  er than try to l
00c0: 69 73 74 20 61 6c 6c 20 74 68 65 20 66 65 61 74  ist all the feat
00d0: 75 72 65 73 20 6f 66 20 53 51 4c 20 74 68 61 74  ures of SQL that
00e0: 20 53 51 4c 69 74 65 20 64 6f 65 73 0a 73 75 70   SQLite does.sup
00f0: 70 6f 72 74 2c 20 69 74 20 69 73 20 6d 75 63 68  port, it is much
0100: 20 65 61 73 69 65 72 20 74 6f 20 6c 69 73 74 20   easier to list 
0110: 74 68 6f 73 65 20 74 68 61 74 20 69 74 20 64 6f  those that it do
0120: 65 73 20 6e 6f 74 2e 0a 55 6e 73 75 70 70 6f 72  es not..Unsuppor
0130: 74 65 64 20 66 65 61 74 75 72 65 73 20 6f 66 20  ted features of 
0140: 53 51 4c 20 61 72 65 20 73 68 6f 77 6e 20 62 65  SQL are shown be
0150: 6c 6f 77 2e 3c 2f 70 3e 0a 0a 3c 70 3e 0a 53 65  low.</p>..<p>.Se
0160: 65 20 61 6c 73 6f 20 74 68 65 0a 5b 51 75 69 72  e also the.[Quir
0170: 6b 73 7c 51 75 69 72 6b 73 2c 20 43 61 76 65 61  ks|Quirks, Cavea
0180: 74 73 2c 20 61 6e 64 20 47 6f 74 63 68 61 73 5d  ts, and Gotchas]
0190: 20 6f 66 20 53 51 4c 69 74 65 2e 0a 0a 3c 74 61   of SQLite...<ta
01a0: 62 6c 65 20 63 65 6c 6c 70 61 64 64 69 6e 67 3d  ble cellpadding=
01b0: 22 31 30 22 3e 0a 0a 3c 74 63 6c 3e 0a 70 72 6f  "10">..<tcl>.pro
01c0: 63 20 66 65 61 74 75 72 65 20 7b 6e 61 6d 65 20  c feature {name 
01d0: 64 65 73 63 7d 20 7b 0a 20 20 68 64 5f 70 75 74  desc} {.  hd_put
01e0: 73 20 22 3c 74 72 3e 3c 74 64 20 76 61 6c 69 67  s "<tr><td valig
01f0: 6e 3d 5c 22 74 6f 70 5c 22 3e 3c 62 3e 3c 6e 6f  n=\"top\"><b><no
0200: 62 72 3e 24 6e 61 6d 65 3c 2f 6e 6f 62 72 3e 3c  br>$name</nobr><
0210: 2f 62 3e 3c 2f 74 64 3e 22 0a 20 20 68 64 5f 70  /b></td>".  hd_p
0220: 75 74 73 20 22 3c 74 64 20 77 69 64 74 68 3d 5c  uts "<td width=\
0230: 22 31 30 5c 22 3e 26 6e 62 73 70 3b 3c 2f 74 68  "10\">&nbsp;</th
0240: 3e 22 0a 20 20 68 64 5f 70 75 74 73 20 22 3c 74  >".  hd_puts "<t
0250: 64 20 76 61 6c 69 67 6e 3d 5c 22 74 6f 70 5c 22  d valign=\"top\"
0260: 3e 24 64 65 73 63 3c 2f 74 64 3e 3c 2f 74 72 3e  >$desc</td></tr>
0270: 22 0a 7d 0a 0a 66 65 61 74 75 72 65 20 7b 52 49  ".}..feature {RI
0280: 47 48 54 20 61 6e 64 20 46 55 4c 4c 20 4f 55 54  GHT and FULL OUT
0290: 45 52 20 4a 4f 49 4e 7d 20 7b 0a 20 20 4c 45 46  ER JOIN} {.  LEF
02a0: 54 20 4f 55 54 45 52 20 4a 4f 49 4e 20 69 73 20  T OUTER JOIN is 
02b0: 69 6d 70 6c 65 6d 65 6e 74 65 64 2c 20 62 75 74  implemented, but
02c0: 20 6e 6f 74 20 52 49 47 48 54 20 4f 55 54 45 52   not RIGHT OUTER
02d0: 20 4a 4f 49 4e 20 6f 72 0a 20 20 46 55 4c 4c 20   JOIN or.  FULL 
02e0: 4f 55 54 45 52 20 4a 4f 49 4e 2e 0a 7d 0a 0a 66  OUTER JOIN..}..f
02f0: 65 61 74 75 72 65 20 7b 43 6f 6d 70 6c 65 74 65  eature {Complete
0300: 20 41 4c 54 45 52 20 54 41 42 4c 45 20 73 75 70   ALTER TABLE sup
0310: 70 6f 72 74 7d 20 7b 0a 20 20 4f 6e 6c 79 20 74  port} {.  Only t
0320: 68 65 20 52 45 4e 41 4d 45 20 54 41 42 4c 45 2c  he RENAME TABLE,
0330: 20 41 44 44 20 43 4f 4c 55 4d 4e 2c 20 61 6e 64   ADD COLUMN, and
0340: 20 52 45 4e 41 4d 45 20 43 4f 4c 55 4d 4e 20 76   RENAME COLUMN v
0350: 61 72 69 61 6e 74 73 20 6f 66 20 74 68 65 20 0a  ariants of the .
0360: 20 20 41 4c 54 45 52 20 54 41 42 4c 45 20 63 6f    ALTER TABLE co
0370: 6d 6d 61 6e 64 20 61 72 65 20 73 75 70 70 6f 72  mmand are suppor
0380: 74 65 64 2e 20 20 4f 74 68 65 72 20 6b 69 6e 64  ted.  Other kind
0390: 73 20 6f 66 20 41 4c 54 45 52 20 54 41 42 4c 45  s of ALTER TABLE
03a0: 20 6f 70 65 72 61 74 69 6f 6e 73 0a 20 20 73 75   operations.  su
03b0: 63 68 20 61 73 0a 20 20 44 52 4f 50 20 43 4f 4c  ch as.  DROP COL
03c0: 55 4d 4e 2c 20 41 4c 54 45 52 20 43 4f 4c 55 4d  UMN, ALTER COLUM
03d0: 4e 2c 20 41 44 44 20 43 4f 4e 53 54 52 41 49 4e  N, ADD CONSTRAIN
03e0: 54 2c 20 61 6e 64 20 73 6f 20 66 6f 72 74 68 20  T, and so forth 
03f0: 61 72 65 20 6f 6d 69 74 74 65 64 2e 0a 7d 0a 0a  are omitted..}..
0400: 66 65 61 74 75 72 65 20 7b 43 6f 6d 70 6c 65 74  feature {Complet
0410: 65 20 74 72 69 67 67 65 72 20 73 75 70 70 6f 72  e trigger suppor
0420: 74 7d 20 7b 0a 20 20 46 4f 52 20 45 41 43 48 20  t} {.  FOR EACH 
0430: 52 4f 57 20 74 72 69 67 67 65 72 73 20 61 72 65  ROW triggers are
0440: 20 73 75 70 70 6f 72 74 65 64 20 62 75 74 20 6e   supported but n
0450: 6f 74 20 46 4f 52 20 45 41 43 48 20 53 54 41 54  ot FOR EACH STAT
0460: 45 4d 45 4e 54 0a 20 20 74 72 69 67 67 65 72 73  EMENT.  triggers
0470: 2e 0a 7d 0a 0a 66 65 61 74 75 72 65 20 7b 57 72  ..}..feature {Wr
0480: 69 74 69 6e 67 20 74 6f 20 56 49 45 57 73 7d 20  iting to VIEWs} 
0490: 7b 0a 20 20 56 49 45 57 73 20 69 6e 20 53 51 4c  {.  VIEWs in SQL
04a0: 69 74 65 20 61 72 65 20 72 65 61 64 2d 6f 6e 6c  ite are read-onl
04b0: 79 2e 20 20 59 6f 75 20 6d 61 79 20 6e 6f 74 20  y.  You may not 
04c0: 65 78 65 63 75 74 65 20 61 20 44 45 4c 45 54 45  execute a DELETE
04d0: 2c 20 49 4e 53 45 52 54 2c 20 6f 72 0a 20 20 55  , INSERT, or.  U
04e0: 50 44 41 54 45 20 73 74 61 74 65 6d 65 6e 74 20  PDATE statement 
04f0: 6f 6e 20 61 20 76 69 65 77 2e 20 42 75 74 20 79  on a view. But y
0500: 6f 75 20 63 61 6e 20 63 72 65 61 74 65 20 61 20  ou can create a 
0510: 74 72 69 67 67 65 72 0a 20 20 74 68 61 74 20 66  trigger.  that f
0520: 69 72 65 73 20 6f 6e 20 61 6e 20 61 74 74 65 6d  ires on an attem
0530: 70 74 20 74 6f 20 44 45 4c 45 54 45 2c 20 49 4e  pt to DELETE, IN
0540: 53 45 52 54 2c 20 6f 72 20 55 50 44 41 54 45 20  SERT, or UPDATE 
0550: 61 20 76 69 65 77 20 61 6e 64 20 64 6f 0a 20 20  a view and do.  
0560: 77 68 61 74 20 79 6f 75 20 6e 65 65 64 20 69 6e  what you need in
0570: 20 74 68 65 20 62 6f 64 79 20 6f 66 20 74 68 65   the body of the
0580: 20 74 72 69 67 67 65 72 2e 0a 7d 0a 0a 66 65 61   trigger..}..fea
0590: 74 75 72 65 20 7b 47 52 41 4e 54 20 61 6e 64 20  ture {GRANT and 
05a0: 52 45 56 4f 4b 45 7d 20 7b 0a 20 20 53 69 6e 63  REVOKE} {.  Sinc
05b0: 65 20 53 51 4c 69 74 65 20 72 65 61 64 73 20 61  e SQLite reads a
05c0: 6e 64 20 77 72 69 74 65 73 20 61 6e 20 6f 72 64  nd writes an ord
05d0: 69 6e 61 72 79 20 64 69 73 6b 20 66 69 6c 65 2c  inary disk file,
05e0: 20 74 68 65 0a 20 20 6f 6e 6c 79 20 61 63 63 65   the.  only acce
05f0: 73 73 20 70 65 72 6d 69 73 73 69 6f 6e 73 20 74  ss permissions t
0600: 68 61 74 20 63 61 6e 20 62 65 20 61 70 70 6c 69  hat can be appli
0610: 65 64 20 61 72 65 20 74 68 65 20 6e 6f 72 6d 61  ed are the norma
0620: 6c 0a 20 20 66 69 6c 65 20 61 63 63 65 73 73 20  l.  file access 
0630: 70 65 72 6d 69 73 73 69 6f 6e 73 20 6f 66 20 74  permissions of t
0640: 68 65 20 75 6e 64 65 72 6c 79 69 6e 67 20 6f 70  he underlying op
0650: 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 2e 0a  erating system..
0660: 20 20 54 68 65 20 47 52 41 4e 54 20 61 6e 64 20    The GRANT and 
0670: 52 45 56 4f 4b 45 20 63 6f 6d 6d 61 6e 64 73 20  REVOKE commands 
0680: 63 6f 6d 6d 6f 6e 6c 79 20 66 6f 75 6e 64 20 6f  commonly found o
0690: 6e 20 63 6c 69 65 6e 74 2f 73 65 72 76 65 72 0a  n client/server.
06a0: 20 20 52 44 42 4d 53 65 73 20 61 72 65 20 6e 6f    RDBMSes are no
06b0: 74 20 69 6d 70 6c 65 6d 65 6e 74 65 64 20 62 65  t implemented be
06c0: 63 61 75 73 65 20 74 68 65 79 20 77 6f 75 6c 64  cause they would
06d0: 20 62 65 20 6d 65 61 6e 69 6e 67 6c 65 73 73 0a   be meaningless.
06e0: 20 20 66 6f 72 20 61 6e 20 65 6d 62 65 64 64 65    for an embedde
06f0: 64 20 64 61 74 61 62 61 73 65 20 65 6e 67 69 6e  d database engin
0700: 65 2e 0a 7d 0a 3c 2f 74 63 6c 3e 0a 3c 2f 74 61  e..}.</tcl>.</ta
0710: 62 6c 65 3e 0a                                   ble>.