개발 수업/DB

[SQL] DML(조작어)/입력,조회,수정,삭제

오늘 하루s 2023. 6. 1. 18:40
728x90
더보기

Day24-1. 230601

  • 명령프롬프트 통해 처음 DB접속
sqlplus 계정명/비번

 

  • 계정에 접속
conn[ect] 계정명/비번

 

  • system접속
conn[ect] system/비밀번호

 

  • 사용자 조회
select username
from dba_users;

 

  • user변경
alter user user명
identified by 새비번
[account unlock | lock];

-- 유저 hr의 비번 hr, 잠긴 계정 풀기

alter user hr

identified by hr

account unlock;

 

 

DML(조작어)

조회(select)

select *|컬럼명,...,컬럼명 (*또는 컬럼명)
from 테이블명
[where 조건]
[group by 기준]

어딘가에 있는 데이터를 추출해야 한다고 할 때 필요한 것은, 어디에서(where), 어떤 데이터(what)를 가져올 것인지로 구분.

'어디에서' 해당하는 내용을 FROM절에서, '어떤 데이터'에 해당하는 내용을 SELECT절에 기술헤 줌.

'어떤 데이터'에 해당하는 내용은 WHERE절.

 

  • 모든 테이블 조회
select *
from tab;

모든 데이터(컬럼)를 보려면 컬럼명을 일일이 나열하는 대신 *를 붙인다.

 

  • 테이블 구조 파악
 desc[ribe] 테이블명

 

 

ex1)

--countries 테이블 구조 파악

desc[ribe] countries

 

--countries 테이블의 모든 내용 조회

select *

from countries;

 

--customers 테이블의 전체 레코드 수를 조회하시오.

select count(*)

from customers;

 

-- customers테이블에서 country_id가 52777인 개수를 구하시오.

select count(*)

from customers

country_id=52777;

 

 --customers테이블에서 country_id, country_id별 고객수를 알아내시오.

select country_id,count(*)

from coustomers

group by country_id

 

 

더보기

예2)

-- REGIONS테이블 구조조회

desc REGIONS

 

-- REGIONS테이블 레코드수조회
select count(*)
from   REGIONS;

 

-- REGIONS테이블 내용조회
select *
from   REGIONS;
 REGION_ID REGION_NAME

 

예3)

--DEPARTMENTS  구조조회
desc DEPARTMENTS

 

--DEPARTMENTS  레코드수조회
select count(*)

 from DEPARTMENTS;

 

--DEPARTMENTS  내용조회
select ~~~~ 

from DEPARTMENTS;

 

--EMPLOYEES 조회

desc EMPLOYEES

--EMPLOYEES 레코드수조회

select count(*)

from EMPLOYEES;

 

--EMPLOYEES 내용조회

select ~~~~

from EMPLOYEES;

 

-- 사원명,부서id 조회

select emp_name,department_id

from employees;

 

 

입력(INSERT)

INSERT INTO 테이블명[(컬럼명,…,)]
VALUES(값1,…,값n);

해당 테이블의 모든 컬럼에 값을 입력할 때에는 컬럼명 생략 가능.

반드시 나열하는 컬럼과 값의 수와 순서, 그리고 데이터 타입이 일치해야함. 일치하지 않으면 오류 발생.

 

--dept 테이블에 입력

부서번호 90

부서명 it1

소재지 seoul

 

insert into dept(deptno,dname,loc)

values(90,'it1','seoul');

 

*null입력

-명시적 : null

-묵시적 : 입력시 컬럼명 생략

insert into dept(deptno,dname)

values(93,null);

 

--해당 테이블의 모든 컬럼에 값을 입력할 때에는 컬럼명 생략가능

insert into dept

values(94,'design1','dockdo');

 

--95,marketing 입력

insert into dept(deptno,dname)

values(95,'marketing');

 

 

수정(update)

update 테이블명
set 컬럼명=새값,…,컬럼명=새값
[where 조건];

-- 90번 부서 번호를 91로 수정하시오.

update dept

set deptno=91

where deptno=90;

-- 91번 부서의 이름을 itdev로 바꾸시오.

update dept

set dname=’itdev’

where deptno=91;

 

-- dockdo에 위치한 부서명을 DESIGN으로, 위치는 DOCKDO로 변경

update dept

set dname='DESIGN',loc='DOCKDO'

where loc='dockdo';

마지막에 commit;으로 저장!

 

 

삭제(delete)

delete [from] 테이블명
[where 조건];

-- 부서번호 95번 삭제

delete from dept

where deptno=95;

 

728x90