많이 접하는 3가지 술어(terminology)
1. Keyword
- sql에 미리 정의되어 기능이 고정된 단어
- 변경 불가능, 변수명으로 사용불가능
ex : SELECT, FROM, DELETE, CREATE ...
2. Clause
- 명령문의 Sub-set
- 하나의 완벽한 명령문이 아닌 작은 구문
ex : SELECT emp_id, emp_name ...
3. Statement
- 하나의 완벽한 명령문
ex : SELECT*FROM employee;
CREATE DATABASE helloworld;
SELECT Statement
: 데이터베이스에서 데이터를 선택할 때 사용하는 명령어
: 테이블의 열에 속하는 데이터를 불러온다
Syntax
//특정 컬럼 선택
SELECT column1, column2
FROM table_name;
//모든 컬럼 선택
SELECT * FROM table_name;
example
// Customers 테이블에서 name 컬럼 추출
SELECT name FROM Customers;
// Customers 테이블에서 모든 컬럼 추출
SELECT * FROM Customers;
// Customers 테이블에서 Country 컬럼 중복없이 추출
SELECT DISTINCT Country FROM Customers
// Customers 테이블에서 Country 컬럼 값은 총 몇종류인지 추출
SELECT COUNT(DISTINCT Country) FROM Customers;
- DISTINCT
: 중복을 배제하고 고유값만 출력 ( SELECT와 같이 사용)
WHERE Clause
: 조건을 걸어 검색할 수 있는 명령어
Syntax
SELECT column1, column2
FROM table_name
WHERE condition;
Example
// Customers 테이블에서 City가 "Berlin"인 모든 record 추출
SELECT * FROM Cunstomers WHERE Country = " Berlin";
// Customers 테이블에서 Country 컬럼의 값은 총 몇종류인지 추출
SELECT COUNT(DISTINCT County) FROM Customers;
*비교연산자
부호 | 설명 |
= | 같다 |
> | 초과 |
< | 보다 작음 |
>= | 크거나 같다 |
<= | 작거나 같다 |
!< | 보다 작지 않다 |
!> | 보다 크지 않다 |
*SQL 연산자
BETWEEN a AND b | a 와 b 의 값 사이에 있으면 된다 (a 와 b 값 포함) |
LIKE '비교문자열' | 비교문자열과 형태가 일치하면 된다 (%,_ 사용) |
IN (list) | list에 있는 값 중에서 어느 하나라도 일치하면 된다 |
IS NULL | NULL 값인 경우 |
- BETWEEN : 문자 값과 날짜 값에도 사용 가능
- LIKE 의 %, _ 의미
% : 0 개 이상의 어떤 문자를 의미
_ : 1 개인 단일 문자 의미
*논리연산자
AND | 앞의 조건과 뒤의 조건을 동시에 만족해야 한다 |
OR | 앞 뒤 조건 중 하나만 만족하면 된다 |
NOT | 뒤에 오는 조건에 반대되는 결과를 되돌려 준다 |
*부정 비교 연산자
!= | 같지 않다 |
^= | 같지 않다 |
<> | 같지 않다 |
NOT 칼럼명 = | ~와 같지 않다 |
NOT 칼럼명 > | ~보다 크지 않다 |
*부정 SQL 연산자
NOT BETWEEN a AND b | a 와 b 의 값 사잉에 있지 않다 ( a 와 b 값을 포함하지 않음) |
NOT IN (list) | list 값과 일치하지 않는다 |
IS NOT NULL | NULL 값을 갖지 않는다 |
AND, OR, NOT Operators
: WHERE문의 condition과 결합하여 사용가능 ( 더 상세한 값을 얻을 수 있다)
: 복합 연산자
AND Syntax
//다른 프로그래밍 언어에서의 AND와 같다. 모든 condition이 만족해야한다
SELECT column1, column2
FROM table_name
WHERE condition1 AND condition2;
OR Syntax
//condition중 하나라도 만족
SELECT table_name
WHERE condition1 OR condition2;
NOT Syntax
SELECT column1, column2
FROM table_name
WHERE NOT condition;
Example
// AND : Customers 테이블에서 country가 Germany이고 city가 Berlin인 record 추출
SELECT * FROM Custormers
WHERE country = 'Germany' AND city = 'Berlin';
// OR : Customers 테이블에서 city가 Berlin이거나 Newyork인 record를 추출
SELECT * FROM Customers
WHERE city = 'Berlin' OR city = 'Newyork';
// NOT : Customers 테이블에서 city가 Berlin이 아닌 record를 추출
SELECT * FROM Customers
WHERE NOT city = 'Berlin';
// 결합, AND와 OR
참고
https://been2.tistory.com/43 : sql 문법
https://donghak-dev.tistory.com/156 : sql 문법
https://mozi.tistory.com/216 : 비교연산자
'DB > SQL' 카테고리의 다른 글
[Oracle]계층형 쿼리 구조(Hierarchy Query) 개념편 (0) | 2023.02.02 |
---|