Notice
Recent Posts
Recent Comments
Link
빵 좋아하는 개발자🥐
[mySql 마리아db] 테이블 생성, 삭제, 수정 본문
oracle로만 하다가 처음으로 db 바꿔서 프로젝트. . . 문법이 조금씩만 달라서 더 헷갈린다
오라클은 많이 써서 이제 뇌가 대충 기억을 하는데 마리아는 많이 안 써서 그런지 계속 구글링으로 확인해야 되는 거 넘 귀찮 . .
암튼 고고
테이블 생성 (CREATE)
create table member(
mem_num int not null auto_increment primary key,
mem_id varchar(12) not null,
mem_auth int(1) not null default 1
)default charset=utf8;
create table member_detail(
mem_num int not null primary key,
mem_name varchar(30) not null,
mem_pw varchar(16) not null,
mem_photo blob,
mem_regdate date not null default curdate(),
constraint member_detail_fk1 foreign key(mem_num) references member(mem_num)
)default CHARSET=utf8;
오라클이랑 거의 비슷한데 달라서 새로 알게 된 개념이
auto_increment 랑 date타입의 데이터를 추가할 때 기본값인 curdate( ) 다.
auto_increment는 insert 한 번 될 때마다 자동으로 값이 증가하는 시퀀스다. 오라클 시퀀스에서 한 단계 디벨롭된 느낌
curdate( ) 는 오라클 sysdate랑 같은 개념이다. 현재 날짜 가져오기
테이블 생성 괄호 뒤에 default CHARSET=utf8; 를 설정해줘야 insert 될 때 한글 입력이 가능하다.
테이블 수정(ALTER) 계속 추가할 예정-
alter 문법은 너무 많아서 일단 내가 쓴 것만 정리
//컬럼 추가
//alter table 테이블명 add [추가할 컬럼] [속성(데이터 타입)];
alter table member_detail add mem_name varchar(30) unique key;
속성 뒤에 primary key 나 unique key 같은 키 설정도 가능함. 나는 필요해서 해줬다
//컬럼 삭제
//alter table [테이블 이름] drop column [컬럼명];
alter table member_detail drop column mem_num;
default 값 셋팅/ 삭제도 이번에 처음 해본 거라 정리함 . .
//기본값(default) 셋팅
//alter table [테이블명] alter column [컬럼명] set default [기본값];
alter table member_detail alter column mem_regdate set default curdate();
//기본값(default) 삭제
//alter table [테이블명] alter [컬럼명] drop default;
alter table member_detail alter mem_regdat drop default;
KEY 설정 해주는 거 . . .
//KEY 설정
//alter table [테이블명] add [키 종류] [(컬럼명)];
ALTER TABLE member_detail ADD UNIQUE KEY (mem_email);
이것도 이번에 처음 script에 적어서 실행해봄 . . db 작업 하다보면 이런 거 저런 거 새로 알게 돼서 좋다
컬럼명 변경하기
//컬럼명 변경
// alter [테이블명] change [원래컬럼명] [바꿀컬럼명] [컬럼속성]
alter table calendar change cal_date date_start date;
레코드 수정 (UPDATE)
- 레코드란? 여러 데이터 타입을 가질 수 있는 복합형 구조의 데이터 타입으로, 테이블 안에서 하나의 행을 말함
레코드 수정
//레코드 내용 수정
update [테이블명] set [컬럼명1] = [데이터값1], [컬럼명2] = [데이터값2], ... where [컬럼명] = [데이터값]
테이블 삭제 (DROP)
//테이블 삭제
//drop table [테이블명];
//테이블 동시 삭제
//drop table [테이블명1], [테이블명2], [테이블명3];
레코드 삭제
//레코드 삭제
delete from [테이블명] where [컬럼명] = [데이터값]