sql 이란


ddl- data definition language

create, alter, drop, rename, turncate

dml- insert, update,delete

dql- select

tcl-commit,rollback,savepoint

dcl-grant,revoke


사원 테이블의 모든 레코드를 조회

select * from emp;

select empno, ename, job, mgr, hiredate, sal, comm, deptno from emp;


사원명과 입사일을 조회

select ename, hiredate from emp;


사원번호와 이름을 조회하시오

select deptno, ename from emp;


사원테이블에 있는 직책의 목록을 조회사이오.

select distinct job from emp;


distinct를 사용하는 이유(중복제거) job 컬럼에 대한 중복을 제거함


총 사원수를 구하시오

select count(empno) from emp;


empno를 설정하는 이유(ename의 경우 이름 동명이인존재, 직업도 중복 존재, 때문에 사원번호로

카운트를 세는 것이 정확함)


부서번호가 10인 사원을 조회하시오

select * from emp where deptno=10;


월급여가 2500이상 되는 사원을 조회하시오

select * from emp where sal >=2500;


where 뒤에서는 =,>,>=,<=,<비교 연산자를 사용한 예이다.


이름이 "KING"인 사원을 구하시오


select * from emp where ename='KING';


쿼리문은 대소문자를 가리지 않는다. 하지만 컬럼에 들어가는 데이터는 당연히 대소문자를 가린다.

KING라고 저장되어 있는데 king로 검색되지 않는다.


사원들 중 이름이 s로 시작하는 사원의 사원번호와 이름을 조회하시오

select empno, ename from emp where ename like 'S%';


like는 %와 _문자와 함께 검색할 때 사용된다.


커미션이 300, 500, 1400 인 사원의 사번, 이름, 커미션을 조회 하시오


select deptno, ename, comm from emp where comm =300 or comm=500 or comm=1400;


아니면


select deptno, ename, comm from emp where comm in(300,500,1400);


이렇게 comm뒤에 in으로 시작을 해도된다.


월급여가 1200에서 3500사이의 사원의 사번,이름, 월급여를 조회하시오


select empno, ename, sal from emp where sal between 1200 and 3500;


직급이 매니저이고 부서번호가 30번인 사원의 이름, 사번, 직급, 부서번호를 조회하시오


select ename, empno, job, deptno from emp where deptno = 30 and job='MANAGER';


select 로 조회시 해당 컬럼이 where에 존재를 하는것만 가능하다. deptno외 job이 select절의 앞에

존재를 하였기 때문에, 본 쿼리문이 조회가 가능한것으로 보면된다.


부서번호가 30이 아닌 사원의 사번, 이름, 부서번호를 조회하시오

select empno, ename, deptno from emp where not deptno = 30;


커미션이 300, 500, 1400이 모두 아닌 사원의 사번, 이름, 커미션을 조회하시오


select empno, ename, comm from emp where comm not in (300, 500, 1400) ;


이름에 s가 포함되지 않는 사원의 사번, 이름을 조회하시오


select empno, ename from emp where ename not like='%s%';


'23.12.24 삭제예정 > Oracle' 카테고리의 다른 글

chapter 2 오라클  (0) 2018.03.12
★★제약조건  (0) 2018.02.23

SQL 명령어의 유형


DQL select 검색시 사용

DML 데이터조작어 Insert , Update, Delete

DDL Create데이터베이스생성, Alter데이터베이스변경, Drop데이터베이스삭제, Rename데이터베이스 객체이름변경, Truncate데이터베이스 저장공간 삭제

TCL Commit트랜잭션의 정상적인 종료, Rollback트랜잭션취소, SavePoint트랜잭션내에임시저장점 설정

Dcl Grant데이터베이스에 대한 일련의 권한부여, Revoke 데이터베이스에 대한 일련의 권한축소

'23.12.24 삭제예정 > Oracle' 카테고리의 다른 글

sql 초보1  (0) 2018.07.09
★★제약조건  (0) 2018.02.23

※ 제약조건


Primary key 테이블에 저장된 행 데이터를 고유하게 식별하기 위한 기본키를 정의한다. 하나의 테이블에 하나의 기본키 제약만 정의할 수 있다.

기본키 제약을 정의하면 DBMS는 자동으로 UNIQUE 인덱스를 생성하며, 기본키를 구성하는 컬럼에는 NULL을 입력할 수 없다.

결국 기본키 제약 = 고유키 제약 & NOT NULL 제약이 된다.


UNIQUE KEY 테이블에 저장된 행 데이터를 고유하게 식별하기 위한 고유키를 정의한다. 단, NULL은 고유키 제약의 대상이 아니므로, NULL 값을 가진 행이 여러 개 있더라도 고유키 제약 위반이 되지 않는다.


NOT NULL NULL 값의 입력을 금지한다. 디폴트 상태에서는 모든 컬럼에서 NULL을 허가하고 있지만, 이 제약을 지정함으로써 해당 칼럼은 입력 필수가 된다. NOT NULL을 CHECK의 일부분으로 이해할 수도 있다.


CHECK 입력할 수 있는 값의 범위 등을 제한한다. CHECK 제약으로는 TRUE or FALESE로 평가 할수 있는 논리식을 지정한다.


FOREIGN KEY(외래키) 관계형 데이터베이스에서 테이블 간의 관계를 정의하기 위한 기본키를 다른 테이블의 외래키로 복사하는 경우 외래키가 생성된다. 외래키 지정시 참조 무결성 제약 옵션을 선택할 수 있다.


NULL의 의미


NULL은 공백이나 숫자과는 전혀 다른 값이며, 조건에 맞는 데이터가 없을 때의 공집합과도 다르다.

NULL은 아직 정의되지 않은 미지의 값이거나 현재 데이터를 입력하지 못하는 경우를 의미한다.


DEFAULT 의미

데이터 입력 시에 칼럼의 값이 지정되어 있지 않을 경우 기본 값을 사전에 설정할 수 없다.

데이터 입력시 명시된 값을 지정하지 않은 경우에 NULL값이 입력되고, DEFAULT 값을 정의했다면 해당 컬럼에 NULLL 값이 입력되지 않고 사전에 정의된 기본 값이 자동으로 입력된다.






'23.12.24 삭제예정 > Oracle' 카테고리의 다른 글

sql 초보1  (0) 2018.07.09
chapter 2 오라클  (0) 2018.03.12

+ Recent posts