SQLite 연산자
SQLite 연산자란 무엇인가요?
연산자는 예약어 또는 문자로, 비교 및 산술 연산과 같은 SQLite 문의 WHERE 절에서 연산을 수행하는 데 주로 사용됩니다.
연산자는 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> 20 = 30
sqlite> 선택 10 - 20;
10 - 20 = -10
sqlite> 선택 10 * 20;
10 * 20 = 200
sqlite> 10 / 5 선택;
10 / 5 = 2
sqlite> 12% 5 선택;
12% 5 = 2
변수 a=10, 변수 b=20, 다음과 같이 가정합니다.
예
COMPANY 테이블에 다음 레코드가 있다고 가정합니다. ---- ---------- ---------- ------- ---
1 Paul 32 California 20000.04 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 김 22 사우스홀 45000.0
7 제임스 24 휴스턴 10000.0
다음 예에서는 다양한 SQLite 비교 연산자의 사용을 보여줍니다.
여기서는 WHERE 절을 사용하는데, 이는 나중에 별도의 장에서 설명하겠지만, 이제 WHERE 절이 SELECT 문의 조건을 설정하는 데 사용된다는 점을 이해해야 합니다. 성명.
다음 SELECT 문은 SALARY가 50,000.00보다 큰 모든 레코드를 나열합니다.
ID AGE ADDRESS SALARY
---------- ---------- ---------- ----------- -------- - -
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
다음 SELECT 문은 SALARY가 20,000.00과 같은 모든 레코드를 나열합니다.
ID 이름 연령 주소 급여
---------- ---------- ------- --- ---- --------- ---------
1 폴 32 캘리포니아 20000.0
3 테디 23 노르웨이 200 00.0
다음 SELECT 문은 SALARY가 20,000.00이 아닌 모든 레코드를 나열합니다.
ID -- -------- ---------- ---------- ---------- ----------
2 Allen 25 Texas 15000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
다음 SELECT 문은 SALARY가 20,000.00이 아닌 모든 레코드를 나열합니다.
ID AGE ADDRESS SALARY
------------ ---------- ---------- ----------- -------- --
2 Allen 25 Texas 15000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
다음 SELECT 문은 SALARY가 65,000.00보다 크거나 같은 모든 레코드를 나열합니다.
ID AGE ADDRESS SALARY
------------ ---------- ---------- ---------- ------- ---
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 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 运算符搜索指定表中的每一行,确保唯一性(无重复)。 |
예
COMPANY 테이블에 다음 레코드가 있다고 가정합니다. ---- ---------- ---------- ------- ---
1 Paul 32 California 20000.04 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 김 22 사우스홀 45000.0
7 제임스 24 휴스턴 10000.0
다음 예에서는 SQLite 논리 연산자의 사용을 보여줍니다.
다음 SELECT 문은 AGE가 25보다 크거나 같고 급여가 65000.00보다 크거나 같은 모든 레코드를 나열합니다.
ID ---------
4 Mark 25 Rich- Mond 65000.0
5 David 27 Texas 85000.0
SELECT 문은 AGE가 25보다 크거나 같은
sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000;
ID 이름 나이 주소 급여2 Allen 25 Texas 15000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
다음 SELECT 문은 AGE가 NULL이 아닌 모든 레코드를 나열합니다. 즉, AGE가 NULL인 레코드가 없음을 의미합니다.
ID 이름 나이 주소 급여
------------ ---------- ---------- ---- ------ ---- ------ ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 노르웨이 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
다음 SELECT 문은 NAME이 'Ki'로 시작하는 모든 레코드를 나열합니다. 'Ki' 뒤의 문자는 제한되지 않습니다.
6 Kim 22 South-Hall 45000.0
Select*from Company where name glob 'ki*'; ---------- ---------- ----------
더 다음 SELECT 문은 AGE 값이 25 또는 27인 모든 레코드를 나열합니다.
ID > - ---------
2 Allen 25 Texas 15000.0다음 SELECT 문은 AGE 값이 25도 27도 아닌 모든 레코드를 나열합니다.
ID > > ~에게 ---------
1 Paul 32 California 20000.0
3 Teddy 23 노르웨이 20000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
2 알렌 25 텍사스 15000.0
4 마크 25 리치몬드 65000.0
5 데이비드 27 텍사스 85000.0
다음 SELECT 문은 SQL 하위 쿼리를 사용합니다. 하위 쿼리는 SALARY > 65000의 AGE 필드가 있는 모든 레코드를 찾습니다. 다음 WHERE 절은 EXISTS 연산자와 함께 사용되어 외부 쿼리의 모든 레코드에 있는 AGE를 나열합니다. 하위 쿼리에서 반환된 결과:
WHERE EXISTS (SELECT AGE FROM COMPANY WHERE SALARY > 65000);
AGE
- ---- -----
32
25
23
25
27
22
24
다음 SELECT 문 SQL 하위 쿼리를 사용합니다. 하위 쿼리는 SALARY > 65000에서 AGE 필드가 있는 모든 레코드를 찾습니다. 다음 WHERE 절은 하위 쿼리에서 반환된 결과보다 큰 외부 쿼리의 AGE를 나열하는 데 사용됩니다.
WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000);
ID 이름 AGE ---------- -------- ---------- ---------- ----------
1 Paul 32 California 20000.0
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> 60 | 13;
60 | 13 = 61
sqlite> 60 & 13 = 12
; 선택 60 ^ 13;
10 * 20 = 200
sqlite> 선택(~60);
(~60) = -61
sqlite> (60<<2);
(60<<2) = 240
sqlite> 선택(60>>2);
(60>>2 ) = 15