01-04의 게시물에선


관리자 계정을 이용하여 사용자 계정을 생성하였다.


이번에는 사용자 계정으로 접속하여 테이블을 다뤄본다.



저번에 접속한 SYS계정이 좌측에 보인다.


저번에 생성한 web_user로 접속하는데 생성 당시 비밀번호를 pass로 설정하였으니 그대로 입력하고


테스트를 눌러 확인하고 접속을 누른다.


창이 뜨면 아무거나 입력하고 저번과 같이 저장 경로를 새로 설정한다.




-- 1. 테이블 생성
-- CREATE TABLE [테이블 명] (
-- [컬럼명] [데이터타입] [크기지정]
-- [컬럼명] [데이터타입] [크기지정]
-- [컬럼명] [데이터타입] [크기지정]
-- );
-- 여러개를 집어 넣을 수 있다.

-- 데이터타입 종류 (오라클은 BOOLEAN은 없음)

-- 1) 문자타입(검색속도가 빠르다, DB에선 속도가 중요하지만 DB가 크지 않으므로 지금은 신경쓰지 않아도 된다.)
-- 고정형(사이즈 한번 설정)
-- CHAR(바이트 수) 영어 - 1, 한글 - 2, 한문 - 3 바이트
-- NCHAR(글자 수) 전부 3 바이트 잡아버림

-- 가변형(늘었다 줄었다.), 원래는 VARCHAR와 NVARCHAR였는데 2를 쓰라고 권고
-- VARCHAR2(바이트 수)
-- NVARCHAR2(글자 수)

-- 2) 숫자
-- NUMBER(전체 자릿수, 소숫점 자릿수)
-- NUMBER <-- 오라클이 알아서 계산, 지정해주므로 속도가 느려진다. 그러므로 지정을 하자

-- 3) 날짜
-- Date <-- 7byte(yyyy-mm-dd hh:mm:ss), DEFAULT SYSDATE를 하면 데이터를 입력했을때의 날짜가 입력됨
-- TIMESTAMP <- 10억분의 1초까지 저장
-- yyyy-mm-dd hh:mm:ss.FF9 FF는 소숫점 9번째
-- 타임 스탬프는 누군가가 먼저 등록을 했나, 우열을 가릴 때 사용, 데이터를 조금 더 많이 먹음

CREATE TABLE testtable(
    username NVARCHAR2(10),
    age NUMBER(3, 0),
    mobile NVARCHAR2(11),
    reg_date DATE DEFAULT SYSDATE
);

-- description, 테이블 구조 확인
-- DESC [테이블 명];
DESC testtable;

-- 테이블 리스트 확인
SELECT * FROM USER_TABLES;
SELECT table_name FROM USER_TABLES;

-- 테이블을 아래와 같이 만들어 보자
-- 테이블 명 : employees
-- emp_no 숫자형 3자리
-- first_name 문자열 8자리
-- last_name 문자열 2자
-- email 문자열 50자
-- mobile 문자열 11자
-- salary 숫자형 8자
-- reg_date 날짜 기본으로 SYSDATE 된다.


CREATE TABLE employees(
    emp_no NUMBER(3, 0),
    first_name NVARCHAR2(8),
    last_name NVARCHAR2(2),
    email NVARCHAR2(50),
    mobile NVARCHAR2(11),
    salary NUMBER(8, 0),
    reg_date DATE DEFAULT SYSDATE
);

DESC employees;
-- TABLE을 같은 이름으로 두번 Create 하면 오류가 출력됨
-- 고로 수정하고 싶으면 Drop 했다가 다시 Create하자

-- 2. 테이블 삭제
-- DROP TABLE [테이블 명]
SELECT table_name FROM USER_TABLES;
DROP TABLE testtable;
SELECT table_name FROM USER_TABLES;

-- 테이블 내 데이터 일괄 삭제(추천 하지 않는 기능)
-- DELETE 로 삭제 할 경우 ROLL BACK 가능, 휴지통에 버리기 처럼 남는다.
-- TRUNCATE TABLE [테이블 명]
-- TRUNCATE는 삭제하고 바로 휴지통에 비워버림, 완전 삭제, 복구 불가

-- 3. 테이블 수정(컬럼, 테이블 내부의 항목)

-- 1) 컬럼 이름 변경 - 기존 데이터가 있을 경우 삭제되어 버리므로 주의해야 한다.
-- ALTER TABLE [테이블 명] RENAME COLUMN [어떤 컬럼] TO [바꿀 이름];
ALTER TABLE employees RENAME COLUMN last_name TO family_name;
DESC employees;

-- 2) 컬럼 추가
-- ALTER TABLE [테이블 명] ADD ([컬럼 명] [데이터 타입(크기)]);
ALTER TABLE employees ADD (depart_no VARCHAR2(10));
DESC employees;
ALTER TABLE employees ADD (commision VARCHAR2(10));
ALTER TABLE employees ADD (etc VARCHAR2(100));
DESC employees;

-- 3) 컬럼 속성 변경 - 기존 데이터가 있으면 안된다.
-- ALTER TABLE [테이블 명] MODIFY ([컬럼 명] [데이터 타입(크기)]);
ALTER TABLE employees MODIFY (commision NUMBER(3,0));
DESC employees;

-- 4) 컬럼 삭제
-- ALTER TABLE [테이블 명] DROP COLUMN [컬럼 명];
ALTER TABLE employees DROP COLUMN etc;
DESC employees;




+ Recent posts