[기본형식]
SELECT 컬럼명1, 컬럼명2..... .5
FROM 테이블명 .1
WHERE 조건절 .2
GROUP BY 칼럼명 .3
HAVING 조건절 (GROUP묶은 다음에 조건 줄 때 ) .4
ORDER BY 칼럼명[ASC|DESC] => 오름차순 혹은 내림차순 .6
select * from dept;
select * from emp;
emp 테이블에서 사원번호, 사원이름, 직업을 출력해보세요.
SQL> select empno,ename,job from emp;
emp 테이블에서 사원번호, 급여, 부서번호를 출력해보세요.
단,급여가 많은 순서대로 출력SQL> select empno,sal,deptno from emp order by sal desc;
emp 테이블에서 사원번호, 급여, 입사일을 출력해보세요.
단,급여가 적은 순서대로 출력SQL> SQL> select empno,sal,hiredate from emp order by sal asc;
emp 테이블에서 직업,급여를 출력해보세요.
단,직업명으로 오름차순,급여로 내림차순 정렬해서SQL> select job,sal from emp order by job asc,sal desc;
emp 테이블에서 급여가 2000 이상인 사원의 사원번호, 사원이름, 급여 출력하기
SQL> SELECT ENAME, SAL FROM EMP WHERE SAL > 2000
emp 테이블에서 입사일이 '81/02/20'인 사원의 사원번호,이름,입사일을 출력해보세요
SQL> select empno,ename,hiredate from emp where hiredate = '81/02/20';
emp 테이블에서 직업이 'SALESMAN'인 사람들의 이름,직업,급여를 출력해보세요
단, 급여가 높은 순서대로SQL> select ename,job,sal from emp where job = 'SALESMAN' order by sal desc;
큰 따옴표는 생략가능
SQL> select empno, ename as "no", ename as "na" from emp; SQL> select empno, ename as no, ename as na from emp;
as와 큰 따옴표 " " 는 생략이 가능하다 (공백문자가 있으면 안됨 = > 사원 번호)
SQL> select empno, ename as "no", ename as "na" from emp; SQL> select empno, ename as no, ename as na from emp;
급여가 3000이상인 사원들의 모든 정보를 출력하세요
SQL> select * from emp where sal >= 3000;
부서번호가 30번이 아닌 사람들의 이름과 부서번호를 출력해보세요.
SQL> select ename, deptno from emp where deptno != 30;
MYSQL 에서 제공하는 논리 연산자
부서번호가 10번이고 급여가 3000 이상인 사원들의 이름과 급여를 출력하세요
SQL> select ename,sal from emp where deptno = 10 and sal >= 3000;
직업이 SALESMAN 이거나 MANAGER인 사원의 사원번호와 부서번호를 출력하세요
SQL> select empno,deptno from emp where job='SALESMAN' or job='MANAGER';
부서번호가 10번이거나 20번인 사원번호와 이름, 부서번호를 출력하세요
SQL> select empno,ename,deptno from emp where deptno=10 or deptno=20;
IN 연산자를 사용한다면?
SQL> select empno,ename,deptno from emp where deptno in(10,20)
ANY 연산자 (조건을 비교할 때 어느 하나라도 맞으면 true)
SQL> select empno,sal from emp where sal > any(1000,2000,3000); ==> 결과적으로는 급여가 1000 이상인 row를 select 하게 된다
ALL 연산자 (조건을 비교할 때 조건이 모두 맞으면 true)
SQL> select empno, sal from emp where sal > all(1000,2000,3000) ==> 결과적으로는 급여가 3000 이상인 row를 select 하게 된다
https://www.java4coding.com/contents/mysql/mysql-logical-operators
급여가 1000과 2000 사이인 사원들의 사원번호, 이름, 급여를 출력하세요
SQL> select empno,ename,sal from emp where sal >= 1000 and sal <=2000;
BETWEEN A AND B 연산자를 사용한다면?
SQL> select empno,ename,sal from emp where sal between 1000 and 2000;
사원이름이 FORD와 SCOTT 사이의 사원들의 사원번호, 이름을 출력하세요
SQL> select empno,ename from emp where ename between 'FORD' and 'SCOTT';
*null이면 비교자체가 불가하다
커미션이 NULL인 사원의 사원이름과 커미션을 출력하세요
SQL> select ename,comm from emp where comm is null;
커미션이 NULL이 아닌 사원의 사원이름과 커미션을 출력해보세요
SQL> select ename,comm from emp where comm is not null;
사원이름이 'FORD'인 사원이 존재하면 사원의 이름과 커미션을 출력하기
SQL> select ename,comm from emp where exists(select ename from emp where ename='FORD');
사원이름이 'J'로 시작하는 사원의 사원이름과 부서번호를 출력
SQL> select ename,deptno from emp where ename like 'J%';
사원이름에 'J'가 포함되는 사원의 사원이름과 부서번호를 출력
SQL> select ename,deptno from emp where ename like '%J%';
사원이름의 두 번째 글자가 'A'인 사원의 이름,급여,입사일을 출력하기
SQL> select ename,sal,hitedate from emp where ename like '_A%';
사원이름의 두 번째 글자가 'A'인 사원의 이름,급여,입사일을 출력하기
SQL> select ename,sal,hiredate from emp where ename like '%ES';
입사년도가 81년인 사원들의 입사일과 사원번호를 출력해보세요
SQL> select hiredate,empno from emp where hiredate like '1981%';