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
같은 카테고리의 다른 글
MariaDB / 함수 / ROUND

MariaDB / 함수 / ROUND

ROUND는 반올림하는 함수이다. 별도 설정을 하지 않으면 소수 첫째 자리에서 반올림한다. SELECT ROUND( 1.4 ); +--------------+ | ROUND( 1.4 ) | +--------------+ | 1 | +--------------+ SELECT ROUND( 1.5 ); +--------------+ | ROUND( 1.5 ) | +--------------+ | 2 ...

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

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

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

MariaDB / 연산자 / 논리 연산자

MariaDB / 연산자 / 논리 연산자

MariaDB의 논리 연산자에 대하여 알아본다. 예제로 사용하는 테이블은 아래의 데이터를 가진 T_2이라는 테이블이다. C_1의 데이터 형식은 정수, C_2의 데이터 형식은 문자이다. +----+------+------+ | ID | C_1 | C_2 | +----+------+------+ | 1 | 1 | A | | 2 | 2 | B ...

MariaDB / 함수 / CONCAT, CONCAT_WS / 문자열 합치는 함수

MariaDB / 함수 / CONCAT, CONCAT_WS / 문자열 합치는 함수

예제로 사용한 데이터베이스는 employees입니다. CONCAT CONCAT은 문자열을 이어주는 함수입니다. 예를 들어 CONCAT( first_name, last_name )는 first_name의 값과 last_name의 값을 이어서 출력합니다. MariaDB > SELECT first_name, last_name, CONCAT( first_name, last_name ) FROM employees LIMIT 5; +------------+-----------+---------------------------------+ | first_name | last_name | CONCAT( first_name, last_name ) | +------------+-----------+---------------------------------+ | Georgi | Facello | GeorgiFacello ...

MariaDB / SELECT 결과를 INSERT하는 방법

MariaDB / SELECT 결과를 INSERT하는 방법

Z_1 테이블에서 a, b, c 열의 데이터를 Z_2 테이블의 x, y, z 열에 삽입한다고 하자. 우선 Z_1 테이블에서 a, b, c 열의 데이터를 가져오는 쿼리를 만든다. SELECT a, b, c FROM Z_1 ; 그 위에 INSERT를 추가한다. INSERT INTO Z_2 ( x, y, z ) SELECT a, b, ...

MariaDB / 사용자 만들기, 수정하기, 삭제하기, 권한 부여하기, 제거하기

MariaDB / 사용자 만들기, 수정하기, 삭제하기, 권한 부여하기, 제거하기

사용자 목록 보기 mysql 데이터베이스의 user 테이블에서 필요한 정보 출력 SELECT User, Host FROM mysql.user; 사용자 만들기 사용자 이름 jb, 내부에서만 접속 가능, 비밀번호 1234 CREATE USER 'jb'@'localhost' IDENTIFIED BY '1234'; 사용자 이름 jb, 어디에서나 접속 가능, 비밀번호 1234 CREATE USER 'jb'@'%' IDENTIFIED BY '1234'; 사용자 이름 jb, 192.168.0.111에서 접속 가능, 비밀번호 1234 CREATE USER 'jb'@'192.168.0.111' IDENTIFIED BY '1234'; 이미 ...

MariaDB / 함수 / QUOTE / 문자열을 작은 따옴표로 감싸는 함수

MariaDB / 함수 / QUOTE / 문자열을 작은 따옴표로 감싸는 함수

QUOTE는 문자열을 작은 따옴표로 감싸는 함수입니다. QUOTE( string ) SELECT QUOTE( 'ABC' ); +----------------+ | QUOTE( 'ABC' ) | +----------------+ | 'ABC' | +----------------+ SELECT QUOTE( "ABC" ); +----------------+ | QUOTE( "ABC" ) | +----------------+ | 'ABC' | +----------------+ 문자열 안에 있는 작은 따옴표는 \'로 표시됩니다. SELECT ...

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 / 함수 / LEFT, RIGHT / 문자열의 왼쪽 또는 오른쪽의 일부를 출력하는 함수

MariaDB / 함수 / LEFT, RIGHT / 문자열의 왼쪽 또는 오른쪽의 일부를 출력하는 함수

LEFT는 문자열의 왼쪽부터 일정 길이만큼 출력하는 함수입니다. LEFT( string,length ) SELECT LEFT( '12345678', 3 ); +-----------------------+ | LEFT( '12345678', 3 ) | +-----------------------+ | 123 | +-----------------------+ RIGHT는 문자열의 왼쪽부터 일정 길이만큼 출력하는 함수입니다. RIGHT( string, length ) SELECT RIGHT( '12345678', 3 ...

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