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;
'Oracle DB 11g > 02.활용, SQL' 카테고리의 다른 글
[DB]02-06.Oracle DB 서브 쿼리(sub Query), IN, ALL, EXISTS (0) | 2018.10.05 |
---|---|
[DB]02-05.Oracle DB REFERENCE, 참조 제약 조건(외래키, Unique 제약 조건, 연계 참조 무결성 제약조건, Check 제약 조건) (0) | 2018.10.04 |
[DB]02-04.Oracle DB CONSTRAINT, 제약 조건, 기본키 (0) | 2018.10.04 |
[DB]02-03.Oracle DB 트랜잭션(TRANSACTION), SAVE POINT (0) | 2018.10.02 |
[DB]02-02.오라클 Data Manipulation Language, DML(Insert, Update, Delete, Merge, Select) (0) | 2018.10.02 |