[DB] Mysql key, 조건절

나옹·2022년 12월 22일
0

Wep 서버

Was 서버: 동적 서버

DBMS (Database Managemant System)

-실시간 접근

-동시 공유

-계속적인 변화

DDL

-테이블 관리(create 생성 drop 삭제 alter (속성자체)수정)

DML

-튜플 조작(insert 삽입 select 검색 update (튜플내용)수정 delete 삭제)

**CRUD 작업이라고 부름

create table member(

-> no int,

-> id varchar(4),

-> name varchar(8),

-> point int default 10

-> );

desc member;

insert into member value(1,'aaa','kim',30);

select * from member;

select no,id from member;

select no as '번호‘,id from member;

  • 속성에 별칭을 지정 as는 생략 가능. 별칭을 지정하더라도 속성이 변하지 않음

insert into member value(2,'bbb','Lee',default);

select * from member;

insert into member(no,id,name)values(3,'ccc','park');

select from member;

select from member where id='aaa';

select from member where no<2;

  • where 튜플을 선택하기 위한 조건절

표시한 부분의 명령어의 뜻을 이해하기

문제 1. point가 10이상인 member 출력 , 출력 형태

번호

포인트

select as no '번호‘,point from member where point>10;

문제 2. update member set point=300; 위 명령문은 모든 사람의 포인트를 300으로 저장한다. id가 ccc인 사람의 포인트만 300으로 갱신

update member set point=300 where id='ccc';

문제 3. aaa인 사람의 정보를 지워라

delete from member where id='aaa';

문제 4. ccc의 point를 500, no를 900으로 수정

update member set point=500,no=900 where id='ccc';

명령에서 = 의 사용법

  1. 대입 연산자-B를 A에 반영

  2. 비교 연산자-참, 거짓 판별

Key

튜플을 식별하기 위한 식별자

속성에 Key라는 식별을 부여

종류: 슈퍼키, 후보키, 기본키(primary key), 대체키, 외래키

슈퍼키-유일성 (ex, (id)(주민번호)(id,주민번호)(id,주민번호,이름).....

후보키-유일성, 최소성-슈퍼키 중에서 최소성의 조건을 만족한 것들이 후보키 (id)(주민번호)

기본키-유일성, 최소성-후보키 중에서 기본키로 사용할 것을 지정

(ex. 기본키는 노출이 쉽게 되기 때문에 주민번호와 같은 중요한 정보로는 사용하지 않는다.(id)로 지정)

대체키-유일성, 최소성-기본키로 정해지지 않고 남은 후보키(ex.(주민번호))

외래키

-기본키

null값을 가질 수 없다. (id는 비울 수 없다)

유일하게 튜플을 구분(한가지만 선택)

튜플을 찾는 속도가 빨라질 수 있다(index를 형성해준다)

**기본키 설정 해보기

mysql> create table member2(
id varchar(4) primary key,
name varchar(8),
jumin varchar(13) not null
);

만약 하나의 속성만으로는 기본키의 기능이 떨어지는 경우 두 개의 속성을 하나의 기본키로 묶는 경우도 가끔 있다.

mysql> create table member2(
id varchar(4),
name varchar(8),
jumin varchar(13) not null,
primary key(id,name)
);

id와 name 각각 기본키라서 기본키가 2개가 되는 개념이 아니라 id와 name이 묶인것이 기본키이다.

profile
최고의 개발을 위해 !

0개의 댓글