mariaDB 기본적인 명령어 모음

mariaDB에서 기본적으로 사용하는 명령어들을 정리한 글입니다.


테이블에 복수 데이터 추가

만약 테이블에 여러 개의 데이터를 한번에 입력해야 한다면 어떻게 해야할까? VALUES 아래에 여러 개의 데이터를 (,)를 사용하여 입력하면 된다.

1
2
3
INSERT INTO '테이블 이름'
VALUES
('값1_A', '값2_A'), ('값1_B', '값2_B'), ('값1_C', '값2_C');

특정 데이터 찾기

테이블에서 특정한 조건의 데이터를 찾을 때는 WHERE절을 사용하면 된다.

1
SELECT  * FROM '테이블 이름' WHERE '조건에 사용될 카테고리' = '특정 조건';

위의 코드는 카테고리에서 특정 조건을 만족하는 행(record)의 전체 데이터를 가져오라는 요청이다. 만약 전체데이터가 아닌 특정 열의 데이터를 가져오고 싶다면 앞의 *를 원하는 열의 이름으로 변경해주면 된다. 특정 열 이름은 여러 개 입력할 수 있다.

1
SELECT  '원하는 열 이름_1','원하는 열 이름_2' FROM '테이블 이름' WHERE '조건에 사용될 카테고리' = '특정 조건';

그렇다면 특정 열의 전체 데이터는 어떻게 볼 수 있을까? 간단하다. WHERE절을 제외하고 입력하면 된다.

1
SELECT  '원하는 열 이름_1','원하는 열 이름_2' FROM '테이블 이름';

WHERE 조건 사용법

조건에 들어갈 수 있는 기본적인 비교 연산자는 다음과 같다.

  • '=' : 같다
  • '<>' : 같지 않다
  • '<' : 조건보다 작다 (미만)
  • '>' : 조건보다 크다 (초과)
  • '<=' : 조건과 같거나 작다 (이하)
  • '>=' : 조건과 같거나 크다 (이상)

작은따옴표가 포함된 정보

'은 SQL의 문법으로 사용되기 때문에 텍스트로 사용되는 경우 내용 안의 작은따옴표에  붙여서 추가해야 한다. 기호 개행문자를 표시한 것이다.

1
2
3
INSERT INTO '테이블 이름'
VALUES
('값1\'s', '2\'s');

위 코드는 테이블에 값1's, 값2's를 추가하는 코드이다. 중간의 어퍼스트로피(Apostrophe)는 텍스트 문자로 들어간다.

쿼리들의 결합 (AND, OR)

복수의 조건을 사용하여 쿼리를 요청할 수 있다. 복수로 쿼리를 주는 기본적인 방법은 크게 ANDOR이 있다.

AND

AND는 주어지는 조건을 모두 만족하는 레코드를 모두 가져온다.

1
SELECT * FROM '테이블 이름' WHERE '조건에 사용될 카테고리_1' = '특정 조건_1' AND '조건에 사용될 카테고리_2' > '특정 조건_2';

OR

OR는 주어지는 조건 중 하나 이상 만족하는 레코드를 모두 가져온다.

1
SELECT * FROM '테이블 이름' WHERE '조건에 사용될 카테고리_1' = '특정 조건_1' OR '조건에 사용될 카테고리_2' > '특정 조건_2';

비교연산자로 문자열 처리

1
SELECT * FROM '테이블 이름' WHERE '조건에 사용될 카테고리' < 'C';

비교 연산자 조건에 알파벳을 입력하는 경우는 알파벳 순서를 기준으로 데이터를 가져온다. 위 코드의 경우 카테고리의 첫 글자가 C 순서보다 먼저인 A, B인 경우만 반환한다.

NULL

NULL은 데이터가 없는 경우 기본 값으로 이용되기도 하며, 쓰는 방법에 따라서 유용하기도 하다.

NULL 포함된 데이터 추가하기

입력하려는 레코드의 일부 값이 없는 경우, 값이 없는 위치에 NULL을 입력하면 바로 레코드를 추가할 수 있다. 이런 방법은 앞에 카테고리 이름을 지정할 필요가 없기 때문에 매우 편리하다.

1
2
3
INSERT INTO '테이블 이름'
VALUES
('값1' , NULL, '값3', '값4', '값5', NULL);

NULL 포함된 데이터 찾기

만약 특정 카테고리에 NULL값이 포함된 경우를 찾아야 할 때는 어떻게 하면 좋을까? 아래의 코드를 입력하여 확인할 수 있다.

1
SELECT * FROM '테이블 이름' WHERE '조건에 사용될 카테고리' IS NULL;

문자 일부만으로 데이터 찾기 (LIKE)

특정 카테고리에서 'World'로 끝나는 레코드를 찾고 싶다면 아래의 코드를 사용할 수 있다.

1
SELECT * FROM '테이블 이름' WHERE '조건에 사용될 카테고리' LIKE '%World';

명령어 LIKE%_ 기호를 사용할 수 있다. %World는 World 앞에 오는 글자들의 수가 몇이든 상관하지 않으며, _World는 World 앞에 하나의 글자만 있는 경우를 반환한다.

사이 값 찾기

특정 카테고리에서 두 개의 값 사이에 해당하는 경우를 가져오고 싶다면 어떻게 해야할까? 물론 AND를 사용하여 두 개의 조건을 연결할 수도 있지만 명령어 BETWEEN을 사용해서도 해결할 수 있다.

1
SELECT * FROM '테이블 이름' WHERE '조건에 사용될 카테고리' BETWEEN '조건1' AND '조건2';

위 코드는 특정 카테고리가 조건1과 조건2 사이인 경우를 모두 반환하라는 쿼리이다.

OR 여러 개 == IN

조건 여러 개를 OR을 통해 사용하고 싶은 경우, 조건들 모두를 OR로 연결하는 경우도 있지만 코드만 길어지고 번거롭다. 명령어 IN을 사용하면 간결하게 여러 개의 조건을 OR과 동일하게 사용할 수 있다.

1
2
SELECT * FROM '테이블 이름' WHERE '조건에 사용될 카테고리' = '조건1' OR '조건에 사용될 카테고리' = '조건2' OR '조건에 사용될 카테고리' = '조건3';
SELECT * FROM '테이블 이름' WHERE '조건에 사용될 카테고리' IN ('soda', 'sprite','tonic water');

NOT 사용법

명령어 NOT은 해당 조건을 제외한 나머지 레코드를 반환한다.

1
SELECT * FROM '테이블 이름' WHERE '조건에 사용될 카테고리' NOT IN ('soda', 'sprite','tonic water');

NULL 값의 경우 IN, NOT IN 모두 포함되지 않는다.

DELETE 데이터 삭제하기

DELETE은 레코드를 삭제할 때 사용하는 명령어이다. 보통 어떤 레코드의 변경사항이 생기면 새로운 레코드를 추가하고 이전의 레코드를 삭제하는 식으로 데이터를 관리한다. 명령어를 사용하는 방법은 아래와 같다.

1
DELETE FROM '테이블 이름' WHERE '조건에 사용될 카테고리' = '조건';

위 코드는 WHERE 조건에 해당하는 레코드만 삭제한다. 여기서 주의해야 할 점은 WHERE로 특정 레코드의 조건을 주지 않는다면, DELETE는 해당 테이블의 모든 레코드를 삭제한다.

NOTE 안전하게 삭제하는 방법

만약 WHERE 명령어를 잘못 준 상태로 DELETE를 사용한다면 의도치 않게 다른 데이터들이 삭제될 수 있다. 따라서 SELECT을 사용하여 사용하려는 WHERE 명령어가 원하는 데이터만 가져오는지 확인한 후에 DELETE을 사용하는 것이 안전하다. 따라서 순서는 다음과 같다.

  1. SELECT을 사용하여 변경하려는 데이터 확인
  2. INSERT를 사용하여 변경된 데이터 추가
  3. DELETE을 사용하여 이전 데이터 삭제

UPDATE 데이터 변경하기

만약 기존 레코드에서 특정 조건에 해당하는 값만 수정하고 싶다면, 명령어 UPDATE를 사용할 수 있다. UPDATE를 적용하는 코드는 다음과 같다.

1
UPDATE '테이블 이름' SET '변경할 카테고리' = '새로운 값' WHERE '조건에 사용될 카테고리' = '조건';

위 코드는 SETWHERE 두 가지가 같이 사용되고 있다. 먼저 SET은 변경할 카테고리의 값들을 전부 새로운 값으로 변경한다. 따라서 WHERE로 특정 레코드를 지정해주지 않는다면 모든 레코드의 데이터가 변경된다. 그래서 보통 UPDATESET에는 WHERE이 필수적으로 같이 사용된다.


mariaDB 기본적인 명령어 모음
https://dev-bearabbit.github.io/ko/Sql/sql-1/
Author
Jess
Posted on
2020년 10월 10일
Licensed under