MySQL 강좌 : 제 4강 - 데이터 삽입
데이터 삽입(Data Insert)
데이터베이스(Database)
를 활용하기 위해서는 테이블(Table)
에 데이터(Data)가 존재해야 합니다.
테이블(Table)
을 생성했다면 열(Column)
에 대한 정보만 정의되어 있습니다.
다음과 같은 테이블을 생성했다면, 열(Column)
과 행(Row)
에 대한 속성만 정의되어 있습니다.
location | date | variant | num_sequences | perc_sequences | num_sequences_total | |
---|---|---|---|---|---|---|
그러므로 위와 같은 테이블에 데이터(Data)
을 입력하여 행(Row)
을 추가합니다.
만약, 데이터베이스에 네 개의 행(Row)을 추가한다면 다음과 같이 표현할 수 있습니다.
location | date | variant | num_sequences | perc_sequences | num_sequences_total | |
---|---|---|---|---|---|---|
1 | Angola | 2020-12-21 | B.1.160 | 0 | 0 | 93 |
2 | Angola | 2020-12-21 | B.1.620 | 0 | 0 | 93 |
3 | Angola | 2020-12-21 | B.1.258 | 0 | 0 | 93 |
4 | Angola | 2020-12-21 | B.1.221 | 93 |
행 삽입
단일 행 추가
테이블에 행을 삽입하는 방법은 INSERT INTO `{데이터베이스의 이름}`.`{테이블의 이름}` VALUES ({열의 순서에 따른 데이터});
의 구조로 명령어를 실행합니다.
열(Column)
의 순서에 따라 데이터가 입력됩니다.
그러므로 'Angola', '2020-12-21', 'B.1.160', 0, 0, 93
데이터는 각각의 location, date, variant, num_sequences, perc_sequences, num_sequences_total
열(Column)에 삽입됩니다.
데이터의 개수는 열의 개수와 동일해야 하며, 입력되는 데이터의 형식은 열의 속성과 동일해야 합니다.
다중 행 추가
테이블에 여러 행을 한 번에 추가하는 방법은 쉼표(,)
를 통해 구분하여 데이터를 입력할 수 있습니다.
단일 행을 추가하는 방법과 조건이 동일하며, 데이터 개수와 속성이 일치해야 합니다.
특정 필드에 행 추가
테이블에 행을 추가할 때, 필드의 이름을 작성하여 데이터를 추가할 수 있습니다.
테이블에 특정 열에 대한 행을 삽입하는 방법은 INSERT INTO `{데이터베이스의 이름}`.`{테이블의 이름}` (필드 이름) VALUES ({필드의 순서에 따른 데이터});
의 구조로 명령어를 실행합니다.
예시와 같은 데이터를 추가하게 되면, location
과 date
필드에 값이 할당됩니다.
위와 같은 경우에는 variant
, num_sequences
, perc_sequences
, num_sequences_total
필드의 모든 속성이 Null 값을 갖는 데이터를 추가할 수 있거나, 기본값으로 할당된 값이 존재해야 합니다.
만약, 필드를 명시하지 않은 열에서 Null 값을 허용하지 않거나 기본값이 없다면 오류가 발생합니다.
오류가 발생하지 않는다면 명시하지 않은 필드의 데이터는 기본값으로 채워지거나 Null 값이 할당됩니다.
CSV 파일 반영
권한 설정
MySQL Workbench
에서 CSV 파일을 추가하는 경우에는 MySQL Connections
에서 설정을 변경해야 합니다.
Instance
→ Connection
→ Others
에서 OPT_LOCAL_INFILE=1 구문을 추가합니다.
만약, MySQL 콘솔창에서 실행하는 경우에는 다음과 같은 옵션을 주어 실행할 수 있습니다.
MySQL
을 접속시 --local-infile
옵션과 함께 실행합니다.
ERROR 3948 해결
만약, ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides
에러가 발생한다면 위와 같은 구문을 통해 해결할 수 있습니다.
local_infile
의 필드의 값이 True
로 설정되어 있다면, 로컬 경로의 파일을 불러올 수 있습니다.
파일 반영
테이블에 CSV 파일을 삽입하는 방법은 LOAD DATA LOCAL INFILE `파일 경로` INTO TABLE `{데이터베이스의 이름}`.`{테이블의 이름}` {옵션}
의 구조로 명령어를 실행합니다.
covid-variants.csv
라는 CSV 파일을 불러와 covid
.variants
테이블에 반영합니다.
필드를 구분하는 단위를 쉼표(,)
로 사용하여 테이블에 데이터가 추가됩니다.
또한, 컬럼명을 무시하기 위해 첫 번째
행은 건너뜁니다.
csv 파일의 첫 번째 행은 컬럼 명칭이 작성되어 있습니다.
테이블과 CSV 파일의 열의 이름 및 속성은 동일해야 합니다.
예제로 사용되는 covid-variants.csv
파일은 다음 링크에서 다운로드 할 수 있습니다.
covid-variants.csv 다운로드
: 다운로드
댓글 남기기