DB 37강. DDL
SCOTT의 테이블에서 우클릭하여
새 테이블을 생성해준다.
VARCHAR2는 20개의 크기를 지정해준 뒤
3개를 넣으면 크기가 줄어든다.
하지만 CHAR는 내가 1글자를 넣든
3글자를 넣든 항상 크기가 고정이다.
이때 크기는 길이가 아닌 Byte의 크기이다.
그렇게 때문에 GENDER의 크기는 한글이 들어갈 수 있는
3바이트로 지정해준다.
만들어준 테이블의 스키마는 아래와 같다.
테이블을 생성할 때 NO 컬럼을
Primary Key로 지정해두었다.
Primary Key는 그 값으로
행을 유일하게 결정할 수 있는 값을 말한다.
우리는 툴의 도움을 받아
테이블을 간편하게 만들었지만
실제로는 이 코드가 실행된 것이다.
이 값은 default이기 때문에 지워도 괜찮다.
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS" ENABLE
SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "USERS"
-- DDL(테이블 생성)
CREATE TABLE USERTBL
(
NO NUMBER,
USERNAME VARCHAR2(20 BYTE) NOT NULL,
PASSWORD VARCHAR2(13 BYTE) NOT NULL,
GENDER CHAR(3 BYTE),
CONSTRAINT "USERTBL_PK" PRIMARY KEY ("NO")
);
PRIMARY KEY는 테이블마다 무조건 존재해야 한다.
CONSTRAINT "USERTBL_PK" PRIMARY KEY ("NO")
실행시켰을 때 위 문구가 잘 뜬다면
테이블을 선택하여 새로고침을 해준다.
만들어진 테이블에 들어가서
스키마를 확인해보니
툴로 편하게 짰던 테이블과
동일한 것을 볼 수 있다.
-- PASSWORD 크기 20BYTE로 수정 -> ALTER
ALTER TABLE USERTBL2 MODIFY PASSWORD VARCHAR2(20);
-- 구조 확인
desc usertbl2;
DROP table usertbl2;
사용자를 생성할 때는
system이나 sys에서 생성해주어야 한다.
-- 사용자 생성
CREATE USER cos IDENTIFIED BY cos1234;
새로 만든 다음 cos를 만드는데
테스트에 실패한다.
ORA-01045 코드가 떴다.
세션이라는 권한이 없기 때문이다.
이 사용자가 데이터베이스에
접근할 권한이 없다는 말이다.
권한 부여는 DCL을 배운 다음 해줄 것이다.
[출처]
https://cafe.naver.com/metacoding
메타 코딩 유튜브
https://www.youtube.com/c/%EB%A9%94%ED%83%80%EC%BD%94%EB%94%A9