DDL ( Data Definition Language ) 데이터 정의어 : create / alter / drop / ADD/ MODIFY / RENAME / TRUNCATE
DML ( Data Manipulation Language ) 데이버 조작어 : insert / update / delete
DCL ( Data control Language ) 데이터 제의어 : grant /revoke
오라클 객체는 테이블(TABLE) 뷰(VIEW), 시퀀스(SEQUENCE), 인덱스(INDEX), 패키지(PACKAGE), 프로시저(PROCEDUAL), 함수(FUNCTION), 트리거(TRIGGER), 동의어(SYNONTM), 사용자(USER)가 있다.
DDL (COMMIT을 해주지않아도 데이터베이스에 즉각 반영된다.)
CREATE
CREATE TABLE tablename (
column1 datatype,
column2 datatype,
...
);
-- 예시
CREATE TABLE sample_product (
product_id INT,
product_name VARCHAR(20),
manu_date DATE
);
만든 테이블 확인하기
SHOW COLUMNS FROM sample_product;
ALTER
ADD (추가)
ALTER TABLE tablename
ADD column1 datatype,
column2 datatype,
...
;
-- 예시
ALTER TABLE sample_product
ADD factory VARCHAR(10);
실행결과
SHOW COLUMNS
FROM sample_product;
추가된 칼럼은 기본적으로 NULL값으로 초기화된다.
MODIFY(열의 정의를 수정할때 사용)
ALTER TABLE tablename
MODIFY column1 datatype,
column2 datatype,
…
);
-- 예시
ALTER TABLE sample_product
MODIFY factory CHAR(10);
RENAME (테이블이름 또는 열의 이름을 수정할때 사용)
--테이블 이름 수정
ALTER TABLE old_table RENAME new_table;
-- 또는
RENAME TABLE
tbl_name TO new_tbl_name
--열이름 수정
ALTER TABLE tablename RENAME COLUMN b TO a;
-- 예시
ALTER TABLE sample_product RENAME COLUMN factory TO factory_name;
DROP
DROP TABLE tablename;
-- 예시
DROP TABLE sample_product;
TRUNCATE
TRUNCATE TABLE [ { database_name.[ schema_name ]. | schema_name . } ] table_name [ ; ]
-- 예시
TRUNCATE TABLE test;
/* 테이블의 모든 행을 삭제하여 테이블용량이 줄어들고 인덱스등도 삭제된다.
테이블이 사용하던 스토리지 중 데이블 생성시 할당된 공간만 남기고 전부 반환된다.
RollBACK이 불가능하다, 삭제된 행수를 반환하지 않는다.*/
DML ( COMMIT을 해줘야 데이터베이스에 영구적으로 반영된다. )
SELECT
SELECT [조회할 열이름]
FROM [조회할 테이블]
WHERE [조건식]
GROUP BY [그룹화할 열지정]
HAVING [그룹 제한 조건식]
ORDER BY [정렬하는 열 지정];
--예제
SELECT NAME, JOB, AVG(SAL)
FORM TEST_TABLE
WHERE AVG(SAL) >=2000
GROUP BY JOB
OROER BY JOB;
INSERT
INSERT INTO table_name [(column1, column2, …)]
VALUES (val1, val2, …);
-- 예시
INSERT INTO departments (department_id, department_name, manager_id, location_id)
VALUES (271, 'Sample_Dept', 200, 1700);
UPDATE
UPDATE table_name
SET column1 = value1, [column2 = value2, ...]
WHERE 조건식;
-- 예시
UPDATE departments
SET manager_id = 201, location_id = 1800
WHERE department_name = 'Sample_Dept';
--서브쿼리를 이용한 갱신
UPDATE table_name
SET column1 = (
SELECT column1
FROM (
SELECT column1
FROM table_name
WHERE 조건식
) alias
),
[column2 = (
SELECT column1
FROM (
SELECT column1
FROM table_name
WHERE 조건식
) alias
), ...
]
WHERE 조건식;
-- 예시
UPDATE departments
SET manager_id = (
SELECT a.manager_id
FROM ( SELECT manager_id
FROM departments
WHERE department_id = 40
) a
),
location_id = (
SELECT b.location_id
FROM ( SELECT location_id
FROM departments
WHERE department_id = 40
) b
)
WHERE department_name = 'Sample_Dept';
DELETE
DELETE FROM table_name
[WHERE 조건식;]
-- 예시
DELETE FROM departments
WHERE department_name = 'Sample_Dept';
DCL ( Grant / Revoke )
Grant ( 데이터베이스에 대한 일련권한 부여 )
--관리자모드로 jaja 에 권한 부여
grant connect, resource, dba to jaja;
/* 접속권한, 오브젝트생성권한, dba 권한부여 */
-- jaja 유저가 table_test 를 사용할 수 있도록 객체권한부여
grnat select, insert, delete, update on table_test to jaja;
REVOKE (데이터베이스에 대한 일렬권한 취소)
REVOKE SELECT ON TABLE_TEST FORM JAJA;
REVOKE CREATE TABLE FORM JAJA
출처 : [MySQL] DDL (CREATE, ALTER, DROP, TRUNCATE) (tistory.com)
'IT' 카테고리의 다른 글
jsp - <%@ page> (0) | 2022.07.07 |
---|---|
IMAP과 POP3의 의미와 차이점 (0) | 2022.07.04 |
1. SQL 기본구조 & 기초명령어 (0) | 2022.06.28 |
허브/스위치/라우터/공유기 차이 (0) | 2022.06.27 |
오라클에 대해서 알아보자 (0) | 2022.06.23 |