create database sample; #주석
use sample; #데이터베이스 sample을 사용하겠다고 선언
CREATE TABLE sample62 (
no INTEGER NOT NULL,
#no에 INTEGER타입의 null이 될수없는 데이터 저장
a VARCHAR(30),
b DATE
); #세미콜론(;)을 기준으로 끊어서 실행한다
# -> no a b 라는 column(행)이 생성된다
- create table 테이블명(열(row)정의1, 열(row)정의2 ......)
- 열 정의 -> 열이름1 자료형[기본값] or [null]
<<데이터 타입 // Date Type>> 명령어
CHAR(SIZE) : 고정형 문자열, 문자열 크기가 고정된 것으로 설정한 값보다 작은 데이터값만 들어올 수 있으며
작은 값이 들어온 경우 설정된 크기로 저장된다.
(EX : CHAR(8) 설정-> SUN 입력 시 SUN* 식으로 크기8에 맞게 설정)
VARCHAR2(SIZE) : 가변형 문자열, 데이터 최대의 크기 지정, 그 이하의 값이 들어온 경우 자동적으로 크기변환 한다.
(EX : VARCHAR(8) 설정-> SUN 입력 시 SUN 으로 크기3에 맞게 설정)
NUMBER(전체자리수, 소수점이하자리수) : 숫자를 저장하는 DATA TYPE
EX1) NUMBER(7,0) == NUMBER(7) -> 7자리 정수형 데이터
EX2) NUMBER(7,2) -> #,###,###.## 실수형 데이터 (정수 7자리, 소수점이하 2자리 데이터)
DATE : 날짜 저장하는 데이터
LONG : 4,000 Byte 이상의 문자열을 저장 할 때, 활용되는 데이터 타입 (최고 2GB)
LOB : 2GB 이하 바이너리 (모든파일 저장가능) 데이터 저장
alter table sample62 add newcol int; #add + 추가할데이터 + 자료형
#이미 생성(create)된 테이블에 데이터를 추가해서 넣지말고 alter를써야함
alter table sample62 modify a varchar(20);
#a열의 문자최대길이를 30에서20으로 변경(modify)
alter table sample62 change newcol c varchar(20);
#newcol열의 이름을 c로 바꾸고(change) 타입(int -> varchar)도 바꾸자
desc sample62; #테이블 보기
NOT NULL 제약조건: 한 열이 NULL 값을 가지지 못하도록 합니다.
DEFAULT 제약조건: 한 열에 특정한 값이 없을 경우, 대체할 기본값(Default)을 설정합니다.
UNIQUE 제약조건: 한 열에서 각기 다른 값만 가지도록 설정합니다. (중복된 값 불가)
기본키(PRIMARY Key) 제약조건: 데이터베이스 테이블에서 각각의 행/레코드가 유일하게 식별 가능한 값을 가지도록 합니다.(UNIQUE + NOT NULL) ex) ID
외래키(FOREIGN Key) 제약조건: 또 다른 어떤 데이터베이스 테이블에서 행/레코드가 유일하게 식별 가능한 값을 가지도록 합니다.
CHECK 제약조건: CHECK 제약조건은 특정 조건(conditions)에 해당하는 값만 들어갈 수 있도록 해줍니다.
INDEX: 데이터베이스에서 데이터를 매우 빠르게 생성하거나 검색할 때 사용합니다.
*출처 https://m.blog.naver.com/regenesis90/222197289871
insert into sample62(no,a,c) value(10,'abc','def');
# -> sample62의 no,a,c에 값 10, abc, def 초기화
#저기서 no/값 10을 넣지않으면 제약조건
(no데이터는 null = no)에 의해 오류가난다
create table sample12(
a int not null, #제약조건
b int not null primary key, #제약조건
c varchar(30) #제약조건 없음
#primary key(a,b)처럼 한개의제약으로
#복수의 열에 제약을 설정하는경우를
#테이블제약, 슈퍼 키라고 한다
);
#insert into sample12 (c) value('자바');
#에러코드 1364 제약조건 필드 a,b는 값을 가져야합니다
insert into sample12 (a,b,c) values(10,20,'자바');
#insert into sample12 (a,b,c) values(30,20,'파이썬');
#에러코드 1062 primary key는 중복이 될수없습니다
#insert into sample12 values(2,8);
#에러코드 1136 column 값의 갯수가 맞지않습니다
insert into sample12 values(1,5,'검정');
#가능(O)
제약조건에 이름 붙이기
constraint 이름 primary key (a,b,c)
-> 관리하기가 편해진다고 한다