티스토리 뷰

맨 처음 [SQL 명령줄 실행] 프로그램을 실행합니다.

 

 

 

그다음 관리자로 접속을 해야합니다.

 

이때 접속방법은 두가지가 있습니다.

1. sql 명령줄에서 conn->sys ->oracle as sysdba ->엔터   [복잡한 방법]

2. conn /as sysdba [간단한 방법]

 

 

 

 

<사용자 등록>

 

사용자의 아이디와 비밀번호를 oraman으로 등록을 합니다.

 

create user oraman identified by oraman account unlock; [oraman은 임의로 지정한 사용자]

 

 

이제 사용자 oraman에 각종 권한을 부여할 것입니다.

 

 

 

 

관리자를 빠져나가서 oraman으로 접속을 하기 위해서

 

disconnect [빠져나가기]

 

를 하고나서

 

conn oraman/oraman   [아이디 : oraman     비밀번호 : oraman]

 

oraman 계정으로 접속한다음에 사원(employees)테이블을 생성해 줍니다.

 

 

create table employees(
 
  sabun number(6),
  name varchar2(20),
  email varchar2(25),
  phone varchar2(20),
  hiredate date default sysdate, //날짜를안넣어주면 default로 sysdate(현재 시간을 나타내는 오라클 함수)이 들어감
  salary number(8,2),
  managerid number(6)

 );

 

 

테이블을 만든다음

 

 

<내가 보유한 테이블 리스트 보기>
 
 select * from tab; 

 

 

 

 

 

 

 

 

 

 

<테이블 구조 보기> 

 

 desc employees;

 

 

 

 

 

 

 

 

 

<사원 테이블 내용 조회하기>

 

 select * from employees;

 

 

 

 

 

 

 

이때 선택된 레코드가 없다고 한다. 그 이유는 테이블에다가 내용을 추가하지 않았기 때문이다.

 

그래서 이번에는 employees 사원 테이블에 레코드를 추가할 것이다.

 

 

<테이블에 데이터 추가하기>

 //숫자
 //문자, 날짜 : 무조건 외따옴표(' ')

 <1행>
 insert into employees(sabun, name, email, phone, hiredate, salary, managerid)
 values(1,'제시카', 'aa@naver.com', '011-511-4444', sysdate, 100, 1);

 <2행>
 insert into employees(sabun, name, email, phone, hiredate, salary, managerid)
 values(2,'티파니', 'bb@naver.com', '010-444-1234', to_date('2012-12-25'), 200, 1); 

 

이상태에서 테이블의 레코드를 출력하면 이쁘게 출력이 안된다.

 

 

그래서 상황에맞게 간격을 설정해준다.


 col name for a12
 col email for a12
 col phone for a12

 

이뜻은 "칼럼(열) name의 너비를 하이픈 12개 너비로 보여주세요" 라는 뜻이다.

 

이상태에서 select * from employees; 를 해보면

 

 

이렇게 정돈이 잘된 상태로 출력이 된다.

 

 

 

<문제>

[사번 1번의 이름을 [홍길동], 급여(salary)를 [500] 으로 변경하기]

 

 

update employees set name='홍길동', salary = 500;

 

 

근데 이거는 여기서 우리가 원하는 답이 아니다. 우리는 1행만 변경하길 원한다.

 

일단 rollback; 을 한다.

 

//그래서 1행만 바꾸고 싶을때
 update employees set name='홍길동', salary=500
 where sabun=1;
 commit;
 select * from employees;

 

 

이렇게 하면 우리가 원하는데로 사번 1만 바꾸는것을 완료했다.

 

-------------------------------------------------------------------------

 

지금까지 잘못 입력했거나 원치 않은 행을 지울려면 테이블을 전부다 삭제해버렸다.

그렇게 하면 많이 복잡하므로 필요없는 행 삭제 하는것을 배우도록 하자.

 

<필요없는 행 삭제>

 

 //사번 2번을 삭제하시오

delete from employees;

select * from employees

 

 

 

 

이렇게하면 전부다 삭제된다.

이전으로 돌아가기 위해 롤백(rollback)를 사용하자

 

rollback;

 

 

 delete from employees where sabun = 2;
 select * from employees;
 commit

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Comments