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 |