DB/SQL

[SQL] DML (update,select,insert,delete)

씩씩한 IT블로그 2024. 4. 30. 17:22
반응형

INSERT

* insert는 into를 써준다!

(1) insert into (테이블) (컬럼1,컬럼2...) values (데이터1, 데이터2...);

insert into emp(empno,ename) values(1000,'임베스트');

/* 아래처럼 컬럼을 생략해도 된다. 하지만 이때는 1000이 들어갈 숫자형 컬럼과 '임베스트'가 들어갈
문자형 컬럼이 각각 하나씩만 있어야 한다 */
insert into emp values(1000, '임베스트');

 

(2) select 이용하여 insert

--dept에서 모든 데이터를 dpet_test에 입력한다
insert into dept_test select * from dept; 

 

 

SELECT

(1) select 기본

select *  --컬럼
from emp  --테이블
where 사원변호=1000; --조건

 

(2) order by

--ename으로 오름차순정렬하고, sal로 내림차순 정렬한다
select * from emp order by ename, sal desc;

 

(3) distinct

emp테이블의 deptno칼럼을 조회한 후 중복은 제거하고 출력
select distinct deptno from emp

 

(4) ename

select (컬럼이름) as (칼럼별칭) from (테이블이름) (테이블별칭)

select ename as "이름" from emp a  --출력시 칼럼이름은 "이름"
 where a.empno=1000;  --emp대신 a라는 테이블명 사용

 

(5) where

- like

와일드카드 설명
% 문자를 포함한 모든것
_ 한개인 단일 문자
select * from emp
where ename like 'test%'; --test로 시작하는 모든 데이터

select * from emp
where ename like '%1'; --1로 끝나는 모든 데이터

select * from emp
where ename like '%est%'; --중간에 est가 있는 모든 것

select * from emp
where ename like 'test_'; --test로 시작하고 하나의 글자만 더있는 것

 

- in

where (컬럼) in ("값1","값2"...) : 컬럼이 값1,값2...중에 있을때

--단일
select * from emp
where job in ('clerk','manager');

--복수, job,ename가 clerk,test1 이거나 manager,test4 이면 모든 컬럼을 출력
select * from emp
where (job,ename) in (('clerk','test1'),('manager','test4'));

 

- null

모르는값, 부재값은 모두 null이다.

null과 숫자 혹은 날짜를 연산하면 null, 비교연산자로 비교하면 항상 false

--is null
select * from emp
where mgr is null;

--is not null
select * from emp
where mgr is not null;

 

(6) group by

-- deptno과 sal의합을 나타내는 컬럼을 만든 뒤 deptno별로 데이터 나열
select deptno,sum(sal) from emp group by deptno
    having sum(sal) >10000;   --having을 이용하여 조건문 사용가능

-- 부서별, 관리자별 소그룹을 만든다 ex) 10부서 1관리자 급여, 10부서 2관리자 급여, ....
select deptno, mgr, avg(sal) from emp group by deptno, mgr;

 

(7) count

행의 수를 계산한다

--emp테이블의 모든 행 수를 계산
select count(*) from emp;

--mgr의 행 수를 계산, 단 null값은 제외
select count(mgr) from emp;

 

 

UPDATE

* update는 테이블뒤에 set을 써준다!

--emp테이블의 empno==100인것을 찾아서 ename칼람의 값을 조조로 바꾼다
update emp set ename='조조' where empno=100; 

 

DELETE

* delete는 from을 써준다!

--emp테이블에서 empno가 100인 직원 삭제
delete from emp where empno=100; 

 

(특징들)INSERT, UPDATE, DELETE

권한이슈로 select보다 비교적으로 적게 쓰는 insert, update, delete는 다음의 특징만 기억해놓자!

- insert : insert는 into를 써준다!

- update : update는 테이블뒤에 set을 써준다!

- delete: delete는 from을 써준다!

 

반응형