본문 바로가기

Database

4. SQL언어의 종류 / SELECT / WHERE / 연산자

SQL 언어의 종류

1. DQL(질의어, Data Query Language)

: SELECT(조회)

2. DML(데이터 조작어, Data Manipulation Language) → 입력 후 COMMIT;

: INSERT(입력), UPDATE(수정), DELETE(삭제), MERGE(입력수정삭제 한번에 실행)

3. DDL(데이터 정의어, Data Definition Language)

: CREATE(생성), ALTER(변경), DROP(삭제), RENAME(이름 변경), TRUNCATE(데이터 삭제)

4. DCL(데이터 제어어, Data Control Language)

: GRANT(권한부여), REVOKE(권한회수)

5. TCL(트랜잭션 제어 언어, Transaction Control Language)

: COMMIT(저장), ROLLBACK(작업취소), SAVEPOINT(특정시점 기준 rollback)

 

 

SELECT

테이블에 저장된 데이터를 조회하기 위한 명령어

-- 형식
SELECT 컬럼이름(들)
FROM 테이블이름
[WHERE 검색조건(들)]
[GROUP BY group을 지을 속성이름]
[HAVING  GROUP의 검색조건(들)]
[ORDER BY속성이름[ASC/DESC]]

1. 특정 컬럼만 조회

SELECT​ 컬럼이름1, 컬럼이름2
FROM 테이블이름;

2. 모든 컬럼 조회 

SELECT * FROM 테이블이름;

* SQL문 작성 시 유의사항

1. 대소문자를 구분하지 않는다.

2. 한 줄 혹은 여러 줄에 입력할 수 있다.

3. 일반적으로 키워드는 대문자로 입력하고 다른 모든 단어(테이블이름, 열이름 등)은 소문자로 입력을 권장한다.

    ex) SELECT bookid, bookname FROM newbook;

4. 가장 최근의 명령어 한 개가 SQL buffer에 저장된다.

5. SQL문 마지막 절 끝에 ; 를 적어 명령의 끝을 표시한다.

 

WHERE

: 데이터 조회 시 사용자가 원하는 정보만을 조회하고 싶을 때 사용

SELECT 컬럼이름(들)
FROM 테이블이름
WHERE 검색조건(들);

 

비교연산자

= 같다 >=  / <=  이상 / 이하
> / < 초과 / 미만 <> / != / ^= 같지 않다

 

 

논리연산자

1. AND

 : 두 가지 조건이 모두 만족

-- newbook 테이블에 id가 10보다 작고 price가 20,000원 이상인 것 
SELECT * FROM newbook WHERE id <= 10 AND price >= 20000

2. OR

 : 두 가지 조건 중 하나라도 만족

-- newbook 테이블에 id가 10보다 작거나 price가 10,000원 이상인 것 
SELECT * FROM newbook WHERE id <= 10 OR price >= 10000

3. NOT  A

 : A에 만족하지 않도록 결과 조회 

-- newbook 테이블에 price가 50,000원 이상인 경우 조회 하지 말 것 
SELECT * FROM newbook WHERE NOT price >= 50000

 

WHERE 절에서 사용할 수 있는 기타 연산자 

1. BETWWEN  A  AND  B

  : A와 B 사이의 데이터 출력(A, B도 포함)

-- 사원번호가 1000에서 2000사이의 사원을 조회
SELECT * FROM emp_table WHERE empno BETWEEN 1000 AND​​ 2000;

2. NOT BETWWEN A AND B 

 : A와 B 사이에 있지 않은 데이터 출력(A, B 미포함)

-- 사원번호가 1000에서 2000사이가 아닌 사원을 조회 
SELECT * FROM emp_table WHERE empno BETWEEN 1000 AND 2000;

3. LIKE

 : 문자 형태로 일치하는 데이터 출력(%, _ 사용)  → %: 포함문자   /   _: 문자 수

-- 이메일주소 중 _ 앞 3글자가 존재하는 사원 조회 
SELECT * FROM emp_table WHERE email Like '___%#_%' ESCAPE #

4. NOT LIKE

 : 문자 형태와 일치하지 않는 데이터 출력

-- 이메일주소 중 a로 시작하지 않는 사원 조회 
SELECT * FROM emp_table WHERE email NOT Like 'a%'

5. IS NULL

 : NULL 값을 가진 데이터 출력 

-- 보너스가 NULL인 사원 조회 
SELECT * FROM emp_table WHERE bonus IS NULL;

6. IS NOT NULL

: NULL값이 아닌 데이터 출력

--  보너스가 있는 사원 조회
SELECT * FROM emp_table WHERE bonus IS NOT NULL;

7. IN(list) 

 : list의 값 중 어느 하나와 일치하는 데이터 출력

-- 부서번호가 20, 30인 사원들의 데이터 출력
SELECT * FROM emp_table WHERE deptno IN(20, 30)

8. NOT IN(list)

list의 값과 일치하지 않는 데이터 출력

-- 부서번호가 20, 30이 아닌 사원들의 데이터 출력
SELECT * FROM emp_table WHERE deptno NOT IN(20, 30)
 

 

'Database' 카테고리의 다른 글

6. DML/TRANSACTION  (0) 2023.05.04
5. 단일함수/그룹함수/CASE문  (0) 2023.05.04
3. 인덱스  (0) 2023.05.04
2. 테이블 생성,변경,삭제 / 자료형 / 제약조건  (0) 2023.05.04
1. DBMS란?  (0) 2023.05.04