티스토리 뷰

 

SQL Select문 연습하기


 

 

 

 

1. emp 테이블에서 사원을 검색합니다.

 


 

select *

from emp;

 

 

 

 

2. distinct 키워드로 emp테이블의 job 컬럼에서 중복되어 출력되는 값을 제거합니다.


select distinct job

from emp;

 

 

 

 

 

3. 검색한 사원 중 에서 고용된 날짜가 1982년 이후의 사원의 이름을 검색합니다.


select ename

from emp

where hiredate > '1982-01-01';

 






4.
select 절을 통해 dept 테이블에서 dname이라는 컬렴명을

as 키워드로 부서명이라는 별칭으로,

loc 컬럼명을 부서위치라는 별칭을 사용하여 검색합니다.


 

select dname as 부서명, loc as 부서위치

from dept;

 

 

 

 

 

5. select 절을 통해 ||'-'|| 연결 연산자로

emp 테이블의 empno 컬럼과 ename 컬럼을 연결하여 검색합니다.


select empno || '-' || ename as 명단

from emp;

 

 

 

 

 

 

6. select 절을 통해 emp 테이블의 sal 컬럼에 12를 곱하여서 검색하고

sal 컬럼에 12를곱한 값에 comm 칼럼을 더하여 검색합니다.


 

select ename, sal, sal*12, sal*12+comm

from emp;

 

 

 

 

 

 

7. where 절의 조건에 의해서 =( ) 이퀄 비교 연산자로

deptno 10 컬럼의 값이 인 컬럼들을 검색합니다.


 

select empno, ename, deptno

from emp

where deptno=10;

 

 

 

 

 

8

-- ⎼where 절의 조건에 의해서 >=( ) 라이트 앵글브래킷 이퀄 비교 연산자로

sal 컬럼의 값이 2000 이상인 칼럼들을 검색합니다.


 

select empno, ename, sal

from emp

where sal >= 200;

 

 

 

 

 

9. where 절의 조건에 의해서 =( ) 이퀄 비교 연산자로

ename 컬럼의 값이 FORD인 컬럼을 검색합니다.


 

select empno, ename

from emp

where ename = 'FORD';

 

 

 

문자와 날짜 리터럴은 반드시 단일 따옴표(‘) 를 사용하지만 숫자 상수는

단일 따옴표를 사용하지 않아도 됩니다.

 

 

문자 리터럴의 경우에는 대소문자를 구별하며 검색시 대문자로 입력한 내용을

소문자로 검색하면 검색이 되지 않습니다.

 

 

 

 

 

 

 

10. where 절의 조건에 의해서 >= 비교연산자로

hiredate 컬럼의 값이 1982/01/01 이상인 컬럼들을 검색합니다..

 


 

select empno, ename, hiredate

from emp

where hiredate >= '1982/01/01';

 

 

 

 

 

 

 

11. where 절의 조건에 의해서 =( ) 이퀄 비교 연산자로

deptno 컬럼의 값이 10인 컬럼과 job 컬럼의 값이 CLERK 인 컬럼을 검색하고

and 논리연산자로 두 가지 조건을 모두 만족한 컬럼을 검색합니다.

 


 

select empno, ename, job, deptno

from emp

where deptno = 10 and job = 'CLERK';

 

 

 

 

 

 

12. where 절의 조건에 의해서 >=( ) 라이트 앵글브래킷 이퀄 비교 연산자로 hiredate 컬럼 의 값이 1982/01/01 이상인 컬럼과 job 컬럼의 값이 MANAGER 인 컬럼을 검색하고 or 논리연산자로 두 가지 조건 중에서 한 가지만 만족하는 컬럼을 검색합니다.


 

select empno, ename, hiredate

from emp

where hiredate >='1982/01/01' or job = 'MANAGER';

 

 

 

 

 

 

 

13. where 절의 between 1981/05/05 and 1981/12/31 연산자로

hiredate 컬럼들의 조건 을 검색합니다.

 


 

select empno, ename, hiredate

from emp

where hiredate between '1981/05/05' and '1981/12/31';

 

 

-  between은 이상과 이하일때만 사용하고 초과 미만을 표현할 때는 '<'와 '>'를 사용

 

 

 

 

 

 

 

14. emp 테이블에서 job MANAGER, SALESMAN, SALESOMAN 이 인 사원의 정보를 검색합니다.

 


 

select empno, ename, job

from emp

where job in ('MANAGER','SALESMAN', 'SALESOMAN');

 

 

 

 

 

 

 

15. emp 테이블에서 사원번호가 7369, 7521, 7698이 아닌 사원의 정보를 검색합니다.


 

select empno, ename, job

from emp

where empno not in(7369, 7521, 7698);

 

 

 

 

 

 

16. emp 테이블에서 이름이 J문자로 시작하는 사원의 정보를 검색합니다.


select empno, ename, hiredate, sal

from emp

where ename like 'J%';

 

 

 

 

 

 

 

 

17. emp 테이블에서 이름이 N문자로 끝나는 사원의 정보를 검색합니다.


select empno, ename, hiredate, sal

from emp

where ename like '%N';

 

 

 

 

 

 

 

18. emp 테이블에서 이름에서 두 번째 문자가 A 문자인 사원의 정보를 검색합니다.


 

select empno, ename, hiredate, sal

from emp

where ename like '_A%';

 

 

 

 

 

19. emp 테이블에서 이름에 N문자를 포함하는 사원의 정보를 검색합니다.

 


 

select empno, ename, hiredate, sal

from emp

where ename like '%N%';

 

 

 

 

 

 

 

20. emp 테이블에서 comm이 Null인 사원의 정보를 검색합니다.

 


 

select empno, ename, job, comm

from emp

where comm is null;

 

 

 

 

 

 

 

21. emp 테이블에서 영문자인 값을 소문자로 변환하여 검색한다


select empno, ename, hiredate

from emp

where lower(ename) ='ford';

 

 

 

 

 

 

 

22. emp 테이블에서 영문자인 값을 대문자로 변환하여 검색한다


select empno, ename, hiredate

from emp

where ename =upper('ford');

 

 

 

 

 

 

 

23. dept 테이블에서 각 단어의 첫번째 문자를 대문자로 나머지 문자는 소문자로 변환하여 검색한다.


select deptno, initcap(dname), initcap(loc)

from dept

where deptno = 10;

 

 

 

 

 

 

 

24. dept 테이블에서 특정 컬럼을 특정값을 연결한다.

 


select deptno, dname, concat(deptno, dname) as d_noname

from dept

where deptno = 10;

 

 

 

 

 

 

25. emp 테이블에서 이름을 1번째 글자에서 시작하여 2번째 글자까지만 검색한다


 

 

select substr(ename, 1, 2)

from emp;

 

 

 

 

 

 

26. dept 테이블에서 문자열의 길이를 구한다


select deptno, dname, length(dname)

from dept

where deptno = 10;

 

 

 

 

 

27. dept 테이블에서 명명된 문자의 위치를 구한다.


select deptno, dname, instr(dname, ’G')

from dept

where deptno = 10;









28. dept LOC 테이블에서 컬럼에서 특정 문자열을 가진 열만 검색한다


select deptno, dname, loc

from dept

where instr(loc,'DALLAS')>0;

 

 

 

 

 

 

 

29. dept LOC . 테이블에서 컬럼에서 특정 문자열을 가진 열을 제외하고 검색한다


select deptno, dname, loc

from dept

where instr(loc,'DALLAS')<1;

 

 

 

 

 

 

30. dept 테이블에서 왼쪽 문자 자리를 '*'로 채운다.


select deptno, dname, lpad(dname, 15, '*')

from dept

where deptno = 10;

 

 

 

 

 

 

 

31. dept 테이블에서 오른쪽 문자 자리를 '*'로 채운다


select deptno, dname, rpad(dname, 15, '*')

from dept

where deptno = 10;

 

 

 

 

 

32. dept 테이블에서 왼쪽 공백 문자를 지운다.


 

select deptno, dname, trim(leading ' ' from dname)

from dept

where deptno = 10;

 

 

 

 

 

 

 

33. dept 테이블에서 특정 문자열을 대체


select deptno, dname, translate(dname, 'NG', 'SO' )

from dept

where deptno = 10;

 

 

 

 

 

34. dept 테이블에서 특정 문자열을 대신한다.


select deptno, dname, replace(dname, 'NG', 'SO' )

from dept

where deptno = 10;

 

 

 

 

 

 

 

 

 


이정도가 Select 문의 기초라고 할 수 있는데요.

주석을 달면서 코딩을 했기 때문에 전부 이해는 했습니다.

그래도, 나중에 까먹기 전에 또 봐야 할 것 같습니다.

 

이렇게 데이터베이스를 다시 공부하니 새로운 것 같습니다..

그리고 항상 공부할 때마다 느끼는 거지만 아직 갈 길이 멀다고 생각합니다.

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함