SELECT

김지원·2023년 6월 30일
0
post-thumbnail

SELECT

실행계획

-- 데이터 읽기 (SELECT)

select * from EMP;
-- 모든 열 가져오기 / SELECT * FROM 테이블명

select ENAME, JOB from EMP;
-- 선택한 열 가져오기 / SELECT 열1, 열2, 열3 FROM 테이블명

select * from EMP where ENAME = 'SMITH';
-- 조건에 맞는 행의 모든 열 가져오기 / SELECT * FROM 테이블명 WHERE 조건

select ENAME, JOB from EMP where EMPNO = 7369;
-- 조건에 맞는 행의 선택한 열 가져오기 / SELECT 열1, 열2, 열3 FROM 테이블명 WHERE 조건

select ENAME as '이름' from EMP;
-- 별칭 주기

select distinct JOB from EMP;
-- 중복 제거 / 열에서 중복된게 있으면 1개만

select concat(ENAME ,'s job is ', JOB) from EMP;
-- 연결연산자

select ENAME, concat((SAL*12)+ifnull(COMM, 0), '만원') as '연봉' from EMP;
-- 연산자 활용 예시      ifnull

-- and, or, between, in     is (not) null
select * from EMP where SAL > 2000;
select * from EMP where COMM is not null;
select * from EMP where SAL = 800 and DEPTNO = 20;
select * from EMP where SAL = 800 or DEPTNO = 20;
select * from EMP where HIREDATE between '1981-04-01' and '1987-05-02';
select * from EMP where SAL in (800, 1300);

-- like : 문자열 패턴 매칭에 사용되는 비교 연산자
-- 퍼센트 % : 0개 이상의 임의의 문자열을 나타냅니다.
-- 언더스코어 _ : 정확히 하나의 임의의 문자를 나타냅니다
select * from EMP where ENAME like '%M%';
select * from EMP where ENAME like '_M%'; -- M 앞에는 문자 하나만

-- 정렬 : order by 열이름 asc(오름차순)/desc(내림차순)
select * from EMP where JOB = 'CLERK' order by sal desc;
select * from EMP where JOB = 'CLERK' order by sal asc;
select * from EMP order by SAL desc, COMM desc;

-- 변수 바인딩
set @sal := 800;
-- @sal이라는 변수에 800을 할당

select * from EMP where SAL = @sal;
-- EMP 테이블에서 SAL 열 값이 @sal 변수와 동일한 행들을 선택


-- 정규 표현식
-- ChatGPT 도움
-- ex) mysql 정규표현식으로 칼럼 id에 숫자와 하이픈이 포함되어 있는 모든 행을 찾는 법
select * from professor;

SELECT * FROM professor WHERE id REGEXP '[0-9-]+';
profile
https://github.com/k7850

0개의 댓글