- 문자, _ , $ , # 조합, 한글(비추)
- 첫글자는 항상 문자로 작성
- 예약어, 키워드 사용 불가
- 길이제한 30이하
- VARCHAR2(n) : 가변길이 문자 데이터 ( 4000byte )
- CHAR(n) : 고정길이 문제 데이터 ( 2000byte )
- NUMBER(p,s) : 전체 p 자리 중 소수점 이하 s 자리숫자
** NUMBER, NUMBER(n) 소수점 유무에 따라 3가지 방식- DATE : 날짜형
- LONG : 가변길이 2GB
- BLOB : 가변길이 4GB
- CLOB : 단일바이트가변길이문자 (4GB)
** 한글 : 2~3 byte로 인식
Data Definition Language
데이터의 구조를 정의하는데 사용하는 명령어
CREATE(생성)
ALTER(수정)
DROP(삭제)
RENANE(이름변경)
TRUNCATE(내용만 삭제)
CREATE TABLE 테이블명(
컬럼명 데이터타입(크기),
컬럼명 데이터타입(크기),
컬럼명 데이터타입(크기)
);
DROP TABLE 테이블명;
ALTER TABLE 테이블명
ADD( 컬럼명 데이터타입(크기));
ALTER TABLE 테이블명
MODIFY( 컬럼명 데이터타입(크기));
ALTER TABLE 테이블명
DROP COLUMN 기존컬럼명;
ALTER TABLE 테이블명
RENAME COLUMN 기존컬럼명 TO 변경컬럼명;
Data Manipulation Language
데이터를 조회하거나 검색하기 위한 명령어
데이터를 변경(삽입,수정,삭제)도 포함
INSERT(삽입) / UPDATE(수정) / DELETE(삭제) / SELECT(조회)
INSERT INTO 테이블명 ( 컬럼명 )
VALUES ( 값 );
UPDATE 테이블명
SET 컬럼 = 값
WHERE 조건식 *범위설정
DELETE FROM 테이블명
WHERE 조건식 *범위설정
SELECT 컬럼명들
FROM 테이블명
WHERE 조건식 *조건에부합된결과만
* 조건식은 범위설정을 도와주는 중요한 포인트입니다.
습관적인실행을 시키는 버릇이 있을경우 잘못된경우 조건식이없는 케이스로 실행을 할 경우 모든 데이터가 고장이 납니다.
항상 update delete 문장의 경우는 where 문부터 작성합니다.
** 더 나아가서는 select조회문부터 작성하고 작성된 쿼리문에서 조건문만 가져옵니다.
* 데이터베이스 사용하는 이유는 데이터의 일관성, 데이터의 무결성
조회문은 데이터베이스의 실제 값에는 영향이 없는 쿼리문입니다.
값을 보여주는 쿼리문이기때문에 맘대로써도됩니다.
!! 주의사항 삭제, 수정 의 경우에는 정말로 주의하면서 사용해야합니다.
데이터베이스의 테이블내 데이터를 입력할때 처음 초기에 설정한 값들의 범위에서만 데이터가 들어가도록해야 데이터를 사용할때 문제가 적다.
데이터를 입력 할때 특별한 조건을 걸 수 있다.
- NOT NULL : 해당 컬럼에 null 값을 허용하지 않는 제약조건
- UNIQUE : 유일하게 식별하는 값만 허용 > 중복 허용 안한다 * null 허용
- PRIMARY KEY : 기본키() + 모든 테이블에는 기본키가 하나 이상 있어야한다.
( UNIQUE + NOTNULL 합쳐진 경우 )
( null 값을 허용하지 않고 유일하게 식별가능한 값 )
만약 기본키 제약조건을 가진 컬럼이 2개라면?
2개의 컬럼의 내용이 유일하기만 하면 된다.(둘 다 같지만 않으면 된다)- FOREIGN KEY : 다른 테이블의 PK를 참조 *PK : 기본키
- CHECK : 입력을 제한하여 받을 수 있다. 등록한 단어들만 입력가능
- (*) DEFAULT : 제약조건 X > 입력값이 없을때 채워지는 값으로 제약조건처럼 사용.
제약조건은 보통 테이블을 만들때 같이 생성
컬럼 레벨 제약조건 방식
CREATE TABLE 테이블명 (
컬럼명 데이터타입 "제약조건"
);
테이블레벨 제약조건 방식
CREATE TABLE 테이블명 (
컬럼명 데이터타입,
CONSTRAINT 제약조건이름 "제약조건" 컬럼명
(FOREIGN KEY 의 경우)
REFERENCES 참조테이블(테이블의 기본키)
(CHECK 의 경우)
CONSTRAINT 제약조건이름 CHECK (컬럼명 IN ('값1','값2','값3'))
);
추천 : 모든 제약조건은 데이터베이스에 저장하는데, 의미있는 이름을 부여해야 사용하기 편리하다.
주의 ! NOT NULL 은 컬럼레벨로만 적용가능
ALTER TABLE 테이블명
ADD CONSTRAINT 제약조건이름 "제약조건" (대상컬럼) REFERENCES 대상테이블명(컬럼명)
ALTER TABLE 테이블명
MODIFY 컬럼명 DEFAULT 값;