[SQL] DML(조작어)/입력,조회,수정,삭제
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;