mySQL 데이터베이스 스키마 작성을 위한 초보자 가이드

mySQL 데이터베이스 스키마 작성을 위한 초보자 가이드

소프트웨어 프로젝트를 개발할 때 가장 중요하고 기본적이며 본질적인 측면 중 하나는 적절하게 구조화된 데이터베이스 스키마입니다. 그것은 집을 지을 때 기초가 제대로 놓여 있는지 확인해야 하는 것과 같습니다. 그렇지 않으면 양질의 집을 지을 기회가 크게 줄어듭니다.





생각보다 놀라울 정도로 쉽습니다. 잘 설계된 데이터베이스 스키마를 작성하는 데 사용되는 다양한 측면에 대해 알아보겠습니다.





잠자기 윈도우 10 단축키

테이블 생성 구문

시작하려면 좋아하는 텍스트 편집기를 엽니다. 데이터베이스 스키마를 생성하려면 일반 텍스트 파일만 있으면 됩니다. 데이터베이스는 각각 열로 구성된 여러 테이블로 구성되며 CREATE TABLE 구문을 사용하여 단일 테이블을 생성합니다. 다음은 기본 예입니다.






CREATE TABLE users (
id INT NOT NULL,
is_active TINY INT NOT NULL,
full_name VAR CHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL
);

보시다시피 다음과 같은 데이터베이스 테이블이 생성됩니다. 사용자 네 개의 열로 구성되어 있습니다. 이것은 다음으로 시작하는 상당히 간단한 SQL 문이어야 합니다. 테이블 생성 , 데이터베이스 테이블 이름, 괄호 안에 쉼표로 구분된 테이블 열.

올바른 열 유형 사용

위에 표시된 것처럼 테이블이 구성될 열은 쉼표로 구분됩니다. 각 열 정의는 동일한 세 부분으로 구성됩니다.



COL_NAME TYPE [OPTIONS]

열 이름, 열 유형, 선택적 매개변수 순입니다. 나중에 선택적 매개변수에 대해 알아보겠습니다. 그러나 열 유형에 중점을 두어 사용 가능한 가장 일반적으로 사용되는 열 유형이 아래에 나열되어 있습니다.

모든 의도에 대해 위의 열 유형은 잘 구성된 mySQL 데이터베이스 스키마를 작성하는 데 필요한 모든 것입니다.





열 옵션 정의

열을 정의할 때 지정할 수 있는 다양한 옵션도 있습니다. 아래는 다른 예입니다. 테이블 생성 성명:


CREATE TABLE users (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL UNIQUE,
status ENUM('active','inactive') NOT NULL DEFAULT 'active',
balance DECIMAL(8,2) NOT NULL DEFAULT 0,
date_of_birth DATETIME,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
);

위의 내용이 다소 어려워 보일 수 있지만 걱정하지 마십시오. 매우 간단합니다. 분해하면 위의 진술에서 일어나는 일이 다음과 같습니다.





  • 테이블의 속도와 성능에 도움이 되도록 가능한 모든 열에 항상 NOT NULL을 사용해야 합니다. 이것은 단순히 행이 삽입될 때 열을 비워 둘 수 없음/널을 지정합니다.
  • 속도와 성능을 향상시키는 데 도움이 되므로 항상 열 크기를 현실적으로 가능한 한 작게 유지하십시오.
  • NS ID column은 정수이고 고유함을 의미하는 테이블의 기본 키이기도 하며 레코드가 삽입될 때마다 1씩 증가합니다. 이것은 일반적으로 생성하는 모든 테이블에 사용해야 하므로 테이블 내의 단일 행을 쉽게 참조할 수 있습니다.
  • NS 상태 열은 ENUM이며 '활성' 또는 '비활성' 값을 가져야 합니다. 값을 지정하지 않으면 새 행이 '활성' 상태로 시작됩니다.
  • NS 균형 열은 모든 새 행에 대해 0에서 시작하고 소수점 이하 두 자리 형식이 지정된 금액입니다.
  • NS 생일 열은 단순히 DATE이지만 생성 시 생년월일이 알려지지 않을 수 있으므로 null 값도 허용합니다.
  • 마지막으로, 만든_에서 열은 TIMESTAMP이며 행이 삽입된 현재 시간이 기본값입니다.

위의 내용은 잘 구성된 데이터베이스 테이블의 예이며 앞으로의 예로서 사용해야 합니다.

다음과 같은 관계형 데이터베이스를 사용하는 가장 큰 장점 중 하나는 MySQL 외래 키 제약 조건 및 계단식에 대한 탁월한 지원입니다. 두 개의 테이블을 열로 연결하여 부모 자식 관계를 형성하는 경우이므로 부모 행이 삭제되면 필요한 자식 행도 자동으로 삭제됩니다.

다음은 예입니다.


CREATE TABLE users (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL UNIQUE,
full_name VARCHAR(100) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
) engine=InnoDB;
CREATE TABLE orders (
id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
userid INT NOT NULL,
amount DECIMAL(8,2) NOT NULL,
product_name VARCHAR(200) NOT NULL,
FOREIGN KEY (userid) REFERENCES users (id) ON DELETE CASCADE
) engine=InnoDB;

FOREIGN KEY 절이 마지막 줄임을 알 수 있습니다. 이 줄은 단순히 이 테이블에 다음으로 연결된 자식 행이 포함되어 있음을 나타냅니다. 사용자 아이디 열을 부모 행으로, 이는 ID사용자 테이블. 이것이 의미하는 바는 행이 삭제될 때마다 사용자 테이블에서 mySQL은 자동으로 모든 해당 행을 삭제합니다. 명령 데이터베이스 내에서 구조적 무결성을 보장하는 데 도움이 되는 테이블입니다.

또한 참고 엔진=이노DB 위 진술의 끝에서. InnoDB는 이제 기본 mySQL 테이블 유형이지만 항상 그런 것은 아니므로 캐스케이딩이 InnoDB 테이블에서만 작동하므로 안전한 측면을 유지하기 위해 추가해야 합니다.

한 번에 얼마나 많은 사람들이 넷플릭스를 볼 수 있습니까?

자신감 있는 디자인

이제 견고하고 잘 구조화된 mySQL 데이터베이스 스키마를 설계하는 데 순조롭게 진행되고 있습니다. 위의 지식을 사용하여 이제 성능과 구조적 무결성을 모두 제공하는 잘 구성된 스키마를 작성할 수 있습니다.

스키마가 제자리에 있으면 이러한 스키마와 함께 사용하는 방법을 알고 있어야 합니다. 필수 SQL 명령 .

공유하다 공유하다 트위터 이메일 SQL 조인을 사용하여 한 번에 여러 데이터베이스 테이블을 쿼리하는 방법

SQL 조인을 사용하여 쿼리를 간소화하고 시간을 절약하며 SQL 고급 사용자처럼 느끼게 하는 방법을 알아보세요.

다음 읽기
관련 항목 저자 소개 매트 디작(18건의 기사 게재) 매트 디작이 참여한 작품 더보기

뉴스레터 구독

뉴스레터에 가입하여 기술 팁, 리뷰, 무료 전자책 및 독점 거래를 확인하십시오!

구독하려면 여기를 클릭하세요.