SQL INSERT와 SELECT 기본 정리 | 데이터 입력과 조회 흐름 이해하기

INSERT는 테이블에 데이터를 추가하는 명령어이고, SELECT는 저장된 데이터를 조회하는 명령어다. MySQL에서 테이블 구조를 만든 뒤에는 INSERT INTO ... VALUES ...로 데이터를 넣고, SELECT * FROM 테이블명으로 입력된 값을 확인한다.


INSERT 기본 문법

insert into 테이블명
    (컬럼명1, 컬럼명2, 컬럼명3)
values
    (값1, 값2, 값3);

INSERT에서 중요한 점은 컬럼 순서와 값 순서가 맞아야 한다는 것이다.

insert into membertbl
    (memberID, memberName, memberAddress)
values
    ('Dang', '당탕이', '경기 부천시 중동');

위 코드는 memberID, memberName, memberAddress 순서대로 값을 넣는다.

컬럼명 입력값

memberID Dang
memberName 당탕이
memberAddress 경기 부천시 중동

문자와 숫자 입력 방식

문자 데이터는 따옴표로 감싼다.

'당탕이'
'경기 부천시 중동'

숫자는 보통 따옴표 없이 작성한다.

10
17

날짜도 문자열처럼 따옴표로 감싸서 입력한다.

'2021-01-02'

상품 데이터 입력 예시

insert into producttbl
    (productName, cost, makeDate, company, amount)
values
    ('컴퓨터', 10, '2021-01-02', '삼성', 17);

컬럼 순서와 값 순서를 맞춰 보면 이렇게 된다.

컬럼명 입력값

productName 컴퓨터
cost 10
makeDate 2021-01-02
company 삼성
amount 17

cost, amount는 숫자형 컬럼이므로 따옴표 없이 작성하고, productName, company, makeDate는 문자/날짜 값이므로 따옴표를 사용한다.


SELECT로 데이터 조회하기

테이블에 들어간 데이터를 확인할 때는 SELECT를 사용한다.

select * from membertbl;
  • 는 모든 컬럼을 조회하겠다는 의미다.

상품 테이블도 같은 방식으로 확인할 수 있다.

select * from producttbl;

특정 컬럼만 보고 싶다면 컬럼명을 직접 지정한다.

select memberID, memberName
from membertbl;

DB와 테이블 확인 명령어

현재 MySQL에 어떤 데이터베이스가 있는지 확인하려면 show databases를 사용한다.

show databases;

현재 선택한 데이터베이스 안의 테이블 목록은 show tables로 확인한다.

show tables;

테이블 구조는 desc로 확인할 수 있다.

desc membertbl;

desc를 사용하면 컬럼명, 자료형, NULL 허용 여부, 기본키 여부 등을 확인할 수 있다.


데이터베이스명을 직접 지정해서 조회하기

현재 USE로 선택한 데이터베이스가 아니더라도, 데이터베이스명과 테이블명을 함께 쓰면 직접 조회할 수 있다.

select * from shopdb2.membertbl;

MySQL에서는 백틱을 사용해 데이터베이스명이나 테이블명을 감쌀 수도 있다.

select * from `shopdb2`.`membertbl`;

백틱 사용 주의점

백틱(`)은 문자열을 감싸는 용도가 아니다.

문자열 값은 작은따옴표를 사용한다.

'서울'
'홍길동'

백틱은 데이터베이스명, 테이블명, 컬럼명 같은 식별자를 감쌀 때 사용한다.

select * from `shopdb2`.`membertbl`;

즉, 문자열 비교에는 백틱이 아니라 작은따옴표를 써야 한다.


INSERT는 테이블에 데이터를 추가하고, SELECT는 저장된 데이터를 조회하는 SQL 명령어다.