SQL에서 데이터베이스 및 테이블 만들기

데이터베이스 만들기

구조화 된 쿼리 언어로 데이터베이스와 테이블을 만들 준비가 되셨습니까? 이 기사에서는 CREATE DATABASE 및 CREATE TABLE 명령을 사용하여 수동으로 테이블을 만드는 프로세스를 살펴 본다. SQL을 처음 접하는 분이라면 먼저 SQL 기초 기사를 검토하십시오.

비즈니스 요구 사항

키보드를 사용하기 전에 고객의 요구 사항에 대한 확실한 이해가 필요합니다. 이 통찰력을 얻는 가장 좋은 방법은 무엇입니까? 물론 고객에게 말하기! XYZ의 Human Resources Director와 함께 앉아서 우리는 그들이 위젯 판매 회사이며 영업 사원에 관한 정보를 추적하는 데 주로 관심이 있다는 사실을 알게되었습니다.

XYZ Corporation은 영업 인력을 동부 및 서부 지역으로 나눕니다. 각 지역은 개별 영업 담당자가 관리하는 여러 영역으로 나뉩니다. HR 부서는 각 직원의 급여 정보 및 감독 구조뿐만 아니라 각 직원이 담당하는 영역을 추적하고자합니다. 이러한 요구 사항을 충족하기 위해이 페이지의 엔티티 - 관계 다이어그램 에 표시된 세 개의 테이블로 구성된 데이터베이스를 설계했습니다.

데이터베이스 플랫폼 선택하기

우리는 구조화 된 쿼리 언어 (SQL)를 기반으로하는 데이터베이스 관리 시스템 (또는 DBMS)을 사용하기로 결정했습니다. 따라서 모든 데이터베이스 및 테이블 생성 명령은 표준 ANSI SQL을 염두에두고 작성해야합니다.

ANSI 호환 SQL을 사용하면 Oracle 및 Microsoft SQL Server를 비롯한 SQL 표준 을 지원 하는 모든 DBMS에서 이러한 명령을 사용할 수 있습니다. 데이터베이스에 대한 플랫폼을 아직 선택하지 않은 경우 데이터베이스 소프트웨어 옵션 문서가 선택 과정을 안내합니다.

데이터베이스 만들기

첫 번째 단계는 데이터베이스 자체를 만드는 것입니다. 많은 데이터베이스 관리 시스템은이 단계에서 데이터베이스 매개 변수를 사용자 정의하는 일련의 옵션을 제공하지만 데이터베이스는 데이터베이스의 간단한 작성 만 허용합니다. 우리의 모든 명령과 마찬가지로 DBMS의 설명서를 참조하여 특정 시스템에서 지원하는 고급 매개 변수가 사용자의 요구를 충족시키는 지 확인할 수 있습니다. CREATE DATABASE 명령을 사용하여 데이터베이스를 설정합니다.

CREATE DATABASE personnel

위의 예에서 사용한 대문자를 특별히주의하십시오. "프로그래머"데이터베이스 이름과 같은 사용자 정의 이름에 소문자를 모두 사용하는 동안 "CREATE"및 "DATABASE"와 같은 SQL 키워드에 대문자를 모두 사용하는 것은 SQL 프로그래머간에 일반적인 방법입니다. 이 규칙은 쉽게 읽을 수 있도록 제공합니다.

이 튜토리얼을 계속 읽으면 데이터베이스 용 테이블을 만들 수 있습니다.

더 배우기

Structured Query Language 에 대해 더 자세히 알고 싶다면 Introduction to SQL을 읽거나 무료 Learning SQL 전자 메일 코스에 등록하십시오.

이제 데이터베이스를 설계하고 생성 했으므로 XYZ Corporation의 인사 데이터를 저장하는 데 사용되는 세 개의 테이블을 만들 준비가되었습니다. 이 튜토리얼의 이전 부분에서 설계 한 테이블을 구현할 것이다.

첫 번째 테이블 만들기

우리의 첫 번째 테이블은 우리 회사의 각 직원에 대한 개인 데이터로 구성됩니다. 각 직원의 이름, 급여, 신분증 및 관리자를 포함시켜야합니다. 성 및 이름을 별도의 필드로 분리하여 나중에 데이터 검색 및 정렬을 단순화하는 것이 좋습니다. 또한 각 직원 기록에 관리자의 직원 ID에 대한 참조를 삽입하여 각 직원의 관리자를 추적합니다. 먼저 원하는 직원 테이블을 살펴 보겠습니다.

ReportsTo 특성은 각 직원의 관리자 ID를 저장합니다. 표시된 샘플 레코드에서 Sue Scampi가 Tom Kendall과 John Smith의 관리자임을 확인할 수 있습니다. 그러나 그녀의 행에 NULL 항목이 표시 되어 Sue 관리자의 데이터베이스에 정보가 없습니다.

이제 SQL을 사용하여 인사 데이터베이스에 테이블을 만들 수 있습니다. 이렇게하기 전에 USE 명령을 실행하여 올바른 데이터베이스에 있는지 확인하십시오.

직원을 사용하십시오.

또는 "데이터베이스 담당자" 명령은 동일한 기능을 수행합니다. 이제 employees 테이블을 만드는 데 사용 된 SQL 명령을 살펴 보겠습니다.

CREATE TABLE 직원 (employeeid INTEGER NOT NULL, 성 VARCHAR (25) NOT NULL, 이름 VARCHAR (25) NOT NULL,보고 sto INTEGER NULL);

위의 예에서와 같이 프로그래밍 규칙에 따라 사용자 이름이 지정된 열과 테이블에 대해 SQL 키워드에 대문자를 모두 사용하고 소문자를 사용하도록 지정합니다. 위의 명령은 처음에는 혼란스럽게 보일 수 있지만 실제로는 뒤에 간단한 구조가 있습니다. 다음은 좀 더 명확한 일반화 된보기입니다.

CREATE TABLE table_name (attribute_name 데이터 유형 옵션, ..., attribute_name 데이터 유형 옵션);

특성 및 데이터 형식

앞의 예제에서 테이블 이름은 employees이고 employeeid, lastname, firstname 및 reportsto의 네 가지 속성을 포함합니다. 데이터 유형은 각 필드에 저장하려는 정보의 유형을 나타냅니다. 직원 ID는 간단한 정수이므로 employeeid 필드와 reportsto 필드 모두에 대해 INTEGER 데이터 유형을 사용합니다. 종업원 이름은 가변 길이의 문자열이며 우리는 종업원이 성 또는 이름이 25 자보다 길 것을 기대하지 않습니다. 따라서이 필드에 VARCHAR (25) 유형을 사용합니다.

NULL 값

CREATE 문의 옵션 필드에 NULL 또는 NOT NULL 을 지정할 수도 있습니다. 이는 데이터베이스에 행을 추가 할 때 해당 속성에 대해 NULL (또는 빈) 값이 허용되는지 여부를 데이터베이스에 알려줍니다. 이 예에서 HR 부서에서는 각 직원에 대해 직원 ID와 전체 이름을 저장해야합니다. 그러나 모든 직원에게 관리자가있는 것은 아닙니다. CEO는 아무에게도보고하지 않습니다! - 그래서 우리는 해당 필드에 NULL 항목을 허용합니다. NULL 이 기본값이며이 옵션을 생략하면 암시 적으로 속성에 NULL 값이 허용됩니다.

나머지 테이블 만들기

이제 영토 표를 살펴 보겠습니다. 이 데이터를 간략하게 살펴보면, 정수와 두 개의 가변 길이 문자열을 저장해야합니다. 앞의 예에서와 같이 지역 ID가 25자를 넘길 것으로 예상하지 않습니다. 그러나 일부 영토에는 더 긴 이름이 있으므로 속성의 허용 길이를 40 자로 확장합니다. 해당하는 SQL을 보자.

CREATE TABLE territories (territoryid INTEGER NOT NULL, territory 설명 VARCHAR (40) NOT NULL, regionid VARCHAR (25) NOT NULL);

마지막으로 EmployeeTerritories 테이블을 사용하여 직원과 지역 간의 관계를 저장합니다. 각 직원 및 지역에 대한 자세한 정보는 이전 두 테이블에 저장되어 있습니다. 따라서이 테이블에 두 개의 정수 ID 번호 만 저장하면됩니다. 이 정보를 확장해야하는 경우 데이터 선택 명령에서 JOIN을 사용하여 여러 테이블에서 정보를 얻을 수 있습니다. 데이터를 저장하는이 방법은 데이터베이스의 중복을 줄이고 스토리지 드라이브에서 공간을 최적으로 사용합니다. JOIN 명령에 대해서는 나중에 자습서에서 다루겠습니다. 최종 테이블을 구현하는 SQL 코드는 다음과 같습니다.

CREATE TABLE employeeterories (employeeid INTEGER NOT NULL, territoryid INTEGER NOT NULL);

메커니즘 SQL은 작성 후 데이터베이스의 구조를 변경합니다.

오늘날 특히 기민하다면 데이터베이스 테이블을 구현할 때 설계 요구 사항 중 하나를 "실수로"생략했음을 알았을 것입니다. XYZ Corporation의 인사 담당 이사는 데이터베이스가 직원 급여 정보를 추적하도록 요청했으며 우리가 작성한 데이터베이스 테이블 에이 정보를 제공하는 것을 게을리했습니다.

그러나 모든 것이 사라지지 않습니다. ALTER TABLE 명령을 사용하여이 속성을 기존 데이터베이스에 추가 할 수 있습니다. 급여를 정수 값으로 저장하려고합니다. 구문은 CREATE TABLE 명령의 구문과 매우 유사합니다. 여기서는 다음과 같습니다.

ALTER TABLE employees ADD salary INTEGER NULL;

이 속성에 NULL 값이 허용되도록 지정했습니다. 대부분의 경우 기존 테이블에 열을 추가 할 때 옵션이 없습니다. 이것은 테이블에이 속성에 대한 항목이없는 행이이 L 포함되어 있기 때.입니다. 따라서 DBMS는 공백을 채우기 위해 NULL 값 을 자동으로 삽입합니다.

그리고 그것은 SQL 데이터베이스와 테이블 생성 프로세스에 대한 우리의 견해를 마무리 짓습니다. SQL 튜토리얼 시리즈의 새로운 설치물 을 자주 확인하십시오. About Articles 사이트에 새로운 기사가 ​​추가되었을 때 이메일 알림을 받으려면 뉴스 레터를 구독하십시오!