목차
-Primary key
-not null
-auto_increment
Primary key란?
데이터베이스 테이블의 설계 (데이터베이스)를 고유하게 식별하는 키
레코드를 유일(unique)하게 식별할수 있는 컬럼이다.(주민번호, 제품고유번호, 사용자id 등 서로 다른 값을 가져야 하는것이 주요키로 사용된다.)
PrimaryKey는 하나의 테이블에 저장된 모든 레코드가 서로 다른 값을 갖는 칼럼이다.
테이블은 PrimaryKey와 함께 ForeignKey를 가질수있다.
관계(RELATION)를 통해 테이블간의 정보를 연결할 수 있다. 하나의 테이블 정보는 다른 테이블의 정보를 구별하는데 쓰일수 있다.
ForeignKey를 만들경우에는 하나의 테이블에서 또다른 테이블로 모든 PrimaryKey를 복사해야한다. PrimaryKey는하나 또는 여러 컬럼이 될수 있으므로, 한테이블의 ForeignKey는 최소한 하나의 컬럼이여야 한다.
출처: https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=hongsuk1022&logNo=140128852567
NOT NULL
NOT NULL 제약 조건을 설정하면, 해당 필드는 NULL 값, 즉 빈 값을 저장할 수 없다.
이 제약 조건이 설정된 필드는 무조건 데이터를 가지고 있어야만 한다.
NOT NULL 제약 조건은 CREATE 문으로 테이블을 생성할 때나, 나중에 ALTER 문으로 추가할 수도 있다.
사용방법
여기서 auto_increment란??
스키마를 작성하다보면 데이터의 수를 p.k로 설정해야 할때가 있다.
이럴경우 새로 데이터를 insert할때마다 max(num)으로 기존에 추가되어있는 num의 최대값을 알아야 p.k값이 겹치지 않게 추가를 할 수있다. 하지만 insert마다 이렇게 num의 최대값을 받아오는 sql문을 작성하는것은 비효율적이므로 num에 Auto_Increment 속성으로 insert문을 보낼때 마다 자동으로 num값이 증가되게 저장할 수 있다.
auto_increment 속성은 1부터 시작하여 값을 계속 증가 시키므로 값이 중복될 일은 없다. 만약 1부터100까지의 데이터가 들어가 있을때 50~100까지 삭제하였다고 하면 새로 insert했을때 num값은 51이 아닌 101이다.
출처:
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=goddlaek&logNo=221005664911
'DBMS > mysql' 카테고리의 다른 글
[mysql] cmd(명령 프롬프트)로 테이블 만들기 (0) | 2022.02.17 |
---|