👀 게시판 database table - 기획서에 맞춰 설계(기획서에 작성되어 있지 않은 사항도 고려해야함 !! )
create table notice(
no int(3) not null auto_increment, //999개의 글만 쓸 수 있음, 필수사항
subject varchar(200) not null, //최대 200글자 제목,필수사항
writer char(40) not null, //최대 20글자 글쓴이,필수사항
contents text not null, //긴글,선택사항
files varchar(100) null, //파일첨부,선택사항
today datetime not null default "0001-01-01 00:00:00", //글작성시간,필수사항
primary key(no) //중복방지
);
: notice라는 이름을 가진 table 생성
🔽
table 확인
desc notice;
[ table 자료형 ]
- char : 문자
- varchar : byte문자
- text : 많은 내용의 문자를 입력시 사용
==> tinytext(256byte) < text(65000byte) 65000자 < mediumtext(160000byte) 16만자 < longtext(420000byte = 4GB) 42만자
tiny는 댓글에 주로 사용 , 주로 text 사용
- int : 숫자만
==> tinyint(1~127) < smallint(128~60000) < int(~40억) < bigint(~1조 8천억)
defualt로 날짜 및 시간에 대한 규칙성 적용 필요 (default "0001-01-01')
- date : 연,월,일
- time : 시,분,초
- datetime : 연,월,일 시,분,초
* auto_increment 속성 : data 추가시 +1씩 자동 증가 (단, auto_increment는 무조건 primary - 안쓰면 에러)
🔽
table 생성 확인
desc notice;
🔽
데이터 추가
insert into notice (no,subject,writer,contents,files,today) values ('0','공지사항 오픈','관리자','공지사항 오픈으로 여러가지 문제 서비스를 공지 하겠습니다.','','2024-06-03 16:37:42');
❗ 주의 : 다중키로 primary key 설정시 auto_increment가 기준으로 잡히며
여러개의 다중키를 사용하더라도 단한개의 칼럼 데이터가 다를 경우 insert가 가능하다
🔽
데이터 삽입 확인
select * from notice;
🔽
데이터 삭제 => 삭제 후 no 1 3 4 5 .... 그대로 이어짐
delete from notice where no='2';
[응용] - admin 회원가입
create table admin_member(
no int(4) not null auto_increment,
a_id char(20) not null, //20자까지 받음
a_pw varchar(50) not null, //50자까지 받음
a_name char(50) not null, //한글은 25자
a_email varchar(100) not null, //한글도메인 염두에 두고 넉넉하게 잡아야 함
a_tel char(11) not null, //전화번호 최대 11자
a_part varchar(30) not null, //부서명
a_position varchar(30) not null, //직급,
a_indate datetime not null default "0001-01-01 00:00:00", //등록일자
a_use char(1) not null default 'Y', //로그인 가능 여부(퇴사)
primary key(no,a_id,a_email,a_tel)
);
=>
전화번호는 0으로 시작하기때문에 java에서 인식 불가 ∴ char(문자) 로 잡아줘야함 !
⭐ 데이터 삽입 이렇게 해두댐
1.
insert into admin_member values ('0','master1','a123456','관리자','master1@naver.com','01012345678','운영팀','대리','2024-06-03 17:32:24','Y');
원래
2.
insert into admin_member (no,a_id,a_pw,a_name,a_email,a_tel,a_part,a_position,a_indate,a_use) values ('0','seeungirl99','a1324','박세은','seeungirl99@gmail.com','01012345467','부서1','직책1','2024-06-03 16:37:42','Y');
- 1은 중간에 column 추가 못함
- 2로 작성시 중간에 column 추가 가능 (이렇게 다 작성 해주는게 좋다)
'CLASS > DATABASE' 카테고리의 다른 글
#3-2 / 외부 사용자 추가 방법 (0) | 2024.06.04 |
---|---|
#3-1 / unique, alter문법 (0) | 2024.06.04 |
#2-2 / 사용자에게 권한주기 (0) | 2024.06.03 |
#2-1 / MYSQL 기초문법 (0) | 2024.06.03 |
#1-1 / MYSQL start,setting (0) | 2024.05.30 |