[MariaDB] and(&&) 연산자 / or(||) 연산자 / between(and 대체) / in(or 대체) / is null / 특정 단어로 시작하는, 끝나는 데이터 출력 / like "%" / like "_" / 중복제거 distinct / limit 출력 제한 / 지정구간 출력 / order..
직책(job)이 "clerk" 이거나 "salesman"인 사원에 대한 사원번호(empno), 사원이름(ename), 직책(job), 부서번호(deptno)을 출력
select empno, ename, job, deptno
-> from emp
-> where job = "clerk" or job="salesman";
직책(job)이 "clerk" 이거나 "salesman"인 사원 중 부서번호(deptno)가 10번이 아닌 사원에 대한 사원번호, 사원이름, 직책, 부서번호을 출력
select empno, ename, job, deptno
-> from emp
-> where (job = "clerk" or job = "salesman") and deptno != 10;
급여(sal)가 1000원 이상 2000원 이하인 사원에 대한 사원번호, 사원이름, 급여를 출력 1
select empno, ename, sal
-> from emp
-> where sal >= 1000 and sal <=2000;
급여(sal)가 1000원 이상 2000원 이하인 사원에 대한 사원번호, 사원이름, 급여를 출력 2, between 함수 사용
select empno, ename, sal
-> from emp
-> where sal between 1000 and 2000;
(단, 'between 2000 and 1000' 와 같이 사용한다면 출력이 안됨. 항상 작은 수 부터 명시해줄 것)
직책(job)이 "clerk" 이거나 "salesman" 이거나 "manager"인 사원의 사원번호, 사원이름, 직책을 출력 1
select empno, ename, job
-> from emp
-> where job = "clerk" or job = "salesan" or job = "manager";
직책(job)이 "clerk" 이거나 "salesman" 이거나 "manager"인 사원의 사원번호, 사원이름, 직책을 출력 2, in 함수 사용
select empno, ename, job
-> from emp
-> where job in ( "clerk", "salesman", "manager");
comm(commission)이 null 값(미정) 설정된 사원의 사원번호, 사원이름, 수당을 출력, is null 사용
select empno, ename, comm
-> from emp
-> where comm is null;
아래 몇개의 예제는 Java에서 String 클래스의 StartWith, endWith를 생각하시면 됩니다.
사원이름(ename)이 's'로 시작하는 사원에 대한 사원번호, 사원이름을 출력
select empno, ename
-> from emp
-> where ename like 's%';
사원이름(ename)이 's'로 끝나는 사원에 대한 사원번호, 사원이름을 출력
select empno, ename
-> from emp
-> where ename like '%s';
사원이름에 "CO"가 들어가 있는 사원에 대한 사원번호, 사원이름을 출력
select empno, ename
-> from emp
-> where ename like "%CO%";
2011년 입사한 사원에 대한 사원번호 , 사원이름, 급여, 입사일 출력, like 사용
select empno, ename, sal, hiredate
-> from emp
-> where hiredate like "2011%";
2월 달에 입사한 사원에 대한 사원번호 , 사원이름, 급여, 입사일 출력
select empno, ename, sal, hiredate
-> from emp
-> where hiredate like "%02%";
위 결과를 통해 알 수 있듯이 2월달 뿐만 아니라 2일에 입사한 사원까지 같이 출력된 것을 확인할 수 있습니다.
따라서 아래와 같이 코드를 수정해야합니다.
select empno, ename, sal, hiredate
-> from emp
-> where hiredate like "%-02-%";
사원이름이 4자인 사원에 대한 사원번호 , 사원이름, 급여, 입사일 출력
select empno, ename, sal, hiredate
-> from emp
-> where ename like "____";
(위 예제 부정) 사원이름이 4자가 아닌 사원에 대한 사원번호 , 사원이름, 급여, 입사일 출력
select empno, ename, sal, hiredate
-> from emp
-> where not ename like "____";
job 데이터 리스트를 중복없이 출력
select distinct job from emp;
deptno(부서번호) 데이터 리스트를 중복없이 출력
select distinct deptno from emp;
job, deptno 데이터 리스트를 중복없이 출력
select distinct job, deptno from emp;
emp 테이블의 데이터 전체를 선택 후 출력
select * from emp;
지정한 숫자만큼의 데이터 출력 (출력제한)
select * from emp limit 3;
지정한 구간만큼의 데이터 출력(출력 구간 제한)
*단, Java에서 사용하는 Index와 동일한 구조, 0번부터 시작
select * from emp limit 1, 3;
order dy 출력 정렬(오름차순 asc, 내림차순 desc)
* 차순을 명시를 하지않을 경우 기본 값은 오름차순(asc)
부서 번호를 기준으로 오름차순으로 정렬해서 사원번호, 사원이름, 부서번호, 직책을 출력
select empno, ename, deptno, job
-> from emp
-> order by deptno;
사원이름을 기준으로 오름차순으로 정렬해서 사원번호, 사원이름 출력
select empno, ename
-> from emp
-> order by ename;
사원이름을 기준으로 내림차순으로 정렬해서 사원번호, 사원이름 출력
select empno, ename
-> from emp
-> order by ename desc;
부서 번호를 먼저 정렬한 후 직책으로 다시 정렬해서 사원번호, 사원이름, 부서번호, 직책 출력
정렬한 부서 번호는 유지한 채, job의 알파벳 순서대로 한번 더 정렬한다는 개념
select empno, ename, deptno, job
-> from emp
-> order by deptno, job;
컬럼명을 넣지않고 컬럼의 순서(숫자) 표기해서 정렬
select empno, ename, deptno, job
-> from emp
-> order by 3;
새이름을 통해서 정렬이 가능하다.
select empno, ename, deptno no, jo
-> from emp
-> order by no;