SQL TABLE 생성 및 시퀀스 구문

YeHee·2024년 10월 29일

⏰ 2024.10.29 (D+14)

1. SQL USER01계정으로 TABLE 생성 방법

🖥️ TABLE(CHKTABLE) 생성 쿼리

CREATE TABLE CHKTABLE(
COL1 NUMBER PRIMARY KEY,
COL2 NUMBER(3) CONSTRAINT CHK_COL2_CHKTABLE CHECK(COL2 >=1 AND COL2 <=200),
COL3 CHAR(1) CONSTRAINT CHK_COL3_CHKTABLE CHECK(COL3 IN ('Y','N')),
COL4 VARCHAR2(10) CHECK(REGEXP_LIKE(COL4,'AB.[1,2][1-9]+')));

🖥️ TABLE 생성 확인하는 쿼리
SELECT * FROM CHKTABLE;

🖥️ TABLE 데이터 삽입 쿼리
INSERT INTO CHKTABLE VALUES(2,200,'N','AB$#132456');

🖥️ TABLE(BBS) 생성 쿼리

CREATE TABLE BBS(
NO NUMBER PRIMARY KEY,
TITLE VARCHAR2(10) NOT NULL,
USERNAME VARCHAR2(10) REFERENCES MEMBER(USERNAME),
POSTDATE DATE DEFAULT SYSDATE);

🖥️ TABLE 데이터 삽입 쿼리
INSERT INTO CHKTABLE BBS(2,200,'N','AB$#132456');

2. SQL USER01계정으로 TABLE 및 컬럼 이름 변경방법

💡 컬럼명 변경
ALTER TABLE MEMBER RENAME COLUMN PASSWORD TO PWD;

💡 테이블 이름 변경
RENAME MEMBER_COPY TO MEMBER_CLONE;

3. 시퀀스 구문 작성방법

📌 시퀀스 생성 SQL 구문

CREATE SEQUENCE 시퀀스명
[INCREMENT BY 증가값][START WITH SEED값]
[MAXVALUE n| MINVALUE n]

시퀀스 최대/최소값 지정
minvalue의 디폴트 값 1
maxvalue의 디폴트값 1.0000E+28
[CYCLE|NOCYCLE]
최대 또는 최소 값에 도달한 후 계속 값을
생성할 지 여부 지정(디폴트는 NOCYCLE)
[CACHE/NOCACHE]
CACHE 메모리에 오라클 서버가 SEQUENCE값을 할당하는가 여부 지정(디폴트로 CACHE]

방법 1) 시퀀스 생성 SQL 구문

CREATE SEQUENCE SEQ_BBS
INCREMENT BY 2
MAXVALUE 20
START WITH 2
CYCLE
NOCACHE;

SELECT SEQ_BBS.NEXTVAL FROM DUAL;
SELECT SEQ_BBS.CURRVAL FROM DUAL;
DROP SEQUENCE SEQ_BBS;

방법 2) 기본값을 이용한 시퀀스 객체 생성 ⭐

CREATE SEQUENCE SEQ_BBS
NOCACHE
NOCYCLE;

시퀀스 객체에 데이터 생성
INSERT INTO BBS VALUES (SEQ_BBS.NEXTVAL,'제목' || SEQ_BBS.NEXTVAL,'KIM',SYSDATE);

입력한 시퀀스 객체 데이터 확인
SELECT * FROM BBS;

입력한 시퀀스 객체 데이터 삭제
DELETE FROM BBS;

DMLTABLE 테이블 생성 예시 📖]
CREATE TABLE DMLTABLE(
COL1 NUMBER PRIMARY KEY,
COL2 CHAR(1) DEFAULT 'Y',
COL3 VARCHAR2(10) NOT NULL,
COL4 DATE DEFAULT SYSDATE
);

DMLTABLE 테이블 새로운 열 추가 예시 ➕]

ALTER TABLE DMLTABLE ADD COL5 VARCHAR2(10);

SEQ_DMLTABLE 시퀀스 생성 예시 ➕]

CREATE SEQUENCE SEQ_DMLTABLE
NOCACHE
NOCYCLE;

SEQ_DMLTABLE 시퀀스 테이블 구조 및 데이터 확인 📖]

DESC DMLTABLE;
SELECT * FROM DMLTABLE;

SEQ_DMLTABLE 시퀀스 생성 예시 ➕]

CREATE SEQUENCE SEQ_DMLTABLE
NOCACHE
NOCYCLE;

4. 데이터 입력

🔖 중요 ]
- 데이터 입력을 위한 SQL구문 작성시 문자형(CHAR혹은 VARCHAR 등)은 반드시 '(작은 따옴표)로 값을 감싸야 한다.
- 숫자형은 작은 따옴표가 필요 없다.

📌 데이터 입력 SQL 구문

입력 방법 첫번째 SQL구문
INSERT INTO 테이블명(컬럼명1,컬러명2,---------,컬러명N)
VALUES(값1,값2,---------------,값N)
입력 방법 두번째 SQL구문
INSERT INTO 테이블명
VALUES(값1,값2,---------------,값N)
※ 컬럼에 NULL삽입시 : '' 혹은 NULL
※ 디폴트 제약 조건을 준 컬럼에 DEFALUT값 삽입시 : DEFAULT

INSERT INTO 테이블명
VALUES(값1,값2,NULL,DEFAULT)

참고사항 💡]

※ 컬럼에 NULL삽입시 : '' 혹은 NULL
※ 디폴트 제약 조건을 준 컬럼에 DEFALUT값 삽입시 : DEFAULT

INSERT INTO 테이블명
VALUES(값1,값2,NULL,DEFAULT)

DMLTABLE에 INSERT 명령어 예시 ➕]

INSERT INTO DMLTABLE(COL1,COL3) VALUES (SEQ_DMLTABLE.NEXTVAL,'COL3');

INSERT INTO DMLTABLE(COL1,COL3,COL2,COL4) VALUES (SEQ_DMLTABLE.NEXTVAL,'COL3','N',SYSDATE+1);

INSERT INTO DMLTABLE VALUES (SEQ_DMLTABLE.NEXTVAL,'X','COL3',SYSDATE-1);

INSERT INTO DMLTABLE VALUES (SEQ_DMLTABLE.NEXTVAL,'X','COL3',SYSDATE-1);

5. 데이터 수정

📌 데이터 수정 SQL 구문

UPDATE 기존테이블명
SET 컬럼명 = 새로운값
[WHERE 업데이트 조건]

DMLTABLE에 UPDATE 명령어 예시 ➕]

UPDATE DMLTABLE SET COL1='5' WHERE COL1=2;

6. 데이터 삭제

📌 데이터 삭제 SQL 구문

DELETE [FROM] 기존테이블명
[WHERE 삭제 조건]

DMLTABLE에 DELETE 명령어 예시 ❌]

DELETE FROM DMLTABLE;

참고사항 💡]

DMLTABLE에 INCREMENT BY(증가 및 감소) 예시 ➖]

ALTER SEQUENCE SEQ_DMLTABLE INCREMENT BY -;

0개의 댓글