DB/SQL

[SQL] SQL 문법정리01_select/where/and,or,not/order by

리오토리 2023. 1. 19. 16:18

많이 접하는 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