SQL 명령어
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;
댓글남기기