Primary Key / Quiz

losuif·2021년 7월 24일
0

학원 복습 - MySQL

목록 보기
4/4
post-thumbnail

👩🏼‍💻 Primary Key(PK)


  • 테이블에서 생성하는 Key 속성 : 기본키, 참조키, 외래키, 슈퍼키, ...

  • 기본키(Primary Key)는 테이블을 생성할 때 특정 컬럼에 지정하여 사용한다.

  • 유일성 문제(데이터가 중복되면 안됨)의 해결을 위해 PK 사용

  • 기본키 사용시 적용되는 제약 조건
    : 중복값(duplication)이 입력될 수 없다.
    / null(미입력상태(의 값, 널 값)) 입력 불가 (not null)

  • 쿼리에서 PK 적용하는 방법
    : 지정하고 싶은 컬럼 contraints(제약조건) 영역에 기재
    / 테이블을 모두 설정한 후 소괄호를 닫기 전에 constraints 명령어를 사용하여 기재

  • 컬럼에 입력 될 자료를 예상하여 설정해야 한다.
    ex) 동일한 것이 있을 수 있는가? if X => PK 적용 대상
    / 향후 동일한 것이 존재 할 수 있는가? if O => PK 적용 대상 X
    / null 사용 가능 (미입력 상태로 둬도 되는가?) if O => PK 적용 대상

  • 하나의 컬럼 또는 두 개의 컬럼을 묶어서 PK 지정할 수는 있지만, 두 개의 컬럼 각각에 지정할 수는 없다.

  • 테이블을 만들어 둔 상태에서 primary key 적용

  alter table list
  add primary key (C/N);
  • 테이블을 만들어 둔 상태에서 primary key 제거
    alter table list
    drop primary key;
    
  • 두 개의 컬럼에 pk 지정
create table T/N(
   	......
    constraint primary key(C/N, C/N)
  );



Quiz)

create database mallDB;
use mallDB;

create table goodsinfo(
num		int			unique,			
code	char(5)		primary key,	
name	char(30),
price	int,
maker	char(20)
);

insert into goodsinfo values 
(1, 'A001', '디지털TV', 520000, '제일'),
(2, 'A002', 'DVD', 240000, '제일'),
(3, 'U101', 'DSLR', 830000, '우수'),
(4, 'U102', '전자사전', 160000, '우수'),
(5, 'H704', '전자렌지', 90000, '하나');

select * from goodsinfo;

set sql_safe_updates = 0;
update goodsinfo set price = 750000 where num = 3;
select * from goodsinfo;

select * from goodsinfo where maker = '%제일%'; #셀 내용 모두 동일

select * from goodsinfo where name like '%TV%'; #셀 내용 중 일부

select * from goodsinfo order by code desc;

select * from goodsinfo order by maker asc, price asc;

delete from goodsinfo where code = 'A002';
select * from goodsinfo;


select
num as 번호,
code as 상품번호,
name as 상품명,
price as 가격,
maker as 제조사
from goodsinfo;

0개의 댓글