데이터 추가 및 삭제와 변경
INSERT문
(형식)
SELECT INTO 테이블명 (컬럼 목록) VALUES (데이터 목록);
INSET문은 하나의 행(row)을 저장하는 명령입니다. 데이터 추가시 컬럼 목록과 데이터 목록의 짝이 반드시 맞아야 하며 컬럼의 순서는 컬럼 목록에 사용된 컬럼 이름을 따릅니다. 사실 데이터베이스의 테이블은 데이터의 저장순으로 로우(행)가 추가되며 로우의 순서는 의미가 없습니다. 대신 PRIMARY KEY(기본키)로 설정된 컬럼의 경우 자동으로 인덱스가 만들어져서 미리 정렬이 되어 있습니다. 인덱스와 연결된 테이블은 SELECT문의 실행시 기본키를 기준으로 정렬되어 출력됩니다.
AUTO_INCREMENT 컬럼 제약이 주어졌을 경우 추가시 컬럼을 생략하면 자동으로 증가된 값이 추가됩니다. NOT NULL 컬럼 제약이 주어진 컬럼은 무조건 추가를 해야합니다.
(사용예)
CREATE TABLE customers (
customer_id INT(5) NOT NULL PRIMARY KEY AUTO_INCREMENT,
gender ENUM('남', '여') NOT NULL,
name VARCHAR(8) NOT NULL,
email VARCHAR(35) NOT NULL,
address VARCHAR(255) NOT NULL,
telephone VARCHAR(14) NOT NULL,
registdate DATE DEFAULT NULL,
modifydate TIMESTAMP
);
INSERT INTO customers (gender, name, email, address, telephone, registdate)
VALUES ('남', '홍길동', 'kidong@hong.com', '전라도 장성현 아차곡', '010-1234-1234', '2009-09-21');
INSERT INTO customers
VALUES ('2', '남', '철수', 'cs@chol.com', '서울시', '02-1234-1234', '2009-09-21', '2009-09-21');
INSERT INTO customers
VALUES (3, '여', '영희', 'yh@chol.com', '서울시', '02-4321-4321', '2009-09-20', '2009-09-21'),
(4, '남', '칠숙', 'hwarang7@chol.com', '서울시', '02-1234-4321', '2009-09-20', '2009-09-21'),
(5, '여', '덕만', 'queen@chol.com', '서울시', '02-4321-1234', '2009-09-20', '2009-09-21');
DELETE문, TRUNCATE문
(형식)
DELETE FROM 테이블명 WHERE 조건문;
DELETE문의 경우 테이블을 대상으로 삭제 작업을 하기 때문에 WHERE절이 없을 경우 테이블의 모든 데이터를 삭제합니다. 이때 로우 단위로 삭제하기 때문에 시간이 좀 걸리는데 만일 전체 데이터를 지우고자 한다면 TRUNCATE 테이블문을 사용하는 것이 더 효율적입니다.
(사용예)
DELETE FROM customers WHERE customer_id = 4;
UPDATE문
(형식)
UPDATE 테이블명 SET 컬럼1 = 데이터, 컬럼2 = 데이터, ... WHERE 조건문;
특정 컬럼의 값을 변경할 때 사용합니다.
(사용예)
UPDATE costomers SET name = '홍삼정', telephone = '031-0123-1234' WHERE name = '홍길동';
대량 데이터 입력 (Bulk operation)
LOAD DATA INFILE
(사용예)
LOAD DATA LOCAL INFILE 'C:\\zip.txt'
INTO TABLE ziptable
CHARACTER SET 'utf8'
COLUMNS TERMINATED BY '\t'
LINES TERMINATED '\n'
(seq, sido, gugun, dong, bunji);
mysqlimport 유틸리티
(사용예)
c:\> mysqlimport -u root -p ziptable zip.txt
'연구개발 > MYSQL' 카테고리의 다른 글
기간 계산 문제 (0) | 2013.01.11 |
---|---|
날짜 변환 문제 (0) | 2013.01.11 |
MySQL 함수 - 날짜 관련 함수 (0) | 2013.01.11 |
MySQL 함수 - 수학 함수 (0) | 2013.01.11 |
MySQL 함수 - 문자열 관련 함수들 (0) | 2013.01.11 |