>  기사  >  데이터 베이스  >  SQLLite 관련 콘텐츠

SQLLite 관련 콘텐츠

jacklove
jacklove원래의
2018-06-14 16:25:302196검색

흠. . . 얼마 전에 정리된 상식:

SQLLite 학습 노트

SQLite는 ACID를 준수하는 경량 데이터베이스이자 관계형 데이터베이스 관리 시스템입니다. 비교적 작은 C 라이브러리 중간에 포함되어 있습니다. Windows/Linux/Unix와 같은 주류 운영 체제를 지원할 수 있으며 Tcl, C#, PHP, Java 등과 같은 많은 프로그래밍 언어와 결합될 수 있습니다. 처리 속도가 매우 빠릅니다.

1. 기본 작업

테이블 만들기:

키워드: AUTOINCREMENT는 특정 열의 값을 자동으로 증가시키는 데 사용할 수 있으며 플라스틱 필드에만 사용할 수 있습니다. 테이블을 만들 때 이것을 추가하세요 키워드

테이블 삭제:

테이블에 새 데이터 삽입

또는

두 번째 작성 방법은 값의 순서가 테이블에 나열된 순서와 일치하는지 확인해야 합니다

쿼리 테이블

뒤에 조건부 쿼리의 경우 WHERE가 올 수 있습니다. "*"는 쿼리 테이블의 모든 열을 의미하며 다음과 같을 수도 있습니다.

--하위 쿼리나 내부 쿼리 또는 중첩 쿼리가 where 절에 포함된 경우 또 다른 SQL 특수 쿼리.必须 다음은 하위 쿼리가 따라야 하는 몇 가지 규칙입니다.

子 쿼리는 괄호 안에 포함되어야 합니다. ·                                                                                                                                                        하위 쿼리는 하위 쿼리의 선택된 열과 비교되는 기본 쿼리에 여러 열이 없는 한

SELECT 절에 하나의 열만 가질 수 있습니다. . B dORDER BY 는 하위 쿼리에 사용할 수 없지만 기본 쿼리에서는 Order By를 사용할 수 있습니다.

ORDER BY 와 동일한 기능을 갖는 GROUP BY을 하위 쿼리에 사용할 수 있습니다. · 하위 쿼리는 둘 이상의 행을 반환하며 IN 연산자와 같은 다중 값 연산자에만 사용할 수 있습니다.

· BETWEEN 연산자는 하위 쿼리와 함께 사용할 수 없지만 BETWEEN 연산자는 하위 쿼리 내에서 사용할 수 있습니다.

테이블 데이터 수정테이블 데이터 삭제2. 연산자 변수 a=10 및 변수 b=20이라고 가정하고,

산술 연산자

operator 설명

a + b 는 30

비교 연산자

-을 얻습니다.

뺄셈 - 왼쪽 피연산자 빼기 오른쪽 피연산자

a - b 는 -10

*

을 얻습니다. Multiplication – Put 연산자 값 곱하기 ​​양쪽

a * b 은 200

/

Division - 왼쪽 피연산자를 오른쪽 피연산자로 나눕니다.

b a는 0을 줄 것이다

연산자

Description

Instance

= =

두 피연산자의 값이 맞는지 확인하세요. 같다면 조건은 참입니다.

(a == b) 은(는) 사실이 아닙니다.

=

두 피연산자의 값이 같은지 확인하고, 같으면 조건이 true입니다.

(a = b) 은(는) 사실이 아닙니다.

!=

은 두 피연산자의 값이 같은지 확인하고, 그렇지 않으면 조건이 true입니다.

(a != b) 은 사실입니다.

a8093152e673feb7aba1828c43532094

두 피연산자의 값이 같은지 확인하고, 그렇지 않으면 조건이 true입니다.

(a a8093152e673feb7aba1828c43532094 b) 은 사실입니다. 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 큰지 확인하면 조건이 true입니다.

(a > b)

은(는) 사실이 아닙니다.

ea271bab14e14a5651aa870f30f686ae=

왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크거나 같은지 확인하고, 그렇다면 조건이 true입니다.

(a >= b)

은(는) 사실이 아닙니다.

d26c69d8fe17900e03434f4141a1157b

왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크지 않은지 확인하고, 그렇다면 조건은 true입니다.

(a !> b) 은 사실입니다.

논리 연산자

Operator

Description

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 연산자는 지정된 테이블의 모든 행을 검색하여 고유성을 보장합니다(중복 없음).

1. 비트 연산자

다음 표에는 SQLite 언어에서 지원하는 비트 연산자가 나열되어 있습니다. 변수 A=60, 변수 B=13이라고 가정하면 다음과 같습니다.

는 15

Operator

Description

Instance

&

이진 AND 연산자는 두 피연산자가 동시에 존재하는 경우 결과에 1비트를 복사합니다.

(A & B) 는 12을 얻습니다. 즉, 0000 1100

|

에 있는 경우 연산자는 1비트를 결과.

(A | B) 은 61을 얻습니다. 즉, 0011 1101

~

이진 보수 연산자는 " 플립" 비트 효과 즉, 0은 1이 되고, 1은 0이 됩니다.

(~A ) 은 -61을 얻습니다. 이는 부호 있는 이진수의 보수 형식인 1100 0011입니다.

18a37a32089c4665b091de5640973d65> 이진 오른쪽 시프트 연산자. 왼쪽 피연산자의 값은 오른쪽 피연산자가 지정한 비트 수만큼 오른쪽으로 이동합니다.

A >> 2

을 얻습니다. 즉, 0000 1111

3. 자주 사용되지 않는 절

1. GLOB

우리 일상 SQL에서는 GLOB의 기능은 기본적으로 LIKE와 동일합니다. GLOB는 대소문자를 구분합니다. 별표(*)는 0개, 하나 이상의 숫자 또는 문자를 나타냅니다. 물음표(?)는 단일 숫자 또는 문자를 나타냅니다.比 Like와의 비교: GLOB의*및 Like의 역할은 GLOB와 일치합니까? LIKE

2의 기능과 일치합니다. HAVING

조건 필터링을 지정하면 WHERE와 HAVING의 차이점이 무엇입니까? 사실 둘의 차이는 꽤 큽니다.

(1) HAVING 절을 사용하면 최종 결과에 표시될 그룹화된 결과를 필터링하는 조건을 지정할 수 있습니다.

(2) WHERE 절은 선택한 열에 대한 조건을 설정하고, HAVING 절은 GROUP BY 절에 의해 생성된 그룹화에 대한 조건을 설정합니다.

(3)HAVING

SELECT 문에만 사용할 수 있습니다. (4)HAVING
은 일반적으로 GROUP
BY 절에 사용됩니다. (5)
GROUP
BY 절을 사용하지 않으면 HAVINGWHERE 절과 동일하게 동작합니다. (6) 쿼리에서 HAVING 절은 GROUP BY 절 뒤, ORDER BY 절 앞에 와야 합니다.

--

예를 들어보세요. 테이블

테이블을 쿼리하여 각 학급에서 20세 이상이고 성별이 남성인 사람의 수를 쿼리합니다select

COUNT(*)as

'> ;20세 인원수',classidfromTable1wheresex='male'groupbyclassid,agehavingage> ;20 --

주의사항 참고: where

절, groupbyclause, had 절과 집계 함수가 동시에 포함될 경우 실행 순서는 다음과 같습니다. --

where

절을 실행하여 조건에 맞는 데이터를 찾습니다. ;--

group

by절을 사용하여 그룹으로 구성된 그룹에 대해 집계 함수를 실행합니다. by절을 사용하여 각 그룹의 값을 계산합니다. 마지막으로 had 하위 절을 사용하여 조건을 충족하지 않는 문장을 제거합니다. --had

절의 모든 요소는 select

목록에도 나타나야 합니다. oracle.--having

절 및 where

절과 같은 일부 데이터베이스 예외는 쿼리 결과가 특정 조건을 충족하도록 제한을 설정하는 데 사용될 수 있습니다. --having

절은 행이 아닌 그룹을 제한합니다. 집계 함수는 where

절에서는 사용할 수 없지만, had 절에서는 사용할 수 있습니다.

四、Distinct 关键字

SQLite 的 DISTINCT 关键字与 SELECT 语句一起使用,来消除所有重复的记录,并只获取唯一一次记录。

有可能出现一种情况,在一个表中有多个重复的记录。当提取这样的记录时,DISTINCT 关键字就显得特别有意义,它只获取唯一一次记录,而不是获取重复记录。

五、约束

约束是在表的数据列上强制执行的规则。这些是用来限制可以插入到表中的数据类型。这确保了数据库中数据的准确性和可靠性。

约束可以是列级或表级。列级约束仅适用于列,表级约束被应用到整个表。

以下是在 SQLite 中常用的约束。

·          NOT NULL 约束:确保某列不能有 NULL 值。

·          DEFAULT 约束:当某列没有指定值时,为该列提供默认值。

·          UNIQUE 约束:确保某列中的所有值是不同的。

·          PRIMARY Key 约束:唯一标识数据库表中的各行/记录。

·          CHECK 约束:CHECK 约束确保某列中的所有值满足一定条件。

六、SQLite Joins

SQLite 的 Joins 子句用于结合两个或多个数据库中表的记录。JOIN 是一种通过共同值来结合两个表中字段的手段。

SQL 定义了三种主要类型的连接:

·          交叉连接 - CROSS JOIN

·          内连接 - INNER JOIN

·          外连接 - OUTER JOIN

1、交叉连接CROSS JOIN

交叉连接(CROSSJOIN)没有WHERE 子句,它返回连接表中所有数据行的笛卡尔积,其结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查询条件的数据行数。由于交叉连接(CROSS JOIN)有可能产生非常大的表,使用时必须谨慎,只在适当的时候使用它们。

2、内连接inner join

内连接的结果是从两个或者两个以上的表的组合中挑选出符合连接条件的数据。如果数据无法满足连接条件则将其丢弃。在内连接中,参与连接的表的地位是平等的。

内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值。内连接分三种:

1)等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。

2)不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的列的列值。这些运算符包括>、>=、816ff14aff4448eec8a656c2ab5ef5de、!<和a8093152e673feb7aba1828c43532094。

3)自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。

3、外连接

外连接(OUTERJOIN)是内连接(INNER JOIN)的扩展。虽然 SQL标准定义了三种类型的外连接:LEFT、RIGHT、FULL,但 SQLite 只支持 左外连接(LEFT OUTER JOIN)。外连接(OUTER JOIN)声明条件的方法与内连接(INNER JOIN)是相同的,使用 ON、USING 或 NATURAL 关键字来表达。最初的结果表以相同的方式进行计算。一旦主连接计算完成,外连接(OUTER JOIN)将从一个或两个表中任何未连接的行合并进来,外连接的列使用 NULL值,将它们附加到结果表中。

七、unions子句

1、SQLite的 UNION 子句/运算符用于合并两个或多个 SELECT 语句的结果,不返回任何重复的行。

UNION을 사용하기 위해서는 각 SELECT에서 선택한 컬럼의 개수, 컬럼 표현식의 개수, 데이터 타입이 동일해야 하며, 순서도 동일해야 하지만 반드시 동일할 필요는 없습니다. 길이.

2. UNIONALL 절

UNION ALL 연산자는 중복 행을 포함하여 두 개의 SELECT 문의 결과를 결합하는 데 사용됩니다.

UNION에 적용되는 동일한 규칙이 UNION ALL 연산자에도 적용됩니다.

8. 트리거

SQLite 트리거(Trigger)는 데이터베이스의 콜백 함수로, 지정된 데이터베이스 이벤트가 발생할 때 자동으로 실행/호출됩니다. 다음은 SQLite 트리거에 대한 주요 사항입니다.

  • SQLite의 트리거는 특정 데이터베이스 테이블에서 DELETE, INSERT 또는 UPDATE가 발생할 때 또는 하나 이상의 지정된 테이블의 열이 발생할 때 트리거되도록 지정할 수 있습니다. 업데이트가 발생합니다.

  • SQLite는 FOR EACH ROW 트리거(트리거)만 지원하며 FOR EACH STATEMENT 트리거(트리거)는 없습니다. 따라서 FOR EACH ROW를 명시적으로 지정하는 것은 선택 사항입니다.

  • WHEN 절과 트리거 작업은 NEW.column-name 및 OLD.column-name 형식의 참조를 사용하여 삽입, 삭제 또는 업데이트되는 행 요소에 액세스할 수 있습니다. 여기서 column-name은 이름과 연결된 트리거에서 가져온 것입니다. 테이블 열의

  • WHEN 절이 제공되면 WHEN 절이 true인 지정된 행에 대해서만 SQL 문이 실행됩니다. WHEN 절이 제공되지 않으면 모든 행에 대해 SQL 문이 실행됩니다.

  • BEFORE 또는 AFTER 키워드는 관련 행의 삽입, 수정 또는 삭제 전후인지 트리거 작업이 실행되는 시기를 결정합니다.

  • 트리거와 연결된 테이블이 삭제되면 해당 트리거(Trigger)도 자동으로 삭제됩니다.

  • 수정할 테이블은 트리거가 연결된 테이블이나 뷰와 동일한 데이터베이스에 존재해야 하며, tablename만 사용해야 하며, Database.tablename은 사용할 수 없습니다.

  • 특수 SQL 함수 RAISE()를 사용하여 프로그램 내에서 발생한 예외를 트리거할 수 있습니다.

예:

SELECT name FROM sqlite_master WHEREtype = 'trigger';각 행에 대해 모든 트리거

를 볼 수 있습니다. 는 작업 문이 행에 영향을 미칠 때마다 한 번 트리거된다는 것입니다. 10 행을 삭제하면 10 회 트리거되고, 각 상태에 대해 작업문이 한 번 트리거되고 때로는 영향을 받지 않은 행도 실행됩니다. sqlite 는 각 행 에 대해 트리거링만 구현합니다. 각 행에 대해 인 경우 사용법은 다음과 같습니다.

CREATETRIGGER Trigger_name

AFTERUPDATE OF id ON table_1

FOR 행

언제 . id>30

BEGIN

UPDATEtable_2 SET id=new.id WHEREtable_2 .id=old. id;

END;

위 트리거는 table_1의 id를 변경합니다. 새 id>30이면 table_1의 id와 동일한 table_2의 행이 새 id

9로 변경됩니다. Index

인덱스(Index)는 다음과 같습니다. one 데이터베이스 검색 엔진이 데이터 검색 속도를 높이기 위해 사용하는 특수 조회 테이블입니다. 인덱스는 SELECT 쿼리와 WHERE 절의 속도를 높이는 데 도움이 되지만 UPDATE 및 INSERT 문을 사용할 때는 데이터 입력 속도가 느려집니다. 데이터에 영향을 주지 않고 인덱스를 생성하거나 삭제할 수 있습니다.

단일 열 인덱스

단일 열 인덱스는 테이블의 단 하나의 열을 기준으로 생성된 인덱스입니다. 기본 구문은 다음과 같습니다.

CREATE INDEX index_name
ON table_name (column_name);

Unique index

고유 인덱스를 사용하는 것은 성능뿐만 아니라 데이터 무결성을 위해서도 마찬가지입니다. 고유 인덱스는 테이블에 중복된 값을 삽입하는 것을 허용하지 않습니다. 기본 구문은 다음과 같습니다.

CREATE UNIQUE INDEX index_name
on table_name (column_name);
Combined index

복합 인덱스는 테이블의 두 개 이상의 열에 생성되는 인덱스입니다. 기본 구문은 다음과 같습니다.

CREATE INDEX index_name
on table_name (column1, column2);

단일 열 인덱스를 만들든 복합 인덱스를 만들든 WHERE 절에서 자주 사용하는 열을 쿼리 필터 조건으로 고려하세요.

값이 열을 사용하는 경우 단일 열 인덱스를 사용하도록 선택하세요. WHERE 절에서 필터로 자주 사용되는 열이 두 개 이상인 경우 복합 인덱스를 사용하도록 선택합니다.

암시적 인덱스

암시적 인덱스는 객체 생성 시 데이터베이스 서버에서 자동으로 생성되는 인덱스입니다. 인덱스는 기본 키 제약 조건과 고유 제약 조건을 사용하여 자동으로 생성됩니다.

SELECT * FROM sqlite_master WHEREtype = 'index';데이터베이스의 모든 인덱스 보기

DROP INDEX index_name;SQLite의 DROP 명령을 사용하여 인덱스를 삭제할 수 있습니다

어떤 상황에서 삭제해야 할까요? 피하세요. 인덱스를 사용하시겠습니까?

인덱싱의 목적은 데이터베이스 성능을 향상시키는 것이지만, 인덱스 사용을 피해야 하는 몇 가지 상황이 있습니다. 인덱스를 사용할 때는 다음 지침을 다시 고려해야 합니다. 인덱스는 더 작은 테이블에 사용하면 안 됩니다.不 索 索 인덱스는 대량의 데이터나 삽입 작업이 자주 발생하는 테이블에는 사용하면 안 됩니다.

·                                               NULL 값이 많이 포함된 열에는 인덱스를 사용하면 안 됩니다. ㅋㅋㅋ

Indexed By

"INDEXEDBY index-name" 절은 이전 테이블에서 값을 찾으려면 명명된 인덱스가 필요함을 지정합니다.

인덱스 이름 index-name 이 존재하지 않거나 쿼리에 사용할 수 없는 경우 SQLite 문 준비가 실패합니다. "NOTINDEXED" 절은 이전 테이블에 액세스할 때 인덱스가 사용되지 않음을 지정합니다(UNIQUE 및 PRIMARYKEY 제약 조건에 의해 생성된 암시적 인덱스 포함). 그러나 "NOT INDEXED"가 지정되더라도 INTEGER PRIMARY KEY를 사용하여 항목을 찾을 수 있습니다.

INDEXED BY는 DELETE, UPDATE 또는 SELECT 문과 함께 사용할 수 있습니다.

SELECT|DELETE|UPDATE column1, column2...
INDEXED BY (index_name)
table_name
WHERE (CONDITION);

十、重命名表或向表中插入新的字段

用来重命名已有的表的 ALTERTABLE 的基本语法如下:

ALTERTABLE database_name.table_name RENAME TOnew_table_name;

用来在已有的表中添加一个新的列的 ALTERTABLE 的基本语法如下:

ALTERTABLE database_name.table_name ADD COLUMNcolumn_def...;

十一、视图

视图(View)只不过是通过相关的名称存储在数据库中的一个 SQLite 语句。视图(View)实际上是一个以预定义的 SQLite 查询形式存在的表的组合。

视图(View)可以包含一个表的所有行或从一个或多个表选定行。视图(View)可以从一个或多个表创建,这取决于要创建视图的 SQLite 查询。、

视图(View)是一种虚表,允许用户实现以下几点:

① 用户或用户组查找结构数据的方式更自然或直观。

② 限制数据访问,用户只能看到有限的数据,而不是完整的表。

③ 汇总各种表中的数据,用于生成报告。

SQLite 视图是只读的,因此可能无法在视图上执行 DELETE、INSERT 或 UPDATE 语句。但是可以在视图上创建一个触发器,当尝试 DELETE、INSERT 或 UPDATE 视图时触发,需要做的动作在触发器内容中定义。

1、创建视图

CREATE [TEMP | TEMPORARY] VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE [condition];

2、删除视图

DROP VIEW view_name;

十二、日期时和时间

SQLite 支持以下五个日期和时间函数:

序号

函数

实例

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, ...)

BC 4714년 11 24 정오 이후의 일수를 반환합니다.

5

strftime(format, timestring, modifier, modifier, ...)

이것은 첫 번째로 지정된 형식 문자열을 기반으로 형식화된 값을 반환합니다. 매개변수 날짜. 구체적인 형식은 아래에 설명되어 있습니다.

위의 5개 날짜 및 시간 함수는 시간 문자열을 매개변수로 사용합니다. 시간 문자열 뒤에 0개 이상의 수정자 수정자가 옵니다. strftime() 함수는 형식 문자열 format 을 첫 번째 매개변수로 사용할 수도 있습니다. 다양한 유형의 시간 문자열과 수정자에 대해 아래에서 자세히 설명합니다.

시간 문자열

시간 문자열은 다음 형식 중 하나일 수 있습니다.

9

일련 번호

시간 문자열

1

YYYY-MM-DD

2010-12-30

2

YYYY- HH :MM SSS

2010-12-30 12:10:04.100

4

MM-DD-MMYYYY HH:

30- 12-2010 12:10

5

HH:MM

12:10

6

YYYY- MM-DDT

HH: mm
12:10:01

8

YYYYMMDD HHMMSS

20101230 121001

지금

2013-05-07

날짜와 시간을 구분하기 위해 "T" 를 텍스트 문자로 사용할 수 있습니다.

수정자

시간 문자열 뒤에는 0개 이상의 수정자가 올 수 있으며, 이는 위의 5개 함수에서 반환된 날짜와 / 또는 시간을 변경합니다. 위의 다섯 가지 함수 중 하나는 시간을 반환합니다. 수정자는 왼쪽에서 오른쪽으로 사용해야 하며, SQLite 에서 사용할 수 있는 수정자는 다음과 같습니다.

(1) 날짜와 시간을 지정된 값만큼 늘립니다(양수와 음수 모두 알았어)

·                                                         ​ NNN초

·​ NNN개월

· NNN년

(2)현재 날짜의 시작을 반환합니다

· ·                                                                              

(3)다음 주가 N

·                                                                                               -01-01

두 번째 초 · Unixepoch

(5) 현지 시간으로 돌아가기

Localtime

(6) 국제 표준시 ·     ~

Formatting

SQLite 는 날짜와 시간의 형식을 지정하는 매우 편리한 기능 strftime() 을 제공합니다. 다음 대체 문자를 사용하여 날짜 및 시간 형식을 지정할 수 있습니다. %d

소수 부분이 있는 초, 시, 일, 율리우스력절, 월, 포인트, 요일, 연도의 주, 년, % 기호
一일 월,

01-31

%f

SS.SSS

%H

00-23

%j

001-366

% J

DDDD.DDDD

%m

00-12

%M

00-59

%s

1970-01-01

이후 초 수

%S

초,

00-59

%w

0-6(0은 일요일)

%W

01-53

%Y

YYYY

%%

selectdatetime(&#39;now&#39;,&#39;localtime&#39;);--当前时间读取本地得时间
selectdatetime(&#39;now&#39;,&#39;start of month&#39;);--本月第一天
selectdatetime(&#39;now&#39;,&#39;start of month&#39;,&#39;+1 month&#39;,&#39;-1 day&#39;);--本月最后一天
selectdatetime(&#39;now&#39;,&#39;start of year&#39;,&#39;+1 year&#39;,&#39;start of month&#39;,&#39;-1 day&#39;);--今年最后一天
SELECTjulianday(date(&#39;now&#39;,&#39;localtime&#39;)) - julianday(&#39;2018-03-20&#39;);;--计算今天到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 문자를 참조합니다. X가 BLOB인 경우 아래 첨자는 바이트를 나타냅니다.

이 기사에서는 SQLLite 관련 내용을 설명합니다. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트를 참고하세요.

관련 권장 사항:

Spark SQL은 로그 오프라인 일괄 처리를 구현합니다

MySQL에서 데이터를 검색하는 방법에 대한 자세한 설명

sql 인접한 두 레코드 간의 시간 차이 비교

위 내용은 SQLLite 관련 콘텐츠의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.