2 분 소요



SQL기초

데이터 조작어(DML)


DML(Data Manipulation Language)은 데이터를 조작하는 언어다.

SQL명령어 중에서 데이터 검색/쿼리언어(DQL)다 따로 분류되어 있는데 select만 사용하기 때문에 DML로 포괄적으로 이해하면 된다.

데이터 질의, 데이터 삽입, 데이터의 수정, 데이터 삭제를 조작할 때 사용한다.

조작어구조

데이터의 조작어의 명령어


select : 데이터를 질의한다.

insert : 데이터를 삽입한다.

update : 데이터를 수정한다.

delete : 데이터를 삭제한다.

select (데이터 질의)


  -- 사원 테이블에서 모든 컬럼을 조회한다.
  select * from emp;

  -- 사원테이블에서 사원 번호와 사원명을 조회한다.
  select empno, ename from emp;



조건 질의 (where)

연산자설명

 -- 사원 테이블에서 부서 번호가 10인 일반사원(CLERK) 정보를 조회한다.
  select empno, ename, job, deptno from emp
  where deptno = 10 and job = 'CLERK';



between A and B 연산자


특정 범위의 값을 크거나 같다는 조건과 작거나 같다는 조건을 적용하여 select …from 절로 조회한다.

 --사원테이블에서 급여자 3,000과 4,000 사이가 아닌 사원 정보를 조회한다.
  -- not 연산자를 사용하면 특정 범위의 값을 조회할 때 설정된 컬럼값 A 와 B는 값의 범위헤서 제외된다. 
  select empno, ename, sal from emp
  where sal not between 3000 and 4000;



in 연산자

  -- 사원테이블에서 직급이 president가 아닌 사원정보를 조회한다.
  select empno, ename, job from emp
  where job not in('PRESIDENT');



like 연산자

  -- 사원 테이블에서 이름이 j문자로 시작하는  사원명을 조회한다.
  select empno, ename, hiredate, sal from emp
  where ename like 'j%';

  --사원테이블에서 이름에 N 문자를포함하지 않는 사원명을 조회한다.
    select empno, ename, hiredate, sal from emp
  where ename not like '%N%';



order by 연산자

asc 명령어에 의해 오름차순으로 데이터가 정렬된다.

    -- 사원 테이블에서 급여가 낮은 순으로 사원 정보를 조회한다.
    select empno, ename, sal from emp
    order by sal asc;


desc 명령어에 의해 내림차순으로 데이터가 정렬된다.
    -- 사원 테이블에서 입사일이 가장 최근 순인 순서로 사원 정보를 조회한다.
    select empno, ename, hiredate from emp
    order by hiredate desc;



insert (데이터 삽입)

데이터삽입
★ 데이터를 입력하고 나면 반드시 commit 명령어로 실제적인 물리적 디스크에 저장해야 외부에서 확인할 수 있다.

insert into member(num, title, name, content)
 values(1,'', '홍길동', '테스트입니다.');
 commit; -- 이거를 해주지 않으면 외부에서 불러올수 없어 -- 물리적으로 내가 저장했다



외래키인 foreign key 제약조건이 설정되면 부모 테이블의 기본키가 자식 테이블에서 컬럼이 된다.

부모테이블의 키가 존재하지 않는 데이터를 입력하면 오류가 발생한다.

제약조건

 -- 부모테이블의 키가 존재하지 않는 데이터를 입력하면 오류가 발생한다.
insert into emp(empno, ename, deptno)
values(6789, ‘홍길동’, 70);



### update (데이터 수정) ###

-- 부서테이블의 부서 번호가 50인 부서명을 기획실로 수정하여 조회한다.
update dept
set dname = '기획실'
where deptno = 50;


where 절을 생략할 때는 설정한 컬럼의 모든 컬럼값이 수정되므로 주의해야 한다.



delete (데이터 삭제)

-- 부서 테이블의 사원 번호가 50인 컬럼값을 삭제하고 조회한다.
delete from dept
where deptno = 50;
select * from dept;

-- 외래키가 존재하는 부모 테이블의 데이터를 삭제하면 오류가 발생한다.
delete from dept
where deptno = 30;

카테고리:

업데이트:

댓글남기기