웹사이트 검색

Ubuntu 클라우드 서버의 MySQL 및 MariaDB에서 테이블을 만드는 방법


상태: 더 이상 사용되지 않음

이 문서에서는 더 이상 지원되지 않는 Ubuntu 버전에 대해 설명합니다. 현재 Ubuntu 12.04를 실행하는 서버를 운영 중인 경우 지원되는 Ubuntu 버전으로 업그레이드하거나 마이그레이션하는 것이 좋습니다.

  • Ubuntu 14.04로 업그레이드합니다.
  • Ubuntu 14.04에서 Ubuntu 16.04로 업그레이드
  • 서버 데이터를 지원되는 버전으로 마이그레이션

이유:

대신 참조:

MySQL과 MariaDB란?

MySQL과 MariaDB는 SQL 언어를 사용하는 널리 사용되는 두 가지 데이터베이스 시스템입니다. Ubuntu의 많은 응용 프로그램은 MySQL 또는 MariaDB를 사용하여 정보를 관리합니다.

이 기사에서는 MySQL 또는 MariaDB 인터페이스 내에서 테이블을 생성하는 방법에 대해 설명합니다. Ubuntu 12.04 VPS 서버에서 이러한 작업을 수행하지만 대부분의 명령은 모든 Ubuntu 시스템에서 동일해야 합니다.

Ubuntu에 MySQL 및 MariaDB를 설치하는 방법

MySQL과 MariaDB는 동일한 명령 구문을 사용하므로 두 데이터베이스 시스템 모두 이 가이드에서 작동합니다.

Ubuntu에 MySQL을 설치하려면 다음 명령을 사용하십시오.

sudo apt-get install mysql-server

Ubuntu 12.04에 MariaDB를 설치하려면 터미널에 다음을 입력하십시오.

sudo apt-get update
sudo apt-get install python-software-properties
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://repo.maxindo.net.id/mariadb/repo/5.5/ubuntu precise main'
sudo apt-get update
sudo apt-get install mariadb-server

Ubuntu에 MySQL을 설치하는 방법에 대한 자세한 내용은 이 가이드를 따르십시오.

MySQL 및 MariaDB에서 데이터베이스 생성

테이블을 보기 전에 MySQL 내에서 초기 데이터베이스 환경을 구성해야 합니다.

다음 명령을 사용하여 MySQL 또는 MariaDB에 로그인합니다.

mysql -u root -p

계속하려면 설치 중에 설정한 암호를 입력하십시오.

우리는 "playground"라는 학습용 데이터베이스를 만들 것입니다. 다음 명령을 사용하여 데이터베이스를 생성합니다.

CREATE DATABASE playground;

다음 명령을 사용하여 새 데이터베이스로 전환합니다.

USE playground;

이제 테이블에 대한 학습을 시작할 준비가 되었습니다.

MySQL 및 MariaDB에서 테이블을 만드는 방법

데이터베이스 이름을 "playground"로 지정했으므로 이제 이 데이터베이스를 사용하여 놀이터에서 발견된 장비를 설명하는 테이블을 만들 수 있습니다.

테이블 생성 구문은 다음 규칙을 따릅니다.

CREATE TABLE [IF NOT EXISTS] name_of_table (list_of_table_columns) [engine=database_engine]

대괄호 안의 섹션("[" 및 "]")은 선택 사항입니다. "IF NOT EXISTS" 옵션은 같은 이름의 테이블이 이미 있는 경우 테이블 생성을 강제로 중단합니다. 테이블이 이미 생성된 경우 오류가 발생하지 않도록 하려면 이 옵션을 사용하는 것이 중요합니다.

"engine=database_engine" 섹션은 정보 처리를 최적화하기 위해 특정 유형의 테이블을 선택하기 위한 것입니다. 이것은 이 기사의 범위를 벗어나며 이 옵션을 생략하면 좋은 기본값(InnoDB)이 선택됩니다.

잠시 후 열 섹션에 필요한 다양한 필드를 설명하겠지만 지금은 테이블을 생성해 보겠습니다.

CREATE TABLE IF NOT EXISTS equipment (
    equip_id int(5) NOT NULL AUTO_INCREMENT,
    type varchar(50) DEFAULT NULL,
    install_date DATE DEFAULT NULL,
    color varchar(20) DEFAULT NULL,
    working bool DEFAULT NULL,
    location varchar(250) DEFAULT NULL,
    PRIMARY KEY(equip_id)
    );
Query OK, 0 rows affected (0.03 sec)

열 정의

우리가 달성한 것을 보려면 다음 명령을 사용하여 새 테이블의 열을 출력하십시오.

show columns in equipment;
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          | |+--------------+--------------+------+-----+---------+----------------+
| equip_id     | int(5)       | NO   | PRI | NULL    | auto_increment |
| type         | varchar(50)  | YES  |     | NULL    |                |
| install_date | date         | YES  |     | NULL    |                |
| color        | varchar(20)  | YES  |     | NULL    |                |
| working      | tinyint(1)   | YES  |     | NULL    |                |
| location     | varchar(250) | YES  |     | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

결과는 열을 정의하는 데 필요한 필드에 대한 통찰력을 제공합니다. 테이블 생성 명령의 각 열 설명은 쉼표로 구분되며 다음 규칙을 따릅니다.

Column_Name Data_Type[(size_of_data)] [NULL or NOT NULL] [DEFAULT default_value] [AUTO_INCREMENT]

다음은 각 열 정의의 값입니다.

<ul>
<li><strong>Column Name</strong>: Describes the attribute being assigned.  For instance, our first column is called "equip_id" because it will hold the unique ID number associated with each piece of equipment.</li>

<li><strong>Data Type</strong>: Specifies the type of data the column will hold.  Can be any of MySQL's data types.  For instance, "int" specifies that only integer values will be accepted, while "varchar" is used to hold string values.  There are many data types, but these are outside of the scope of this article.

<em>Note: Most data types need a size value in parentheses to specify the maximum amount of space needed to hold the values for that field.</em></li>

<li><strong>Null</strong>: Defines whether null is a valid value for that field.  Can be "null" or "not null".</li>

<li><strong>Default Value</strong>: Sets the initial value of all newly created records that do no specify a value. The "default" keyword is followed by the value.</li>

<li><strong>auto_increment</strong>: MySQL will handle the sequential numbering internally of any column marked with this option, in order to provide a unique value for each record.</li>
</ul>

마지막으로 열 선언을 닫기 전에 "PRIMARY KEY (columns_to_be_primary_keys)\를 입력하여 기본 키로 사용할 열을 지정해야 합니다.

우리는 "auto_increment" 옵션이 기본 키의 요구 사항인 고유한 값을 보장하기 때문에 "equip_id" 열을 기본 키로 사용했습니다.

MySQL 또는 MariaDB 테이블에 데이터를 삽입하는 방법

테이블에 레코드를 삽입해 보겠습니다. 이렇게 하려면 다음 구문을 사용하십시오.

INSERT INTO table_name (field1, field2, ...) VALUES (value1, value2, ...);

모든 문자열 값은 따옴표 안에 넣어야 합니다. "auto_increment"가 설정된 모든 열에는 값이 필요하지 않습니다. 데이터베이스에서 다음 일련 번호를 제공하기 때문입니다.

다음과 같이 놀이터 장비 테이블에 슬라이드를 추가할 수 있습니다.

INSERT INTO equipment (type, install_date, color, working, location)
VALUES
("Slide", Now(), "blue", 1, "Southwest Corner");

날짜 열에 현재 날짜를 채우는 "Now()"라는 특수 함수를 사용했습니다.

정보를 보려면 테이블을 쿼리하십시오. 별표(*)는 모든 항목과 일치하는 특수 와일드카드 문자입니다. 이 쿼리는 장비 테이블의 모든 항목을 선택합니다.

SELECT * FROM equipment;
+----------+-------+--------------+-------+---------+------------------+
| equip_id | type  | install_date | color | working | location         |
+----------+-------+--------------+-------+---------+------------------+
|        1 | Slide | 2013-07-26   | blue  |       1 | Southwest Corner |
+----------+-------+--------------+-------+---------+------------------+
1 row in set (0.00 sec)

다른 항목을 추가해 보겠습니다.

INSERT INTO equipment (type, install_date, color, working, location)
VALUES
("Swing", Now(), "green", 1, "Northwest Corner");

새 데이터가 테이블에 있음을 알 수 있습니다.

SELECT * FROM equipment;
+----------+-------+--------------+-------+---------+------------------+
| equip_id | type  | install_date | color | working | location         |
+----------+-------+--------------+-------+---------+------------------+
|        1 | Slide | 2013-07-26   | blue  |       1 | Southwest Corner |
|        2 | Swing | 2013-07-26   | green |       1 | Northwest Corner |
+----------+-------+--------------+-------+---------+------------------+
2 rows in set (0.00 sec)

MySQL 및 MariaDB에서 테이블을 삭제하는 방법

테이블을 삭제하려면 다음 구문을 사용할 수 있습니다.

DROP TABLE table_name;

테이블이 삭제되면 내부 데이터를 복구할 수 없으므로 이 명령에 매우 주의하십시오.

먼저 "show tables" 명령이 어떻게 생겼는지 설정할 수 있도록 현재 테이블을 봅니다.

SHOW tables;
+----------------------+
| Tables_in_playground |
+----------------------+
| equipment            |
+----------------------+
1 row in set (0.00 sec)

장비 테이블을 삭제하겠습니다.

DROP TABLE equipment;

이제 "playground" 테이블 목록을 다시 확인하십시오.

SHOW tables;
Empty set (0.00 sec)

\playground\ 데이터베이스에 더 이상 테이블이 없으므로 작업이 성공적이었습니다.

결론

이제 테이블에서 기본 작업을 수행하는 데 익숙해졌을 것입니다.

MySQL 또는 MariaDB를 관리하는 데 필요한 기본 기술입니다. 지금 익숙해지면 데이터베이스 관리의 다른 영역에 뛰어들 때 도움이 될 것입니다.