상세 컨텐츠

본문 제목

[MySQL] 회원가입 데이터베이스 테이블 만들기 (1)

MySQL

by 주초위왕 2023. 3. 16. 15:53

본문

이 정보들을 데이터베이스 테이블에 담아보기.

아이디, 비밀번호, 이름, 휴대폰 번호, 이메일, 취미, 주민번호(2칸인데 하나로 넣을지 두개로 나눌지 고민해보기),  우편번호, 상세주소, 참고항목.

이가 외에도 추가로 가입할 당시의 날짜, 시간, 포인트도 넣어주기 

 

(비밀번호 확인은 생략 어차피 확인만 받으면 되니까)


create table tb_member (         
    mem_idx bigint auto_increment primary key,   
    mem_userid varchar(20) unique not null,
    mem_userpw varchar(20) not null,
    mem_name varchar(20) not null,
    mem_hp varchar(20) not null,

    mem_email varchar(50),

    mem_hobby varchar(100),

    mem_ssn1 char(6) not null,

    mem_ssn2 char(7) not null,

    mem_zipcode char(5) not null,
    mem_address1 varchar(100) not null,

    mem_address2 varchar(100),

    mem_address3 varchar(100),

    mem_regdate datetime default now( ) 

); <-- 여기를 마우스에 대고 Ctrl + Enter를 하면 맨아래 창이 뜬다

 

create table tb_member

# 테이블 생성하고 이름 짓기 tb_mamber

 

mem_idx bigint auto_increment primary key,

# 첫번째 필드_무조건 bigint auto_increment에는 primary key생성(자동으로1씩 추가)

 

 mem_userid varchar(20) unique not null,

# 두번째 필드_필드명 mem_userid, 만약 글자가3개면 나머지 채워지지 않는 부분이 낭비를 하므로  varchar를 쓰고 20바이트까지 들어갈 수 있게 설정 그리고 중복 아이디가 있으면 에러가 생기도록 unique not null 조건 주기.

 

 mem_userpw varchar(20) not null,

# 3번째 필드_mem_userpw, varchar(20) 20글자까지 허용, unique not nul를 걸면 비밀번호가 같을 수 있고, 비밀번호는 무조건 있어야 하니 not null조건 주기.

 

mem_name varchar(20) not null,

# 4번째 필드_mem_name, 이름이 긴 사람도 있으니 varchar(20) 20바이트 주기(varchar는 알아서 줄여주니 유용함), 이름은 무조건 있어야 하니 not null주기.

 

mem_hp varchar(20) not null,

# 5번째 필드_mem_hp, 해외번호나 자릿수가 다를 수 있으니 varchar(20), 전화번호 없는 사람은 가입을 못함 not null

 

mem_email varchar(50),

# 6번째 필드_mem_email, 이메일이 긴 사람도 있기 때문에 varchar(50), 이메일을 넣지 않아도 에러가 나지 않도록 아무 조건도 주지 않기

 

# mem_hobby varchar(100),

취미에 잠자기, 코딩, 영화감상, 음악듣기, 요가를 따로 만들지 않고 한곳에 한꺼번에 저장하기

데이터를 꺼내고 싶으면 콤마(,)기준으로 split를 해서 나눠주면 되니 한 줄로 쭉 입력 받을 수 있게

 

편의상 주민등록 번호는 앞자리, 뒷자리 두개에 나눠서 저장하기

# mem_ssn1 char(6) not null,

# mem_ssn2 char(7) not null,

 

우편번호, 주소는 무조건 넣게 not null넣어주기

# mem_zipcode char(5) not null,

 

# mem_address1 varchar(100) not null,

 

나머지는 그냥 비워두기

# mem_address2 varchar(100),

# mem_address3 varchar(100),

 

가입한 시간 저장

내가 지정하지 않아도 상대방이 가입한 현재 시간에 나올 수 있도록 타입은 datetime로 날짜시간을 넣고

default를 걸어서 now( )라는 함수를 쓰게되면 데이타를 insert 했을때 시간을 따로 하지 않아도 자동으로 now( )함수가 불려짐

# mem_regdate datetime default now( )


실행 결과 오류가 뜨진 않았지만 강의내용에서는 에러가 떠서 올려봄

 

강의영상에서 뜨는 오류인데 데이터베이스를 어디에다 만들것인지 선택되지 않았다라는 의미

 

-- DATABASE 선택
-- USE 데이터베이스명
use frontend;   #실행을하면 frontend선택이 되었으니 왼쪽 창이 열리고, 

 

create table tb_member를 다시 실행하면 성공했다고 맨아래 초록색 메세지가 뜬다.

 

여기서 테이블 구조를 알고 싶다면

-- 테이블 구조 확인
-- DESC 테이블명
desc tb_member; 를 실행

 

여기서 Tables를 마우스 오른쪽 버튼을 눌러서 Refresh All를 누르면 tb_mamber가 생긴다.

 

테이블을 시각적으로 보고싶다면 아래 화면처럼 따라하기.

테이블을 삭제하거나 추가할 수 있음.

구조 확인하는건 명령어를 몰라도 상관이 없음

 

 

 

 

반응형

관련글 더보기

댓글 영역