-
02 SELECT 구문 - 연산자, distinct, cast, concat코린이 유치원/SQL반 2022. 5. 26. 01:10
오늘은 정보를 조회할 때 사용하는 SELECT 구문을 배워보자 go!
SELECT (조회)
우리가 정보를 데이터 베이스에 저장하는 이유는 무엇일까?
👉 정보를 기록하려고. 그럼 왜 기록해
👉 나중에 필요할 때 찾아봐야 되지 않겠어?
우리가 제일 알아야 할 구문중 하나가 SELECT 구문
01 SELECT 기본 구문
-- SELECT 기본구문 -- SELECT 조회 컬럼 별칭 -- FROM 테이블이름 별칭 -- WHERE 제약조건 -- GROUP BY 그룹화할 기준 컬럼 -- HAVING 조건 -- ORDER BY 정렬기준 컬럼 ASC/DESC
- 항목
- SELECT 절: 조회할 컬럼을 지정. 모든 컬럼 조회시 * 사용. 별칭 부여 가능
- FROM 절: 조회 대상 테이블 이름. 별칭 부여 가능
- WHERE 절: 조회할 행의 선택 조건
- GROUP BY절: 조회시 어떤 칼럼의 값이 같은 것끼리 묶어서 조회할지 지정
- HAVING절: 조회시 그 결과에 대한 조회조건 지정
- ORDER BY절: 조회결과 정렬(ASC: 오름차순(디폴트, 생략 가능)/ DESC:내림차순)
** 필수(생략 불가), 옵션(생략 가능)
*** 당연히 조회를 하려면 어떤 테이블에서 어떤 컬럼을 정해야 할지 알려주는 줘야 하잖아요!
02 연산자
- 컬럼이나 상수값에 사칙 연산 이용
- SELECT 조회 칼럼에 사용시 연산은 행 단위로 이루어짐
- 연산자:
- +, -, *, / : 근본 더하기, 빼기, 곱하기, 나누기 ssap가능
- %, MOD: 나머지 연산자
- DIV: 몫 연산자
- 연산자 우선 지정은 ()로 묶기
03 WHERE 절에서 사용하는 주요 연산자
연산자 설명 AND, OR 논리 연산자로 조건이 하나 이상일 경우 사용
AND: 두 조건 모두 만족 할때, OR: 둘중 하나만 만족할 때=, <> (!=), >, < >=, <- =: 같은 것 조회, != <>: 같지 않은 것 조회
>: 큰 값 조회, <: 작은 값 조회BETWEEN a AND b a와 b사이의 데이터를 조회(a, b 값 포함)
ex) 10보다 크고 20보다 작은 값을 갖고 있는 행in (list) list의 값 중 어느 하나와 일치하는 데이터를 조회 LIKE 문자 형태로 일치하는 데이터 조회 (%, _사용) IS NULL NULL 값 가진 데이터 조회 NOT BETWEEN a AND b a와 b 사이에 있지 않은 데이터 조회(a, b값 포함 X) NOT IN (list) list의 값과 일치하지 않는 데이터 조회 NOT LIKE 문자 형태와 일치하지 않는 데이터 조회 IS NOT NULL NULL 값 가지지 않는 데이터 조회 ** WHERE 절은 update, delete, select 에서 행 선택할 때 사용
** 조건 여러개인 경우 and 나 or로 연결
** and는 or보다 우선순위가 높기 때문에, 우선 순위 바꾸고 싶을 땐 ( ) 사용
** NOT은 앞에 붙는다는 것을 기억
04 코드 예시
솔직히 저런 표 읽어봤자 이해 안된다.직접 코드 따라해봐야 이해 가넝~!
use hr; -- 사용할 database 지정 select * from emp -- emp 테이블에 있는 모든 열 조회
** 사용할 database를 지정해서, 어떻게 열과 행이 구성된 테이블인지 확인하기 위해 *로 모든 열 조회!
다음과 같은 테이블이 등!쟝!
이 글을 보고 있는 누군가가 있다면, 나의 코드를 이용해 당신의 테이블에 적용해 boa
- 모든 column 조회
select * from emp;
- 일부 조회: emp_id, emp_name, job만 조회
-- SELECT 조회할 열 이름 from 테이블 이름 select emp_id, emp_name,job from emp; -- 열 개수가 많을 땐 세로로 쓰기 ssap 가넝! select emp_id, emp_name, job from emp;
- 중복 값 제거: 나는 무슨무슨 job이 있는지 보고싶음. 그러니깐 중복되는 값은 모두 제거 ㄱㄱ
select distinct job from emp;
job 열의 중복행 제거 - 여러 행 중복 값 제거: 선택된 컬럼 조합의 중복값이 제거되기 때문에 한 열 내 중복값은 존재
- 별칭부여: 열 이름 대신에 별칭 사용하고 싶다면 별명을 붙여boza.
-- 기본 구문: select 컬럼명 as 별칭 select emp_id as "직원 ID", emp_name as "직원 이름", hire_date 입사일, -- as는 생략 가능 salary 급여, dept_name "소속 부서" from emp;
** as로 별칭 부여, but 생략 가능
** 별칭 띄어쓰기 할땐 "" 꼭 큰따옴표로 묶어주긔
열 이름이 바뀐것 확인 가능 - 연산자 사용
-- EMP 테이블에서 직원의 이름(emp_name), 급여(salary) 그리고 급여 + 1000 한 값 조회 select emp_name, salary salary + 1000 from emp; -- EMP 테이블에서 salary, comm_pct, salary * comm_pct 한 값 조회 select salary, comm_pct, salary * comm_pct from emp;
emp_name, salary, salary + 1000 한 값 조회 salary, comm_pct, salary * comm_pct 한 값 조회 - cast 함수: 데이터 타입 변환해주는 함수
select cast('2022-05-25' as date) select cast('10:30:22 as time)
** select cast (값 as 변환할 데이터 타입)
- concat 함수: 여러개 값 합쳐서 문자열로 반환
-- EMP 테이블에서 직원이름(emp_name)과 급여(salary)을 조회. 급여 앞에 $를 붙이기 select emp_name, concat('$', salary) as "salary" -- concat으로 salary 모든 행 앞에 $넣어주고 salary로 호출 from emp;
졸려서분량 조절을 위해 WHERE은TO BE CONTINUED...
(우리는 유치원이니깐👽)
'코린이 유치원 > SQL반' 카테고리의 다른 글
04 - 1 DDL (데이터 타입, 제약 조건) (0) 2022.06.02 03 - 3 JOIN (Self Join, Outer Join) (0) 2022.06.02 03 - 2 JOIN (Inner Join) (0) 2022.06.02 03 - 1 JOIN (부모 테이블, 자식 테이블 , Foreign Key) (0) 2022.06.01 01 데이터베이스 개요 (0) 2022.05.25 - 항목