嗯。 。 。前段時間整理的常用知識:
SQLite,是一款輕型的資料庫,是遵守ACID的關係型資料庫管理系統,它包含在一個相對小的C庫中。它能夠支援Windows/Linux/Unix等等主流的作業系統,同時能夠跟著許多程式語言結合,例如 Tcl、C#、PHP、Java等。它的處理速度非常快。
#關鍵字:AUTOINCREMENT 可用於某一列得值自動遞增,只能用於整形字段,可在建表得時候加入這個關鍵字
或
第二種寫法必須確保值得順序與列在表中得順序一致
#後面可以跟WHERE 進行條件查詢,「*」表示查詢表中所有列,也可以這樣
--子查詢或內部查詢或嵌套查詢時在另一個SQL利特查詢內嵌入在where子句中得查詢。
以下是子查詢必須遵守的幾個規則:
· 子查詢必須用括號括起來。
· 子查詢在 SELECT 子句中只能有一個列,除非在主查詢中有多列,與子查詢的所選列進行比較。
· ORDER BY 不能用在子查詢中,雖然主查詢可以使用 ORDER BY 。可以在子查詢中使用 GROUP BY,功能與 ORDER BY 相同。
· 子查詢傳回多於一行,且只能與多值運算子一起使用,例如 IN #運算符。
· #BETWEEN 運算子不能與子查詢一起使用,但是,BETWEEN 可在子查詢內使用。
假設變數a=10,變數b=20,則:
運算子 |
描述 |
實例 |
a b ###將會得到30########################-###### |
減法- 左運算元減去右運算元 |
a - b 將得到-10 |
* |
* |
|
把運算子兩邊的值相乘
| a * b 將會得到200 |
|
除法- | 左運算元除以右邊運算元
#b / a |
將得到2
|
運算子 |
描述 |
實例 |
== |
||
不為真。 |
||
不為真。 |
||
為真。 |
||
為真。 |
||
#不為真。 |
||
#不為真。 |
||
檢查左運算元的值是否不大於右運算元的值,如果是則條件為真。 |
(a !> b) #為真。 |
運算子 |
描述 |
AND |
#AND 運算符允許在一個SQL 語句的WHERE 子句中的多個條件的存在。 |
BETWEEN |
#BETWEEN 運算子用於在給定最小值和最大值範圍內的一系列值中搜尋值。 |
EXISTS |
EXISTS 運算子用於在滿足一定條件的指定表中搜尋行的存在。 |
IN |
IN #運算符用於將某個值與一系列指定清單的值進行比較。 |
NOT IN |
IN 運算子的對立面,用來把某個值與不在一系列指定清單的值做比較。 |
LIKE |
LIKE 運算符用於將某個值與使用通配符運算符的相似值進行比較。 |
GLOB |
#GLOB 運算符用於將某個值與使用通配符運算符的相似值進行比較。 GLOB 與 LIKE 不同之處在於,它是大小寫敏感的。 |
NOT |
#NOT 運算子是所使用的邏輯運算子的對立面。例如 NOT EXISTS、NOT BETWEEN、NOT IN,等等。它是否定運算符。 |
OR |
#OR 運算子用於結合一個SQL 語句的WHERE 子句中的多個條件。 |
IS NULL |
#NULL 運算符用於把某個值與NULL 值做比較。 |
IS |
#IS 運算子與= 相似。 |
IS NOT |
#IS NOT 運算符與!= 相似。 |
|| |
#連接兩個不同的字串,得到一個新的字串。 |
UNIQUE # |
UNIQUE 運算子搜尋指定表中的每一行,確保唯一性(無重複)。 |
1、位元運算子
#下表中列出了SQLite 語言支援的位元運算符。假設變數A=60,變數B=13,則:
#運算子 |
##描述 |
#實例 |
& |
如果同時存在於兩個運算元中,二進位AND 運算子複製一位到結果中。 |
(A & B) 將得到12,即為0000 1100 |
| |
如果存在於任一運算元中,二進位OR 運算子複製一位到結果中。 |
(A | B) 將得到61,即為0011 1101 |
~ |
二進位補碼運算子是一元運算符,具有"翻轉"位元效應,即0變成1,1變成0。 |
(~A ) 將得到 -61,即為 1100 0011,一個有符號二進位數的補碼形式。 |
9a680553ed1198a74854ceac60675a42> |
#二進位右移運算子。左操作數的值向右移動右操作數所指定的位數。 |
A >> 2 #將得到15,即為0000 1111 |
序号 |
函数 |
实例 |
1 |
date(timestring, modifier, modifier, ...) |
以 YYYY-MM-DD 格式返回日期。 |
2 |
time(timestring, modifier, modifier, ...) |
以 HH:MM:SS 格式返回时间。 |
3 |
datetime(timestring, modifier, modifier, ...) |
以 YYYY-MM-DD HH:MM:SS 格式返回。 |
4 |
julianday(timestring, modifier, modifier, ...) |
這將返回從格林尼治時間的公元前 4714 年 11 月 24 日正午算起的天數。 |
5 |
#strftime(format, timestring, modifier , modifier, ...) |
這將根據第一個參數指定的格式字串傳回格式化的日期。具體格式請見下邊講解。 |
上述五個日期和時間函數把時間字串當作參數。時間字串後面跟著零個或多個 modifier 修飾符。 strftime() 函數也可以把格式字串 format 作為其第一個參數。以下將為您詳細講解不同類型的時間字串和修飾符。
一個時間字串可以採用下面任何一種格式:
##序號 |
#時間字串 |
實例 |
#1 |
YYYY-MM-DD |
#2010-12-30 |
#2 |
YYYY-MM-DD HH:MM | 2010-12-30 12:10 |
#3 |
||
YYYY-MM-DD HH:MM:SS.SSS |
2010-12-30 12:10:04.100 |
4 |
#MM-DD-YYYY HH:MM |
30-12-2010 12:10 |
|
HH:MM |
#12:10 |
6 |
T HH:MM |
2010-12-30 12:10 |
7 |
HH:MM:SS |
#12:10:01 |
8 |
#YYYYMMDD HHMMSS |
#20101230 121001 |
9 |
您可以使用 "T" #作為分隔日期和時間的文字字元。
時間字串後邊可跟著零個或多個的修飾符,這將改變有上述五個函數傳回的日期和/或時間。任何上述五大功能返回時間。修飾符應從左到右使用,下面列出了可在 SQLite 中使用的修飾符:
##(1)增加指定數值的日期和時間(正負數都可以)
· NNN days
NNN days
·
NNN hours·
NNN # NNN.NNNN seconds
· NNN months
· # ##· #
##(2)返回目前日期的開始
·#start of month
#·(3)返回下一個星期是##N
的日期和時間· # weekday N
(4)傳回從1970-01-01
#開始算起的秒數· #unixepoch
(5)
##(5)
· localtime
(#6
###################################################################### ####· ######utc######
SQLite 提供了非常方便的函數 strftime() 來格式化任何日期和時間。您可以使用以下的替換來格式化日期和時間:
取代 |
描述 |
%d |
#一月中的第幾天,01-31 |
%f |
有小數部分的秒,SS.SSS |
##%H |
#時,00-23 |
%j |
#一年中的第幾天,001 -366 |
%J |
#儒略日數,DDDD.DDDD |
#%m |
月,00-12 |
.%M |
|
00-59 |
%s | 從
算起的秒數 |
%S |
##00-59
|
%w |
0-6 (0 is Sunday)
|
#%W |
01-53
|
%Y |
YYYY
|
%% |
selectdatetime('now','localtime');--当前时间读取本地得时间 selectdatetime('now','start of month');--本月第一天 selectdatetime('now','start of month','+1 month','-1 day');--本月最后一天 selectdatetime('now','start of year','+1 year','start of month','-1 day');--今年最后一天 SELECTjulianday(date('now','localtime')) - julianday('2018-03-20');;--计算今天到2018-03-20相差多少天
1、count 用于计算一个数据库表中得行数
如:select count(*)from k_user
2、max 选择某列最大值
3、min 选择某列最小值
4、avg 计算某列平均值
5、sum 允许一个数值列计算总和
6、random 返回一个介于 -9223372036854775808 和 +9223372036854775807之间的伪随机整数
7、abs 返回数值参数得绝对值
8、upper 吧字符串转换为大写字母
9、lower 把字符串转换为小写字母
10、length 返回字符串长度
11、sqlite_version 返回数据库版本
12、coalesce(X,Y,……) 返回第一个非空参数的副本。若所有的参数均为NULL,返回NULL。至少2个参数。
13、ifnull(X,Y) 返回第一个非空参数的副本。若两个参数均为NULL,返回NULL。
14、last_insert_rowid() 返回当前数据库连接最后插入行的RowID。
15、nullif(X,Y) 当两参数不同时返回X,否则返回NULL。
16、quote(X) 返回参数的适于插入其他SQL语句中的值。字符串会被添加单引号。
17、round(X)或round(X,Y) 将X四舍五入,保留小数点后Y位。若忽略Y参数,则默认其为0。
18、zeroblob(N) 返回一个 N 字节长、全部由 0x00 组成的 BLOB。SQLite 或以很有效的组织这些 zeroblob。它可以被用于为以后的使用预留空间。以后可以使用 incremental BLOB I/O 来写入 BLOB 数据。
19、typeof(X) 返回表达式X的类型
20、change_count() 返回受上一语句影响的行数。(好像不能用)
21、total(X) 返回一组中所有非空值的数字和。若没有非空行,sum()返回null而total()返回0.0。total()的返回值为浮点数,sum()可以为整数。
22、ltrim(X)
lrtrim(X,Y) 返回从 X 的左边边去除所有出现在 Y 中字符以后的字符串。如果省略 Y,则去除空格。
23、 replace(X,Y,Z) 返回一个将 X 字符串中每一个出现 Y 的位置替换为 Z 后的字符串。它使用二进制对照序列进行比较。
24、randomblob(N) 返回一个 N 字节长的包含伪随机字节的 BLOG。 N 应该是正整数
25、rtrim(X)
rtrim(X,Y) 返回从 X 的右边去除所有出现在 Y 中字符以后的字符串。如果省略 Y,则去除空格。
26、soundex(X) 计算字符串 X的读音编码。如果参数为 NULL,则返回 "?000"。默认情况下 SQLite 忽略该函数。仅当在编译时指定 -DSQLITE_SOUNDEX=1 时才有效。
27、substr(X,Y,Z)
substr(X,Y) 傳回字串 X 從第 Y 個字元開始,長度為 Z 的字串。如果省略 Z, 將傳回直到字串結尾的字串。 X 的第一個字元從 1 開始。如果 Y是負數,則從右邊開始數。如果 X 是 UTF-8 字串,那麼,下標值將指實際的 UTF-8 characters 字符,而不是位元組。如果 X 是一個 BLOB,那麼下標就是指位元組。
本文解說了SQLLite相關內容,更多相關內容請關注php中文網。
相關推薦:
#以上是SQLLite相關內容的詳細內容。更多資訊請關注PHP中文網其他相關文章!