MariaDB / TABLE / AUTO_INCREMENT / 자동으로 증가하는 값 만들기

테이블에는 데이터를 특정할 수 있는 고유값이 있는 게 좋습니다. 고유값을 수동으로 넣을 수는 없으므로, 값을 자동으로 증가시키는 AUTO_INCREMENT를 사용합니다.

AUTO_INCREMENT로 고유값이 어떻게 만들어지는지 알아보겠습니다. 사용하는 테이블 이름은 test입니다.

자동으로 증가하는 열 만들기

  • 열 이름은 id, 데이터 타입은 정수(INT)로 만듭니다.
  • 데이터 타입 뒤에 AUTO_INCREMENT PRIMARY KEY를 붙입니다.
MariaDB [codingfactory.net_example]> CREATE TABLE test ( id INT AUTO_INCREMENT PRIMARY KEY );
Query OK, 0 rows affected (0.01 sec)

PRIMARY KEY를 붙이지 않으면 에러가 납니다.

MariaDB [codingfactory.net_example]> MariaDB [codingfactory.net_example]> CREATE TABLE test ( id INT AUTO_INCREMENT );
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'MariaDB [codingfactory.net_example]> CREATE TABLE test ( id INT AUTO_INCREMENT )' at line 1
  • 다음과 같이 테이블이 만들어집니다.
MariaDB [codingfactory.net_example]> DESCRIBE test;
+-------+---------+------+-----+---------+----------------+
| Field | Type    | Null | Key | Default | Extra          |
+-------+---------+------+-----+---------+----------------+
| id    | int(11) | NO   | PRI | NULL    | auto_increment |
+-------+---------+------+-----+---------+----------------+
1 row in set (0.00 sec)

데이터 추가하기

  • 데이터를 추가할 때 값을 지정하지 않아도 됩니다. 1부터 값이 저장됩니다.
MariaDB [codingfactory.net_example]> INSERT INTO test VALUES ();
Query OK, 1 row affected (0.00 sec)
MariaDB [codingfactory.net_example]> SELECT * FROM test;
+----+
| id |
+----+
|  1 |
+----+
1 row in set (0.00 sec)
  • 다시 데이터를 추가하면 1보다 하나 큰 2가 값이 됩니다.
MariaDB [codingfactory.net_example]> INSERT INTO test VALUES ();
Query OK, 1 row affected (0.00 sec)
MariaDB [codingfactory.net_example]> SELECT * FROM test;
+----+
| id |
+----+
|  1 |
|  2 |
+----+
2 rows in set (0.00 sec)

값을 정하여 데이터를 추가할 수도 있습니다. 아래는 123을 값으로 하여 행을 추가하라는 뜻입니다.

MariaDB [codingfactory.net_example]> INSERT INTO test VALUES ( 123 );
Query OK, 1 row affected (0.00 sec)

이후 값이 없는 행을 추가하면 id는 123보다 하나 큰 124가 됩니다.

  • 두번째 행을 지우고...
MariaDB [codingfactory.net_example]> DELETE FROM test WHERE id = 2;
Query OK, 1 row affected (0.00 sec)
MariaDB [codingfactory.net_example]> SELECT * FROM test;
+----+
| id |
+----+
|  1 |
+----+
1 row in set (0.00 sec)
  • 데이터를 추가하면 3이 값이 됩니다. 즉, 삭제한 값을 다시 사용하지 않습니다.
MariaDB [codingfactory.net_example]> INSERT INTO test VALUES ();
Query OK, 1 row affected (0.00 sec)
MariaDB [codingfactory.net_example]> SELECT * FROM test;
+----+
| id |
+----+
|  1 |
|  3 |
+----+
2 rows in set (0.00 sec)
  • 테이블의 모든 값을 삭제하고...
MariaDB [codingfactory.net_example]> DELETE FROM test;
Query OK, 2 rows affected (0.00 sec)
  • 데이터를 추가해도...
MariaDB [codingfactory.net_example]> INSERT INTO test VALUES ();
Query OK, 1 row affected (0.01 sec)
  • 이전에 사용한 값보다 큰 값부터 시작합니다.
MariaDB [codingfactory.net_example]> SELECT * FROM test;
+----+
| id |
+----+
|  4 |
+----+
1 row in set (0.00 sec)

초기화 하기

  • 초기화 또는 시작하는 번호를 정하고 싶다면 다음과 같이 합니다. 1부터 시작하라는 뜻입니다.
MariaDB [codingfactory.net_example]> ALTER TABLE test AUTO_INCREMENT = 1;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0

Related Posts

MariaDB / DATA / 데이터 추가(INSERT), 수정(UPDATE), 삭제(DELETE)

MariaDB / DATA / 데이터 추가(INSERT), 수정(UPDATE), 삭제(DELETE)

데이터베이스와 테이블 만들기 test 데이터베이스를 만듭니다. MariaDB > create database test; Query OK, 1 row affected (0.00 sec) test 데이터베이스를 사용합니다. MariaDB > use test; Database changed table_1 테이블을 만듭니다. MariaDB > CREATE TABLE table_1 ( -> column_1 varchar(100), -> column_2 varchar(100), -> column_3 varchar(100) -> ...

MariaDB / 함수 / COUNT, SUM, AVG, MAX, MIN

MariaDB / 함수 / COUNT, SUM, AVG, MAX, MIN

예제로 사용한 데이터베이스는 employees입니다. COUNT COUNT는 특정 조건을 만족하는 행의 개수를 세는 함수입니다. employees 테이블의 전체 행 개수를 구합니다. 의미 상 전체 직원 수를 구하는 것입니다. MariaDB > SELECT COUNT(*) -> FROM employees -> ; +----------+ | COUNT(*) | +----------+ | 300024 | +----------+ WHERE를 이용하여 조건을 추가할 수 있습니다. 다음은 남자 직원의 ...

MariaDB / 연산자 / AND, OR, IN

MariaDB / 연산자 / AND, OR, IN

예제로 사용한 데이터베이스는 employees입니다. AND 여러 조건을 동시에 만족시키는 데이터를 추출할 때 AND 연산자를 사용합니다. employees 테이블에서 first_name이 George이고, gender가 M인 데이터를 가져옵니다. MariaDB > SELECT first_name, gender -> FROM employees -> WHERE -> first_name = "George" -> AND ...

MariaDB / 샘플 데이터베이스 employees 설치하기

MariaDB / 샘플 데이터베이스 employees 설치하기

데이터베이스를 다루는 공부를 할 때 데이터가 들어있는 데이터베이스가 있으면 좋습니다. 직접 만드는 방법도 있지만, 공개된 샘플 데이터베이스를 이용해도 됩니다. 제가 주로 사용하는 것은 test_db입니다. 앞으로의 강좌에서 데이터가 필요한 경우 test_db를 사용할 것입니다. 다음은 MariaDB에 설치하는 방법입니다. GitHub에 있는 test_db 페이지에 접속합니다. Clone or download를 클릭한 다음 다운로드합니다. 서버에 업로드한 다음 압축을 풉니다. employees.sql가 있는 폴더에서 ...

MariaDB / 함수 / YEAR, MONTH, DAY / 날짜 데이터에서 년, 월, 일을 반환하는 함수

MariaDB / 함수 / YEAR, MONTH, DAY / 날짜 데이터에서 년, 월, 일을 반환하는 함수

날짜 형식의 데이터에서 년 또는 월 또는 일을 분리해서 출력하고 싶다면 YEAR, MONTH, DATE 함수를 사용합니다. YEAR 날짜 데이터에서 년을 출력하고 싶다면 YEAR 함수를 사용합니다. MariaDB > SELECT YEAR('2020-11-12') as Year; +------+ | Year | +------+ | 2020 | +------+ MONTH 날짜 데이터에서 월을 출력하고 싶다면 MONTH 함수를 사용합니다. MariaDB > SELECT MONTH('2020-11-12') as Month; +-------+ | Month | +-------+ | 11 ...

MariaDB / 사용자 비밀번호 변경하는 방법

MariaDB / 사용자 비밀번호 변경하는 방법

mysql 사용 use mysql 사용자와 비밀번호 출력하기 select user, password from user; abc 사용자의 비밀번호를 1234로 설정 update user set password=password('1234') where user='abc'; 변경사항 적용 flush privileges;

MariaDB / 함수 / FORMAT / 숫자 세 자리마다 쉼표(콤마) 찍는 함수

MariaDB / 함수 / FORMAT / 숫자 세 자리마다 쉼표(콤마) 찍는 함수

FORMAT FORMAT은 숫자 세 자리마다 쉼표(콤마) 찍는 함수입니다. 예제 123456789에서 세 자리마다 쉼표를 넣습니다. MariaDB > SELECT FORMAT(123456789, 0) as Money; +-------------+ | Money | +-------------+ | 123,456,789 | +-------------+ 값이 숫자 형식이 아니어도 가능합니다. MariaDB > SELECT FORMAT('123456789', 0) as Money; +-------------+ | Money | +-------------+ | 123,456,789 | +-------------+ 0이 뜻하는 것은 소숫점 ...

MariaDB / DATABASE / 만들기, 삭제하기, 이름 변경하기

MariaDB / DATABASE / 만들기, 삭제하기, 이름 변경하기

로그인 MariaDB에 로그인합니다. root 계정으로 로그인 한다면 mysql -u root -p 데이터베이스 목록을 조회합니다. MariaDB > SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | +--------------------+ 3 rows in set (0.00 sec) 데이터베이스 ...

MariaDB / LEFT JOIN, RIGHT JOIN, INNER JOIN

MariaDB / LEFT JOIN, RIGHT JOIN, INNER JOIN

JOIN SQL의 JOIN은 여러 테이블을 한 번에 나타낼 때 사용합니다. 대표적인 JOIN 방식은 LEFT JOIN, RIGHT JOIN, INNER JOIN이 있습니다. 다음은 세 가지 JOIN의 차이를 알아보기 위한 간단한 예제 테이블입니다. A 테이블에는 나라, B 테이블에는 도시가 있습니다. 도시가 어떤 나라의 도시인지는 a_no로 확인합니다. 나라는 있는데 도시가 없는 것도 있고, 나라는 없는데 도시는 있는 것도 있습니다. A ...

MariaDB / TABLE / 열 추가하기, 열 삭제하기, 열 순서 변경하기, 열 데이터 타입 변경하기

MariaDB / TABLE / 열 추가하기, 열 삭제하기, 열 순서 변경하기, 열 데이터 타입 변경하기

데이터베이스 만들기 열(Column) 추가, 삭제 등을 해볼 테스트용 데이터베이스 jbTest를 만듭니다. CREATE DATABASE jbTest; 데이터베이스로 들어갑니다. USE jbTest; jbColumn1, jbColumn2, jbColumn3 세 개의 열을 가진 테이블 jbTable1을 만듭니다. CREATE TABLE jbTable1 ( jbColumn1 INT, jbColumn2 INT, jbColumn3 INT ) ; 다음은 현재 테이블 구조입니다. MariaDB > DESC jbTable1; +-----------+---------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | ...