- CREATE : 테이블 생성 등
CREATE TABLE [테이블] (
[컬럼1] [타입](크기)
, [컬럼2] [타입](크기)
, [컬럼3] [타입](크기)
);
CREATE TABLE MEMBER (
NUM NUMBER(10)
, NAME VARCHAR2(10)
, AGE NUMBER(3)
, GENDER VARCHAR2(1)
, COURSE NUMBER(4)
);
- DESC[RIBE] : 테이블 구조 확인
DESC [테이블];
- DROP : 테이블, 유저 삭제 등
DROP TABLE [테이블];
DROP TABLE MEMBER;
- ALTER : 테이블 변경 등
ㆍ컬럼 추가
ALTER TABLE MEMBER ADD (ADDRESS VARCHAR2(100));
ㆍ컬럼 변경
ALTER TABLE MEMBER MODIFY (ADDRESS VARCHAR2(50));
ㆍ컬럼 삭제
ALTER TABLE MEMBER DROP COLUMN ADDRESS;
ㆍPRIMARY KEY 추가
ALTER TABLE MEMBER ADD CONSTRAINT MEMBER_NUM_PK PRIMARY KEY(NUM);
ㆍNOT NULL 제약조건 추가
ALTER TABLE MEMBER MODIFY (NAME CONSTRAINT MEMBER_NAME_NN NOT NULL);
- TRUNCATE : 테이블 삭제(테이터를 넣기 전 테이블 초기 상태로 돌림)
TRUNCATE TABLE [테이블];
- INSERT : 레코드 삽입
INSERT INTO [테이블]
VALUES
('[데이터1]', '[데이터2]', '[데이터3]', ... , '[데이터n]');
INSERT INTO [테이블]
([컬럼1], [컬럼2], [컬럼3], ... , [컬럼n])
VALUES
('[데이터1]', '[데이터2]', '[데이터3]', ... , '[데이터n]');
INSERT INTO MEMBER VALUES (1, 'A', 20, 'M', 1000);
INSERT INTO MEMBER VALUES (2, 'B', 21, 'F', 1000);
INSERT INTO MEMBER VALUES (3, 'C', 30, 'M', 1000);
INSERT INTO MEMBER
(NUM, NAME, AGE, GENDER, COURSE)
VALUES
(4, 'D', 31, 'F', 1000);
INSERT INTO MEMBER
(NAME, AGE, GENDER, COURSE, NUM)
VALUES
('E', 40, 'M', 2000, 5);
INSERT INTO MEMBER VALUES (10, NULL, NULL, NULL, 2000);
- SELECT : 레코드 조회
SELECT [컬럼1], [컬럼2], [컬럼3], ... , [컬럼n]
FROM [테이블];
※ 전체 컬럼 검색
SELECT * FROM [테이블];
SELECT NUM, NAME, AGE, GENDER FROM MEMBER;
SELECT * FROM MEMBER;
- UPDATE : 레코드 변경
UPDATE [테이블]
SET [컬럼1] = '[데이터1]'
, [컬럼2] = '[데이터2]'
, [컬럼3] = '[데이터3]';
UPDATE [테이블]
SET [컬럼1] = '[데이터1]'
, [컬럼2] = '[데이터2]'
, [컬럼3] = '[데이터3]'
WHERE [컬럼] = '[데이터]';
UPDATE MEMBER SET NUM = 6;
UPDATE MEMBER SET NUM = 6 WHERE NAME = 'E';
- DELETE : 레코드 삭제
DELETE FROM [테이블];
DELETE FROM [테이블] WHERE [컬럼] = '[데이터]';
DELETE FROM MEMBER;
DELETE FROM MEMBER WHERE NUM = 6;
※ 주로 사용되는 오라클의 데이터 타입
<!--[endif]-->
- 보조 연산자
ㆍWHERE : 데이터 조건
단독으로 사용될 수 없고 항상 다른 명령어와 함께 사용
조건이 여러개인 경우 AND, OR 사용
SELECT *
FROM EMP
WHERE ENAME = 'SMITH';
=> EMP 테이블의 ENAME 값이 SMITH 인 레코드 조회
UPDATE EMP
SET ENAME = 'SMITH2'
, SAL = 850
WHERE EMPNO = 7369;
=> EMP 테이블의 EMPNO 값이 7369 인 레코드의 ENAME, SAL 값 변경
※ WHERE 문에 AND와 OR을 같이 사용하는 경우
SELECT *
FROM MEMBER
WHERE (NAME = 'A' OR NAME = 'B')
AND AGE BETWEEN 21 AND 30;
ㆍLIKE : 문자열 일부 포함
SELECT *
FROM MEMBER
WHERE AGE LIKE '%2%';
=> MEMBER 테이블의 AGE 값 중 2를 포함하는 레코드 조회
ㆍIN : 지정 문자열 조회
SELECT *
FROM MEMBER
WHERE NAME IN ('A', 'B');
=> MEMBER 테이블의 NAME 값이 A 또는 B 인 레코드 조회
※ WHERE OR 연산자로 대체 가능
SELECT *
FROM MEMBER
WHERE NAME = 'A'
OR NAME = 'B';
ㆍBETWEEN AND : 범위 지정 조회
SELECT *
FROM MEMBER
WHERE AGE BETWEEN 20 AND 24;
=> MEMBER 테이블의 AGE 값이 20 이상 24 이하인 레코드 조회
※ WHERE AND 연산자로 대체 가능
SELECT *
FROM MEMBER
WHERE AGE >= 20
AND AGE <= 24;
ㆍIS NULL : 해당 컬럼 값이 NULL 인 레코드 조회
SELECT *
FROM MEMBER
WHERE NAME IS NULL;
=> MEMBER 테이블의 NAME 값이 NULL 인 레코드 조회
ㆍIS NOT NULL : 해당 컬럼 값이 NULL 이 아닌 레코드 조회
SELECT *
FROM MEMBER
WHERE NAME IS NOT NULL;
=> MEMBER 테이블의 NAME 값이 NULL 이 아닌 레코드 조회
- ORDER BY : 레코드 정렬
SELECT *
FROM MEMBER
ORDER BY NAME DESC [ASC];
SELECT *
FROM MEMBER
ORDER BY 2;
=> MEMBER 테이블 조회 결과를 NAME 내림차순 또는 오름차순으로 정렬
- GROUP BY : 컬럼값이 같은 경우 그룹으로 묶음
SELECT COURSE, COUNT(COURSE)
FROM MEMBER
GROUP BY COURSE;
=> COURSE를 기준으로 묶음
※ 아래의 경우는 실행 오류 발생
SELECT COURSE, NAME COUNT(COURSE) FROM MEMBER
GROUP BY COURSE;
=> SELECT 절은 GROUP BY 절에서 사용된 컬럼과 집계 함수만 가능
- HAVING : GROUP BY 로 처리한 결과에 조건 부여
SELECT COURSE, COUNT(COURSE)
FROM MEMBER
GROUP BY COURSE
HAVING COUNT(COURSE) > 4;
=> COURSE를 기준으로 묶어서 조회한 레코드 중 카운트가 4보다 큰 레코드만 출력
- SEQUENCE : 유일한 값을 생성해주는 오라클 객체
순차적으로 증가하는 컬럼을 자동으로 생성할 수 있음
테이블과는 독립적으로 저장되고 생성
하나의 시퀀스를 여러 테이블에 적용 가능
ㆍ시퀀스 생성
CREATE SEQUENCE [시퀀스명]
START WITH n
INCREMENT BY n
MAXVALUE n | NOMAXVALUE
MINVALUE n | NOMINVALUE
CYCLE | NOCYCLE;
ㆍ시퀀스 사용
SELECT [시퀀스명].CURRVAL FROM DUAL;
=> 시퀀스 현재 값 출력
SELECT [시퀀스명].NEXTVAL FROM DUAL;
=> 시퀀스 다음 값 출력
ㆍ시퀀스 수정
ALTER SEQUENCE [시퀀스명]
INCREMENT BY n
MAXVALUE n | NOMAXVALUE
MINVALUE n | NOMINVALUE
CYCLE | NOCYCLE;
=> 변경할 속성 지정 (START WITH 는 수정 불가)
ㆍ시퀀스 삭제
DROP SEQUENCE [시퀀스명];
ㆍ사용자 계정 생성
CREATE USER testuser IDENTIFIED BY dkagh;
ㆍ사용자 계정 삭제
DROP USER testuser;
ㆍ접속 및 데이터 조작 권한 부여
GRANT CONNECT, RESOURCE TO testuser;
ㆍ접속 및 데이터 조작 권한 취소
REVOKE CONNECT, RESOURCE FROM testuser;
ㆍ사용자 비밀번호 변경
ALTER USER testuser IDENTIFIED BY [비밀번호];
ㆍ시퀀스 변경
ALTER SEQUENCE [시퀀스명] INCREMENT BY [증가수];