[Data Base] MySQL DB, table생성,수정,제약

HOHO·2023년 3월 9일

#MYSQL

목록 보기
2/17

테이블 생성

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; #테이블 보기

제약조건 (Constraint)

  • 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)
-> 관리하기가 편해진다고 한다


profile
기계 그잡채가 되고싶다

0개의 댓글