SQL 명령어 정리


테이블 생성
-- 테이블 생성
CREATE TABLE ex2_1 (
    COLUMN1 CHAR(10),
    COLUMN2 VARCHAR2(10),
    COLUMN3 NVARCHAR2(10),
    COULMN4 NUMBER
);

테이블 구조
-- 테이블 구조
DESC ex2_1;

데이터 삽입
-- 데이터 삽입 : INSERT
-- 문자열 데이터 표현 : '문자열'
INSERT INTO ex2_1(COLUMN1, COLUMN2) VALUES('abc', 'abc');
INSERT INTO ex2_1(COLUMN1, COLUMN2) VALUES('홍길동', '홍길동');

-- * : 테이블의 모든 컬럼을 나타내는 기호
SELECT * FROM ex2_1;

길이 확인
-- LENGTH() : 한글, 영문 상관없이 문자열의 길이확인
SELECT COLUMN1, LENGTH(COLUMN1) AS LEN1,
       COLUMN2, LENGTH(COLUMN2) AS LEN2
FROM ex2_1;

-- LENGTHB() : 문자열 길이의 크기확인 B는 바이트 - 사용한 바이트
SELECT COLUMN1, LENGTHB(COLUMN1) AS LEN1, 
       COLUMN2, LENGTHB(COLUMN2) AS LEN2 
FROM ex2_1;

날짜 데이터 타입
-- 날짜데이터 타입
CREATE TABLE ex2_5(
    COL_DATE    DATE, --기본값이 NULL
    COL_TIMESTAMP   TIMESTAMP
);

-- 날짜데이터 함수
-- SYSDATE : 현재 시스템의 날짜 (초까지)
-- SYSTIMESTAMP : 현재 시스템의 날짜 (밀리세컨드)

-- 도구메뉴 - 환경설정 - 데이터베이서 - NLS 포맷변경
-- 날짜 출력포맷 설정 : NLS

-- FROM DUAL : 임시테이블 잠깐 확인할 때
SELECT SYSDATE, SYSTIMESTAMP FROM DUAL;

SQL DEFAULT 명령어
CREATE TABLE ex2_10(
    COL1    VARCHAR2(10)    NOT NULL,
    COL2    VARCHAR2(10)    NULL,
    CREATE_DATE DATE    DEFAULT SYSDATE -- SYSDATE 오라클 날짜함수
);

-- CREATE_DATE 컬럼명이 생략되어 있다. DEFAULT 작동됨
INSERT INTO ex2_10(COL1, COL2) VALUES('AA', 'AA');

-- 칼럼명을 생략하면, 모든 칼럼명을 의미한다. ex2_10(COL1, COL2, CREATE_DATE) 
INSERT INTO ex2_10 VALUES('AA', 'AA'); -- 에러

INSERT INTO ex2_10 VALUES('AA', 'AA', DEFAULT);

SELECT * FROM ex2_10;

테이블 삭제
-- DROP TABLE 테이블명;

-- 테이블 삭제시 기본키 테이블이 데이터가 참조가 되어있을 경우에 삭제가 안된다
-- 참조키 테이블을 먼저 삭제해야한다

-- 참조키 관계가 되어 있을 경우, 테이블 삭제 순서
DROP TABLE EMP; -- 1)참조키 테이블이 먼저 삭제가 되어야, 기본키테이블의 데이터가 참조가 해제될수가 있다
DROP TABLE DEPT; -- 2)기본키 테이블. 먼저 삭제할 수가 없다
테이블 삭제 CASCADE
-- DEPT 부서테이블의 기본키제약조건 삭제, EMP자식테이블의 참조키제약조건 삭제가 함께 됨
DROP TABLE DEPT
    CASCADE CONSTRAINTS;

테이블 변경
-- 테이블 변경(ALTER TABLE) : 테이블의 구조를 변경(새컬럼 추가, 기존컬럼의 데이터타입 크기 변경, 기존컬럼 삭제 등)
CREATE TABLE ex2_10(
    COL1    VARCHAR2(10)    NOT NULL,
    COL2    VARCHAR2(10)    NULL,
    CREATE_DATE DATE DEFAULT SYSDATE
);

-- COL1컬럼명을 COL11 컬럼명으로 이름변경
ALTER TABLE ex2_10
    RENAME COLUMN COL1 TO COL11;

-- 테이블의 구조 보는 명령어
DESC ex2_10;

-- 컬럼의 데이터 변경 COL2 VARCHAR2(10) -> VARCHAR2(30)
ALTER TABLE ex2_10
    MODIFY COL2 VARCHAR2(30);
    
-- 컬럼을 추가. NOT NULL은 안됨
ALTER TABLE ex2_10
    ADD COL3 NUMBER;
    
-- 컬럼삭제. 데이터가 삭제된다
ALTER TABLE ex2_10
    DROP COLUMN COL3;
    
-- 제약조건 추가
ALTER TABLE ex2_10
    ADD PRIMARY KEY (COL11);

-- 제약조건 삭제
 ALTER TABLE ex2_10
    DROP CONSTRAINTS CONSTRAINTS_NAME넣기;

테이블 복사
-- 테이블 복사 : 제약조건은 복사대상에서 제외(PRIMARY KEY)
CREATE TABLE EMPLYEES_TEMP
AS
    SELECT * FROM EMPLOYEES;

태그:

카테고리:

업데이트:

댓글남기기