본문 바로가기
MYSQL

MYSQL - CRUD 1. Create

by 하니__ 2024. 5. 13.

 MySQL 테이블 생성
 
테이블을 생성했으니 
 
 
이제부터 데이터를 입력해 보자
 
 

 insert into 테이블이름
 (컬럼1,컬럼2)
 values
 (컬럼1 데이터, 컬럼2 데이터);

 
이런식으로 입력이 되게 되는데

 
이 때 에러가 발생되는데
DB를 선택하지 않았기때문에 생성 할 수 없다고 나온다
 
 

그렇다면 이렇게
테이블이름 앞에 DB이름과 . 을 추가입력하여
주면
 
해당DB의~ 해당 테이블에~
 
라는 의미가 되어
 
생성이 된다
 
 
 
혹은
 
보통 하나의 DB에 계속 작성할텐데
계속 DB이름을 입력하는게 귀찮은 일이기도 하고
시간낭비가 되니
 
아래의 방법을 사용하도록 한다
 

 
 
차례대로
use DB이름; 이라고 입력하게 되면
 
해당 DB의 이름이 선택되어져 이름이 bold체가 된다
 
그리고 위의 insert into~ 를 입력하게 되면
정상적으로 데이터가 들어가게 된다
 
 
 
 

여러개의 데이터를 저장할 때

그렇다면 저장 할 데이터가 여러개일때는
 
한번 쓰고 또 한번 쓰고 또 또 또
 
 
계속 써야할까?
아니다

insert into 테이블이름
컬럼1,컬럼2
values
(컬럼1데이터1, 컬럼2데이터1), (컬럼1데이터2, 컬럼2데이터2), (컬럼1데이터3, 컬럼2데이터3) ;

이렇게 그냥 하나의 행, 하나의 행, 하나의 행 
이런식으로 적어주면 되겠다

 
 
 
 
 
 

최대치를 초과했을 경우

 
 
이름을 8글자로 제한했다고 했을때
그 8글자를 초과했을때는 어떻게 될까

경고 메세지가 뭐라 뭐라 뜨면서 생성은 되었지만
8글자(공백포함)를 초과하는 부분은
전부 사라져버렸다
 
 
 

두개이상의 컬럼, 입력되지않은 컬럼의 정보 NULL

 

컬럼의 정보는 이름과 나이지만
이름만 적게 되면 나이는 Null로 표현이 된다
데이터프레임에서의 NaN과 같은데
데이터가 없다는 뜻이다
0이 아니다
 
 
 
 

NN Not Null

 
그러면 이번에는 테이블 세팅에서
NN을 체크를 한 뒤에 같은 상황을 연출해보자

 

 
NN은 Not Null 즉 Null을 만들지 말라 라는 의미다
 
NULL이 없이 생성하라고 만들자 그냥
공백으로 처리되어버렸다
 
이 경우에는 문자의 경우였고
그렇다면 숫자의 경우는 어떨까

숫자는 공백이 아니라 0으로 표현이 되었다
 
 
사실 NN설정과 함께 디폴트세팅이 있는데
 
우리가 간섭하지않으면
문자는 공백, 숫자는 0이 나오게 설정 되어있던것이다
 
그렇다면 이번엔 우리가 디폴트셋팅을 하고 진행해보자
 

이렇게 이름을 작성하지않으면 고양이
나이를 작성하지않으면 1로 나오게 설정 후
각자 비어있는 데이터를 입력해보자

각자 설정되어있는 기본값이 나오는 모습을 볼 수 있다
 
 
 
 
 
 
 

중복 데이터가 있다면?

 
 
 

ID컬럼을 생성하여 제일 윗 컬럼으로 드래그 해서 넣어준뒤에
PK와 UN, AI를 체크해준다
 
이 때
 
PK는 Primary Key 
기본 적인 키
UN은 Unsigned
음수가 없는
AI는 Auto Increment
자동 증가다
 
즉, 음수가 없는 1부터 시작되는 숫자가 자동적으로 증가되는 키 값을 ID에
새로운 데이터가 들어올때 알아서 넣어주게 된다
 

 
그래서 확인해보면 이렇게
중복되는 데이터가 있어도
 
고유 ID 값이 설정 되어있어 다른 데이터라고 구분지어준다
 
 
 
 

'MYSQL' 카테고리의 다른 글

MYSQL - CRUD 3. Update , Delete  (0) 2024.05.13
MYSQL - CRUD 2. Read  (0) 2024.05.13
MySQL 테이블 생성  (0) 2024.05.13
MySQL 데이터타입  (0) 2024.05.13
AWS MySQL FreeTier - 데이터베이스 생성  (0) 2024.05.10