본문 바로가기
학교 강의/데이터베이스

4 주차

by hoshi03 2023. 9. 22.

select user from user; <- 사용자 조회

 

create user ho@localhost identified by '1111' <- ho 라는 사용자 생성, 비밀번호는 1111(반드시 작은 따옴표로)

grant all privileges on DB이름.*이나 테이블이름.* to ho@localhost with grant option;

특정 스키마나 테이블에서 사용자 ho에 모든 권한을 주기 

 

 

루트가 아닌 사용자가 db를 생성하고 싶을대는 먼저 해당 db이름을 생성할 권한을 주고 db를 생성

grant all privileges on 디비이름.* to 사용자이름@localhost with grant option;

 

grant all privileges on exdb* to ho@localhost with grant option 이렇게 권한을 줘서

create database exdb;로 exdb를 생성했다

 

• 자주 쓰는 데이터 타입

1. 숫자 : int

2. 문자 : char(20), varchar(45)

3. 문자열 : text

4. boolean : enum

5. 날짜 : datetime

 

•제약조건

1. primary key

2. NN

3. unique(중복x)

4. default

5. check

6. foreign key ( ) references 릴레이션(어트리뷰트) 

    on updatate cascade

    on delete cascade

7. auto_increment(1,1) <- 1부터 1씩 자동으로 증가

 

! 참조하는 키가 있는 테이블은 당연히 참조할 키가 있는 테이블이 있어야 만들 수 있다

 

위에 제약조건, 데이터 타입을 이용해서 exdb 스키마에 member 테이블과 guestbook 테이블을 만들어서 실습을 해 보자

 

• 멤버 테이블 생성

create table member(
id varchar(20) primary key,
    pwd varchar(20) not null,
    name char(20) not null,
    gender char(10) check(gender in ('male','female')),
    age int check(age >= 19),
    phone char(20) not null unique,
    regdate datetime
);

 

• 테이블에 값 넣어주기 - insert 구문

insert into values 구문으로  넣어주기

insert into member values('ho','1111','chanho','male',25,'010-7674-0750',sysdate()); <- 전체 어트리뷰트를 한방에 넣으면 어느 어트리뷰트에 넣을지 표기하지 않아도 된다

 

 

도메인 무결성 제약조건 - insert into member values('hong','1111','chanho','lady',25,'010-7675-0750',sysdate());

'lady'는 체크에 걸린다

 

체크 제약조건 - 나이를 19 이하나 성별을 male, female 이외의 것을 사용하면 체크 제약조건에 걸린다

 

• 외부키를 이용하는 실습을 하기 위해서 다른 guestbook 테이블을 생성해서 외부키를 연결해보자

 

create table guestbook(
num int auto_increment primary key,
    id varchar(20),
    title char(50) default 'no_title',
    content text,
    writeday datetime,
    foreign key(id) references member(id)
    on update cascade on delete cascade
);

 

위의 create로 guestbook테이블을 만들때 foreign key(id) references member(id) <- member 테이블의 id를 가져와서 외부키로 참조했다, 하지만 이렇게만 하면 cascade 옵션이 없어서 빈 깡통같은 상태다.

foreign key(id) references member(id) on update cascade on delete cascade<- member 테이블의 id가 변경되거나 삭제되면 외부키인 guestbook 테이블의 id도 변경되거나 삭제된다

 

update member set id = 'hoshi' where id = 'ho';  <- 멤버 테이블의 이름이 'ho'인 id를 'hoshi'로 변경했다

guest 테이블을 조회하면 외부키로 연결해둔 id도 hoshi로 변경되었다!

 

delete from member where id = 'hoshi'; <- member 테이블에서 id가 'hoshi'인 튜플이 삭제되었고

id가 외부키인 테이블 guestbook에서도 id가 'hoshi'인 튜플이 삭제되었다

 

• 쿼리문 export

 

@데이터 정의어

생성 - create

변경 - alter(추가, 변경)

삭제 - drop

 

 

 

 

 

'학교 강의 > 데이터베이스' 카테고리의 다른 글

데베시험대비  (0) 2023.10.18
6주차 - 조인 시험에 많이 나옴  (0) 2023.10.13
5주차  (1) 2023.10.06
3주차  (0) 2023.09.15
1,2주차  (1) 2023.09.08