DB/mysql

[mySql 마리아db] 테이블 생성, 삭제, 수정

꼬ㄴi 2023. 7. 23. 02:41

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 [컬럼명] = [데이터값]