SQLite는 연산자
무엇 SQLite는 연산자는 무엇입니까?
운영자는 작업을 수행 할 수 절이 주로 비교 연산으로, SQLite는 문에 사용되는 예약 된 단어 또는 문자입니다.
운영자는 조건의 SQLite는 문을 지정하는 데 사용하고 문에서 조건의 복수를 연결합니다.
산술 연산자
비교
논리 연산자
비트 연산자
SQLite는 산술 연산자
가정하자 변수 a = 10 일 후, 변수 B = 20 :
运算符 | 描述 | 实例 |
---|---|---|
+ | 加法 - 把运算符两边的值相加 | a + b 将得到 30 |
- | 减法 - 左操作数减去右操作数 | a - b 将得到 -10 |
* | 乘法 - 把运算符两边的值相乘 | a * b 将得到 200 |
/ | 除法 - 左操作数除以右操作数 | b / a 将得到 2 |
% | 取模 - 左操作数除以右操作数后得到的余数 | b % a will give 0 |
예
여기에 SQLite는 산술 연산자의 간단한 예입니다 :
sqlite가> .mode 라인 sqlite가> 10 + 20을 선택; 10 + 20 = 30 sqlite가> 10 선택 - (20); 10-20 = -10 sqlite가> 10 * 20를 선택; 10 * 20 = 200 sqlite가> 10/5를 선택; 10/5 = 2 sqlite가> 12 % 5를 선택; 2 5 = 12 %
SQLite는 비교
가정하자 변수 a = 10 일 후, 변수 B = 20 :
运算符 | 描述 | 实例 |
---|---|---|
== | 检查两个操作数的值是否相等,如果相等则条件为真。 | (a == b) 不为真。 |
= | 检查两个操作数的值是否相等,如果相等则条件为真。 | (a = b) 不为真。 |
!= | 检查两个操作数的值是否相等,如果不相等则条件为真。 | (a != b) 为真。 |
<> | 检查两个操作数的值是否相等,如果不相等则条件为真。 | (a <> b) 为真。 |
> | 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 | (a > b) 不为真。 |
< | 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 | (a < b) 为真。 |
>= | 检查左操作数的值是否大于等于右操作数的值,如果是则条件为真。 | (a >= b) 不为真。 |
<= | 检查左操作数的值是否小于等于右操作数的值,如果是则条件为真。 | (a <= b) 为真。 |
!< | 检查左操作数的值是否不小于右操作数的值,如果是则条件为真。 | (a !< b) 为假。 |
!> | 检查左操作数的值是否不大于右操作数的值,如果是则条件为真。 | (a !> b) 为真。 |
예
가정하자 회사 테이블에는 다음과 같은 기록이있다 :
ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 1 폴 (32) 캘리포니아 20000.0 2 알렌 (25) 텍사스 15000.0 3 테디 (23) 노르웨이 20000.0 4 마크 (25) 리치 사교계 65000.0 5 다윗 (27) 텍사스 85000.0 6 김 (22) 사우스 홀 45000.0 7 제임스 (24) 휴스턴 10000.0
다음의 예는 다양한 SQLite는 비교의 사용을 보여줍니다.
여기, 우리는 다시 별도의 장에서 다루는될 WHERE 절을 사용하지만, 지금은 SELECT 문의 WHERE 절은 조건문을 설정하는 데 사용됩니다 이해할 필요가있다.
다음 SELECT 문은 모든 레코드의 SALARY는 50,000.00보다 큰 나열
sqlite가> SELECT * FROM 회사 WHERE SALARY> 50000; ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 4 마크 (25) 리치 사교계 65000.0 5 다윗 (27) 텍사스 85000.0
다음 SELECT 문은 모든 레코드와 동일한 SALARY 20,000.00을 보여줍니다
sqlite가> SELECT * FROM 회사 WHERE SALARY = 20000; ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 1 폴 (32) 캘리포니아 20000.0 3 테디 (23) 노르웨이 20000.0
다음 SELECT 문은 SALARY는 20,000.00의 모든 기록에 동일하지 않은 나열
! SQLite는> SELECT * FROM 회사 WHERE SALARY = 20000; ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 2 알렌 (25) 텍사스 15000.0 4 마크 (25) 리치 사교계 65000.0 5 다윗 (27) 텍사스 85000.0 6 김 (22) 사우스 홀 45000.0 7 제임스 (24) 휴스턴 10000.0
다음 SELECT 문은 SALARY는 20,000.00의 모든 기록에 동일하지 않은 나열
sqlite가> 회사 SELECT * FROM WHERE SALARY <> 20000; ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 2 알렌 (25) 텍사스 15000.0 4 마크 (25) 리치 사교계 65000.0 5 다윗 (27) 텍사스 85000.0 6 김 (22) 사우스 홀 45000.0 7 제임스 (24) 휴스턴 10000.0
다음 SELECT 문은 SALARY는 65,000.00의 모든 레코드의 합계보다 큰 나열
sqlite가> 회사 SELECT * FROM WHERE SALARY> = 65000; ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 4 마크 (25) 리치 사교계 65000.0 5 다윗 (27) 텍사스 85000.0
SQLite는 논리 연산자
여기에 논리 연산자의 SQLite는 모두의 목록입니다.
运算符 | 描述 |
---|---|
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 运算符搜索指定表中的每一行,确保唯一性(无重复)。 |
예
가정하자 회사 테이블에는 다음과 같은 기록이있다 :
ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 1 폴 (32) 캘리포니아 20000.0 2 알렌 (25) 텍사스 15000.0 3 테디 (23) 노르웨이 20000.0 4 마크 (25) 리치 사교계 65000.0 5 다윗 (27) 텍사스 85000.0 6 김 (22) 사우스 홀 45000.0 7 제임스 (24) 휴스턴 10000.0
다음의 예는 SQLite는 논리 연산자의 사용법을 보여줍니다.
다음 SELECT 문은 모든 레코드 65000.00에 대한 AGE25보다 같거나 크거나 동일 임금 나열
sqlite가> SELECT * FROM 회사 WHERE AGE> = 25 AND SALARY> = 65000; ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 4 마크 (25) 리치 사교계 65000.0 5 다윗 (27) 텍사스 85000.0
다음 SELECT 문은 모든 레코드 65000.00에 대한 25 세이상 같거나보다 크거나 동일 임금 나열
sqlite가> 회사 SELECT * FROM WHERE AGE> = 25 OR SALARY> = 65000; ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 1 폴 (32) 캘리포니아 20000.0 2 알렌 (25) 텍사스 15000.0 4 마크 (25) 리치 사교계 65000.0 5 다윗 (27) 텍사스 85000.0
다음 SELECT 문은 AGE가 모든 레코드를 보여,이 나이에 대한 기록이 NULL과 동일하지가 의미하는 모든 레코드에 대한 NULL이 나열되어 있습니다 :
나이가 NULL이 WHERE sqlite가> 회사 SELECT * FROM; ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 1 폴 (32) 캘리포니아 20000.0 2 알렌 (25) 텍사스 15000.0 3 테디 (23) 노르웨이 20000.0 4 마크 (25) 리치 사교계 65000.0 5 다윗 (27) 텍사스 85000.0 6 김 (22) 사우스 홀 45000.0 7 제임스 (24) 휴스턴 10000.0
'기'모든 레코드에 SELECT 문을 나열 NAME 다음 문자는 '기'가 제한 후입니다 시작했다 :
sqlite가> SELECT * FROM 회사 WHERE NAME LIKE '기 %'; ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 6 김 (22) 사우스 홀 45000.0
'기'모든 레코드에 SELECT 문을 나열 NAME 다음 문자는 '기'가 제한 후입니다 시작했다 :
sqlite가> SELECT * FROM 회사 WHERE NAME의 GLOB '기 *'; ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 6 김 (22) 사우스 홀 45000.0
다음 SELECT 문은 25 또는 27의 모든 레코드 나이 값을 나열합니다 :
sqlite가> 회사 SELECT * FROM WHERE AGE IN (25, 27); ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 2 알렌 (25) 텍사스 15000.0 4 마크 (25) 리치 사교계 65000.0 5 다윗 (27) 텍사스 85000.0
다음 SELECT 문은 나이가 모두 25도 모든 레코드의 27 인 값을 보여줍니다 :
sqlite가> (25 27) WHERE AGE NOT IN 회사 SELECT * FROM; ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 1 폴 (32) 캘리포니아 20000.0 3 테디 (23) 노르웨이 20000.0 6 김 (22) 사우스 홀 45000.0 7 제임스 (24) 휴스턴 10000.0
다음 SELECT 문은 값 AGE 25과 27 사이의 모든 기록을 나열
sqlite가> SELECT * FROM 회사 WHERE (25) 및 (27) 간의 AGE; ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 2 알렌 (25) 텍사스 15000.0 4 마크 (25) 리치 사교계 65000.0 5 다윗 (27) 텍사스 85000.0
WHERE 절은 연산자 존재와 함께 사용됩니다 뒤에 다음 SELECT 문, 65,000 모든 레코드를 SQL의 하위 쿼리, 하위 쿼리 찾기 SALARY> AGE 필드를 사용, 서브 쿼리 반환에 외부 쿼리 AGE의 존재를 나열 모든 레코드의 결과 :
회사 FROM sqlite가> SELECT AGE 존재하는 (회사의 나이를 선택 WHERE SALARY> 65000); AGE ---------- (32) (25) (23) (25) (27) (22) (24)
다음의 SELECT 절 및> 연산자를 함께 사용하는 뒤에 SQL 하위 쿼리, 하위 쿼리 찾기 SALARY> 65000 모든 레코드에 대한 AGE 필드를 사용하는 쿼리의 결과는 외부 쿼리의 목록을 서브 AGE보다 큰 반환 시대의 모든 기록 :
SQLite는> 회사 SELECT * FROM WHERE AGE> (회사의 나이를 선택 WHERE SALARY> 65000); ID의 이름 나이 주소 급여 ---------- ---------- ---------- ---------- ---------- 1 폴 (32) 캘리포니아 20000.0
SQLite는 비트 연산자
비트 비트에 작용하는 연산자 및 비트 연산에 의해 비트. 진실 테이블 &와 | 다음과 같습니다 :
p | q | p & q | p | q |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 1 | 1 | 1 |
1 | 0 | 0 | 1 |
가정 A = 60, 및 B = 13의 경우, 이제 다음과 바이너리 형식에서 :
A = 0011 1100
B = 0000 1101
-----------------
A & B = 0000 1100
A | B = 0011 1101
~ A = 1100 0011
다음 표는 SQLite는 비트 연산자를 지원하는 언어를 나열합니다. 가정 변수의 A = 60, 다음 변수 B = 13 :
运算符 | 描述 | 实例 |
---|---|---|
& | 如果同时存在于两个操作数中,二进制 AND 运算符复制一位到结果中。 | (A & B) 将得到 12,即为 0000 1100 |
| | 如果存在于任一操作数中,二进制 OR 运算符复制一位到结果中。 | (A | B) 将得到 61,即为 0011 1101 |
~ | 二进制补码运算符是一元运算符,具有"翻转"位效应。 | (~A ) 将得到 -61,即为 1100 0011,2 的补码形式,带符号的二进制数。 |
<< | 二进制左移运算符。左操作数的值向左移动右操作数指定的位数。 | A << 2 将得到 240,即为 1111 0000 |
>> | 二进制右移运算符。左操作数的值向右移动右操作数指定的位数。 | A >> 2 将得到 15,即为 0000 1111 |
예
다음의 예는 SQLite는 비트 단위의 사용을 보여줍니다
sqlite가> .mode 라인 sqlite가>를 선택 (60) | (13); 60 | 13 = (61) sqlite가> 60 & 13를 선택; 60 13 = 12 sqlite가> 60 ^ 13을 선택; 10 * 20 = 200 sqlite가> (~ 60)을 선택; (~ 60) = -61 sqlite가>를 선택 (60 << 2); (2 << 60) = 240 sqlite가>를 선택합니다 (60 >> 2); (60 >> 2) = 15