4. Table
: 데이터는 관계형 DB의 기본단위인 테이블 형태로 저장된다.
- 열 : field, attribute, column
ex) 이름, 주민등록번호, 전화번호, 나이 등...
- 행 : tuple, record, row
ex) 홍길동, 940929-1*****, 010-9999-9999, 30
- 데이터 자료형 : 숫자, 문자열, boolean, 날짜/시간, 큰 객체
1) 숫자 : INT, FLOAT, DOUBLE 등
2) 문자열 : CHAR(고정), VARCHAR(가변)
3) boolean : BIT
4) 날짜 : DATE, TIME, DATETIME, YEAR, TIMESTAMP
5) 큰 객체 : TEXT 등
- CRUD : 컴퓨터 소웨가 가지는 기본적 데이터 처리 기능
1. create -> insert
== put/post (http를 통한 API에서 사용하는)
2. read -> select
== get
3. update
== put/patch
4. delete
== delete
< 생성 >
ex)
create table member (
name varchar(20),
email varchar(100),
phone varchar(12),
pw varchar(50),
marketAgree bit
);
- 테이블이 어떻게 구성되어 있는가?
desc member;
< 데이터 추가 >
: insert into 테이블명(속성들) values(값들);
insert into member
(name, email, phone, pw, marketAgree, register_date)
values ('김땡땡', 'kim@naver.com', '01011111111', 'passwordKim', true, now());
- 결과
select * from member;
※ alias == 별명
- 테이블, 컬럼에 대한 별명? : as를 이용하여
select m.name from member as m;
♥ in java
→ select : 반환값 - 1~N의 행
→ insert : 반환값 - 명령어를 통해서 수행한 결과의 레코드 수
데이터 중복될 수 있지 않는가? 즉, 회원가입을 여러번 시도하면 계속 성공하지 않을까? 그러면 안된다!
how? : PK(primary key)
- PK : 주 식별자키로 테이블의 모든 데이터를 식별하는 컬럼 (ex. 주민등록번호, 학번, 이메일 등)
→ 중복 불가능, NULL 불가능
- FK(foreign key) : 외부 식별자키로 테이블 간의 종속 관계
→ 회원가입을 완료하면 이메일은 모든 사용자(member)들 중 유일하기 때문에 식별자(PK). 이 사용자가 어떤 제품이 마음에 들어 구입하였다. 그렇다면 이 제품을 구입(buy)한 사람들의 목록에서 사용자의 PK인 이메일로 각 구매자를 식별할 수 있다. 즉, buy 테이블에서 member 테이블의 이메일을 FK로 설정한 것이다.
1. 이미 생성된 테이블에서 특정 속성을 PK로 만들기
alter table member
add constraint primary key pk_member (email);
2. PK 설정 삭제
alter table member drop primary key ;
< 데이터 수정 >
: update 테이블명 set 컬럼1=값1, 컬럼2=값2 ... where 조건;
update member set name='박땡땡' where email='kim@naver.com';
♥ in java
→ update : 반환값 - 명령어를 통해서 수행한 결과의 레코드 수
< 데이터 삭제 >
: delete from 테이블명 where 조건;
delete from member where email='kim@naver.com';
♥ in java
→ delete : 반환값 - 명령어를 통해서 수행한 결과의 레코드 수