Creative Code

오라클 명령어-(1) 본문

Oracle SQL Programming

오라클 명령어-(1)

빛하루 2023. 7. 24. 11:08
  • 명령프롬프트 sql 접속  -> sqlplus system/system (sql프로그램에 아이디 system 비밀번호 system으로 접속)
  • create user scott identified by TIGER; (사용자 scott 생성, 비밀번호는 TIGER,항상 문장끝에는 새미콜론)
  • grant resource ,connect to scott;(scott 계정에 권한 부여)
  • alter user scott account unlock;( user에 있는 제한을 해제)
  • @C:\oraclexe\app\oracle\product\11.2.0\server\rdbms\admin\scott.sql (scott.sql에 접속)
  • exit (sql 종료)
  • sqlplus scott/TIGER (sql 프로그램에 아이디 scott 비밀번호 TIGER로 접속)
  • select * from emp;

ㄴ---------------- 명령프롬프트( cmd창에서 실행) ---------------------------------------------------------------------------------------

  • select * from emp;  명령 입력 후 문장끝에서 ctrl + enter키 입력 (emp에 들어있는 데이터조회 실행) --> emp테이블에 있는 데이터를 조회한다는 뜻
  • select 컬럼명 FROM 테이블명; (테이블에 있는 컬럼을 가져온다 컬럼명이 *면 모든 컬럼)
  • desc emp; (emp 테이블의 컬럼과 제약조건, 자료형을 출력)
  • -- (한줄 주석)
  • /*  */ (여러 줄 주석)
  • SELECT DISTINCT deptno FROM emp;(열이 한개인 경우(deptno) - 중복된 데이터를 제거)
  • SELECT DISTINCT job, deptno FROM emp;(열이 여러개인 경우(job,deptno) - 중복된 데이터를 제거)
  • SELECT ALL deptno FROM emp; (중복되는 열 제거 없이 그대로 출력)
  • SELECT ALL job, deptno FROM emp; (결과적으로는 SELECT job, deptno FROM emp와 다를바 없음)
  • SELECT ename, sal, sal*12+comm FROM emp;(실제로 sal*12+comm 열은 존재하지 않지만 산술 연산식으로 계산해서 출력 가능)
  • SELECT ename, sal, sal*12+comm AS commsal FROM emp;( sal * 12 + comm을 commsal로 명칭을 바꿔 열을 생성)
  • SELECT * FROM emp ORDER BY SAL; (SAL열을 기준으로 오름차순으로 정렬)
  • SELECT * FROM emp ORDER BY SAL DESC; (SAL열을 기준으로 내림차순으로 정렬)
  • SELECT * FROM emp ORDER BY deptno ASC, sal DESC; (deptno열에 대해 오름차순으로 정렬한 뒤 sal열에 대해 내림차순으로 정렬)
  • SELECT * FROM emp WHERE deptno = 30;(조건절은 where을 사용, from뒤에 쓴다. deptno가 30인 목록을 출력 등호는 하나만 사용)
  • 기본 구조 : select (컬럼명) from (테이블) where(조건식) order by ( ) ;
  • SELECT * FROM emp WHERE deptno = 30 AND job = 'SALESMAN'; (조건이 여러개인 경우, 문자열은 ' ' 를 사용해서 표현)
  • SELECT * FROM emp WHERE EMPNO = 7499 AND DEPTNO = 30;(사원번호가 7499이고 부서번호가 30인 데이터 출력)
  • SELECT * FROM emp WHERE DEPTNO = 30 OR JOB = 'CLERK';   (부서번호가 30이거나, 직업이 'CLERK'인 사원 정보 출력)
  • SELECT * FROM emp WHERE DEPTNO = 30 OR JOB = 'CLERK' order by DEPTNO ASC;( 부서번호가 30이거나 직업이 clerk인 사원 정보를 부서별로 오름차순으로 정렬)
  • SELECT * FROM emp WHERE DEPTNO = 30 OR JOB = 'CLERK' order by DEPTNO DESC; (부서번호가 30이거나 직업이 clerk인 사원 정보를 부서별로 내림차순으로 정렬)
  • SELECT * FROM emp WHERE sal*12 = 36000; (sal*12 = 36000인 데이터를 출력)
  • SELECT * FROM emp WHERE sal>=3000; (sal이 3000이상인 데이터 출력)
  • SELECT * FROM emp WHERE sal >=2500 AND JOB = 'ANALYST'; (sal이 2500이상이고 직업이 ANALYST인 데이터 출력)
  • SELECT * FROM emp WHERE ename >= 'F' (첫문자가 F이거나 그 뒤 인경우)
  • SELECT * FROM emp WHERE ename <= 'FORZ';  (FORZ를 포함한 문자열보다 사전순으로 앞에 있는 데이터를 출력)
  • SELECT * FROM emp WHERE sal != 3000; (등가비교 연산자 3개 다 같은 내용)
    SELECT * FROM emp WHERE sal <>= 3000;
    SELECT * FROM emp WHERE sal ^= 3000;
  • SELECT * FROM emp WHERE NOT sal = 3000; (논리부정 연산자 !=와 결과가 같음. 다만 NOT연산자와 IN,BETWEEN, IS NULL 연산자와 복합적으로 사용)
  • SELECT * FROM emp WHERE job IN('MANAGER','SALESMAN','CLERK'); (IN연산자를 이용한 여러 or연산 계산)
  • SELECT *FROM emp WHERE job NOT IN('MANAGER','SALESMAN','CLERK'); (NOT과 IN연산자를 활용한 여러 AND연산 계산)
  • SELECT * FROM emp WHERE sal BETWEEN 2000 AND 3000; (BETWEEN 최소값 AND 최대값 연산을 활용해 결과출력)
  • SELECT * FROM emp WHERE sal NOT BETWEEN 2000 AND 3000; (급여가 2000~3000 사이 이외의 값을 가진 데이터 출력)
  • SELECT * FROM emp WHERE ename LIKE 'S%'; (사원이름이 대문자 S로 시작하는 데이터 출력)
  • SELECT * FROM emp WHERE ename LIKE '%S',(사원이름의 마지막이 S로 끝나는 데이터 출력)
  • SELECT * FROM emp WHERE ename LIKE '_L%'; (사원이름의 두번째 글자가 L인 사원 출력)
  • SELECT * FROM emp WHERE ename LIKE '%LA%'; (사원 이름에 'LA'가 포함된 데이터를 출력)
  • SELECT * FROM SOME_TABLE WHERE SOME_COLUMN LIKE 'A\_A%' ESCAPE '\'; (검색하려는 데이터가 'A_A'인경우, \를 사용하고 escape로 탈출해준다.)
  • SELECT * FROM emp WHERE comm IS NULL; (comm이 NULL인 데이터를 출력)
  • SELECT * FROM emp WHERE comm IS NOT NULL; (comm이 NULL이 아닌 데이터만 출력)
  • SELECT * FROM emp WHERE sal > NULL OR COMM IS NULL;( sal의 데이터가 있거나 comm이 null인 데이터 출력) 
  • SELECT empno, ename, sal, deptno FROM emp WHERE deptno = 10
    UNION 
    SELECT empno, ename, sal, deptno FROM emp WHERE deptno = 20; ( 두 데이터의 결과값을 합집합으로 묶음, 결과값 중복제거)
  • SELECT empno, ename, sal, deptno FROM emp WHERE deptno = 10
    UNION
    SELECT sal, job, deptno, sal FROM emp WHERE deptno = 20; (컬럼의 이름이 다르고, 컬럼의 갯수와 자료형이 같을 경우 출력은 되지만 첫번째 select 기준으로 출력된다, 단 데이터가 꼬일 가능성이 높다.)
  • SELECT empno, ename, sal, deptno FROM emp WHERE deptno = 10
    UNION ALL
    SELECT empno, ename, sal, deptno FROM emp WHERE deptno = 10; ( 출력결과가 같은경우, 중복데이터 존재 UNION ALL 사용)
  • SELECT empno, ename, sal, deptno FROM emp
    MINUS
    SELECT empno, ename, sal, deptno FROM emp WHERE deptno = 10; (차집합)
  • SELECT empno, ename, sal, deptno FROM emp
    INTERSECT
    SELECT empno, ename, sal, deptno FROM emp WHERE deptno = 10;(교집합)

 

'Oracle SQL Programming' 카테고리의 다른 글

오라클 명령어-(3)  (0) 2023.07.26
오라클 명령어-(2)  (0) 2023.07.25