4~5강
select table_name from user_tables;
--테이블의 구조를 보기위한 명령문?
describe student;
select * from student;
--현재 테이블에서 각각의 테이블의 스키마를 살펴보고 검색하여 확인하시오?
desc STUDENT;
desc SUBJECT;
desc enrol;
--중복데이터를 제거하는 명령문인 distinct?
select * from emp;
select job,deptno
from emp;
select distinct job,deptno
from emp;
SELECT distinct job
from emp;
select * from student;
select stu_dept from student;
select distinct stu_dept
from student;
select distinct stu_dept,stu_class
from student;
--alias를 이용한 별칭 사용하기
SELECT STU_NO AS ID,STU_NAME AS NAME
FROM STUDENT;
--파생변수를 만들어서 별칭을 사용하는 방법
SELECT ENAME,SAL,COMM, SAL*12+COMM AS ANNSAL
FROM EMP;
SELECT ENAME,JOB FROM EMP;
SELECT STU_DEPT || '과' || STU_NAME ||'입니다' 학과성명
FROM STUDENT;
--조건절인 WHERE?
--학생테이블에서 컴퓨터정보과의 학생들을 검색하라
SELECT * FROM STUDENT
WHERE STU_DEPT = '컴퓨터정보';
--학생테이블에서 2학년학생인 컴퓨터정보과의 학생을 검색하라
SELECT * FROM STUDENT
WHERE STU_DEPT='컴퓨터정보' AND STU_GRADE=2;
--학생테이블에서 몸무게 60~70사이의 학생들을 검색하라
SELECT * FROM STUDENT
WHERE STU_WEIGHT BETWEEN 60 AND 70;
--학생테이블에서 2014학번의 학생들을 검색하라
SELECT * FROM STUDENT
WHERE STU_NO BETWEEN 20140001 AND 20149999;
--LIKE를 이용한 검색방법?
--학생테이블에서 김씨성을 가진 학생들을 검색하시오
SELECT * FROM STUDENT
WHERE STU_NAME LIKE '김%';
--학생중에 두번째 문자가 '가'인 학생을 검색하라
SELECT * FROM STUDENT
WHERE STU_NAME LIKE '_가%';
--학생들중 2014학번을 가진
SELECT * FROM STUDENT
WHERE STU_NO LIKE '2014%';
--null의 여부를 알수 있는 방법
SELECT * FROM STUDENT
WHERE STU_HEIGHT IS NOT NULL;
--학생테이블에서 키가 널인 학생이름을 검색하라
SELECT STU_NAME FROM STUDENT
WHERE STU_HEIGHT IS NULL;
--IN이라는 기능?
--학생테이블에서 컴퓨터정보나 기계 학생의 학번과 이름을 검색하라
SELECT STU_NO,STU_NAME
FROM STUDENT
WHERE STU_DEPT IN('컴퓨터정보','기계');
--ORDER BY에대한 기능? DESC=내림차순 ASC=낮은수 EX) 1은 학번 2는 이름
SELECT STU_NO,STU_NAME
FROM STUDENT
ORDER BY 2 DESC;
SELECT EMPNO,JOB,ENAME,SAL FROM EMP
ORDER BY ENAME DESC;
--사원테이블에서 부서번호를 오름차순으로 급여를 내림차순으로 정렬하여 나타내시오
SELECT * FROM EMP
ORDER BY DEPTNO,SAL DESC;
SELECT ENAME,DEPTNO,SAL FROM EMP
ORDER BY 2,3 DESC;
--OR기능에 대한 쿼리문?
--부서번호가 30번이고 직무가 사원인 사원테이블의 정보를 검색하라
SELECT * FROM EMP
WHERE DEPTNO=30 OR JOB='CLERK';
SELECT STU_NO,STU_NAME,STU_DEPT,STU_WEIGHT-5 AS TARGET
FROM STUDENT
ORDER BY STU_HEIGHT DESC ;
SELECT * FROM STUDENT;
--사원테이블에서 급여가 3000불 이상인 사람들을 검색하라
SELECT * FROM EMP
WHERE SAL >= 3000;
--사원테이블에서 급여가 3000불인 사람들을 검색하라
SELECT * FROM EMP
WHERE SAL = 3000;
SELECT *FROM EMP
WHERE ENAME >= 'FORZ';
SELECT * FROM EMP
WHERE NOT SAL = 3000;
SELECT * FROM EMP
WHERE SAL != 3000;
SELECT * FROM EMP
WHERE SAL ^= 3000;
SELECT * FROM EMP
WHERE SAL <> 3000;
--사원테이블에서 직무가 사원이거나 분석가이거나 매니저인경우 사원들을 출력하라
SELECT * FROM EMP
WHERE JOB NOT IN ('CLERK','ANALYST','MANAGER');
--집합연산자 1)UNION UNION ALL INTERSECT MINUS
CREATE TABLE A_STUDENT
AS
SELECT * FROM STUDENT
WHERE STU_DEPT IN('기계','전기전자');
CREATE TABLE B_STUDENT
AS
SELECT * FROM STUDENT
WHERE STU_DEPT IN('전기전자','컴퓨터정보');
SELECT * FROM A_STUDENT;
SELECT * FROM B_STUDENT;
SELECT *FROM A_STUDENT
MINUS
SELECT * FROM B_STUDENT;
--125P
--1
SELECT * FROM EMP
WHERE ENAME LIKE '%S';
--2
SELECT EMPNO,ENAME,JOB,SAL,DEPTNO FROM EMP
WHERE JOB = 'SALESMAN';
--3
SELECT EMPNO,ENAME,JOB,SAL,DEPTNO FROM EMP
WHERE SAL > '2000' AND DEPTNO IN ('20','30');
SELECT EMPNO,ENAME,JOB,SAL,DEPTNO FROM EMP
WHERE SAL > 2000
INTERSECT
SELECT EMPNO,ENAME,JOB,SAL,DEPTNO FROM EMP
WHERE DEPTNO IN ('20','30');
--4
SELECT * FROM EMP
WHERE SAL <=2000 OR SAL >=3000;
--5
SELECT ENAME,EMPNO,SAL,DEPTNO FROM EMP
WHERE SAL NOT BETWEEN 1000 AND 2000
AND ENAME LIKE '%E%' AND DEPTNO = '30';
--6
SELECT * FROM EMP
WHERE COMM IS NULL AND JOB IN ('MANAGER','CLERK') AND ENAME NOT LIKE '_L%';
'오라클 SQL' 카테고리의 다른 글
오라클 SQL 7강 연습문제 (0) | 2021.02.26 |
---|---|
오라클 SQL 6강 연습문제 (0) | 2021.02.26 |
오라클 SQL 7강 (0) | 2021.02.26 |
오라클 SQL 6강 (0) | 2021.02.26 |
오라클 SQL 1~3강 (0) | 2021.02.25 |