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 / 함수 / ELT / 특정 위치의 문자열 출력하는 함수

MariaDB / 함수 / ELT / 특정 위치의 문자열 출력하는 함수

ELT는 특정 위치의 문자열을 출력하는 함수입니다. ELT( N, string1, string2, string3, ... ) A, B, C, D에서 2번째의 문자열인 B를 출력합니다. SELECT ELT( 2, 'A', 'B', 'C', 'D' ); +------------------------------+ | ELT( 2, 'A', 'B', 'C', 'D' ) | +------------------------------+ | B ...

MariaDB / DBeaver / 외래 키(Foreign Key) 만들기, 삭제하기

MariaDB / DBeaver / 외래 키(Foreign Key) 만들기, 삭제하기

외래 키(Foreign Key) 만들기 기본 키가 있는 테이블(testTable1)을 만듭니다. 외래 키를 만들 테이블(testTable2)을 만듭니다. 를 클릭합니다. 마우스 우클릭한 후 를 클릭합니다. Column에서 외래 키를 선택하고, Ref Column에서 기본 키를 선택한 후 를 클릭합니다. 를 클릭합니다. 를 클릭하면... 외래 키가 만들어집니다. 외래 키(Foreign Key) 삭제하기 외래 키를 선택한 다음 마우스 우클릭하고 를 클릭합니다. 를 클릭하고... 를 클릭하면 외래 키가 ...

MariaDB / Query / UNION, UNION ALL

MariaDB / Query / UNION, UNION ALL

UNION 또는 UNION ALL을 이용하면 여러 테이블의 데이터를 합하여 출력할 수 있습니다. 예를 들어 다음과 같은 테이블과... SELECT * FROM test_1; +-------+-------+-------+ | col_1 | col_2 | col_3 | +-------+-------+-------+ | 1 | A | 1 | | 2 | ...

MariaDB / 함수 / REPEAT / 문자열 반복하여 출력하는 함수

MariaDB / 함수 / REPEAT / 문자열 반복하여 출력하는 함수

개요 REPEAT는 문자열을 반복하여 출력하는 함수입니다. REPEAT( string, count ) string : 반복될 문자열 count : 반복 횟수 예제 123을 4번 반복하여 출력합니다. SELECT REPEAT( '123', 4 ); +---------------------+ | REPEAT( '123', 4 ) | +---------------------+ | 123123123123 | +---------------------+ 반복 횟수가 1 미만이면 빈 문자열을 출력합니다. SELECT REPEAT( '123', 0 ); +--------------------+ | REPEAT( '123', 0 ) ...

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

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

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

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 | ...

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 / 함수 / LIKE

MariaDB / 함수 / LIKE

다음과 같은 테이블이 있습니다. 열의 이름은 column1, 데이터는 12345, 23456 두 개가 있습니다. MariaDB > SELECT * FROM table1; +---------+ | column1 | +---------+ | 12345 | | 23456 | +---------+ WHERE를 이용하면 특정 값을 갖는 행을 출력할 수 있습니다. 예를 들어 다음은 column1의 값이 12345인 데이터를 출력합니다. MariaDB > SELECT * FROM table1 WHERE ...

MariaDB / 함수 / IF, IFNULL, NULLIF

MariaDB / 함수 / IF, IFNULL, NULLIF

IF 문법 IF( expression1, expression2, expression3 ) expression1가 참이면 expression2를, 거짓이면 expression3을 반환합니다. 예제 SELECT IF( 2>3, 'T', 'F' ); +---------------------+ | IF( 2>3, 'T', 'F' ) | +---------------------+ | F | +---------------------+ 2>3이 거짓이므로 F를 반환합니다. SELECT IF( 2<3, 'T', 'F' ); +---------------------+ | IF( ...

MariaDB / Query / DISTINCT / 중복 데이터 제거

MariaDB / Query / DISTINCT / 중복 데이터 제거

DISTINCT를 이용하면 중복 값을 제거할 수 있습니다. 예를 들어 다음과 같은 test 테이블이 있다고 할 때... MariaDB > SELECT * FROM test; +---------+---------+---------+ | Column1 | Column2 | Column3 | +---------+---------+---------+ | 1 | A | 1 ...