본문 바로가기
컴터/Database (MYSQL)

2) [Database_MYSQL] table 삽입,변경,삭제

by 나 진짜 못차마 2023. 6. 16.
728x90

요약은 제일 밑에!

테이블에 데이터를 삽입해볼겁니다.

삽입

INSERT INTO table_name VALUES (value1, value2, value3,...);

INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...);

두번째 문법에서 컬럼들의 순서와 밸류 순서와 정확히 일치해야합니다!

예제 :

일단 테이블을 생성하고

CREATE TABLE `student` (
    `id`  tinyint NOT NULL ,
    `name`  char(4) NOT NULL ,
    `sex`  enum('남자','여자') NOT NULL ,
    `address`  varchar(50) NOT NULL ,
    `birthday`  datetime NOT NULL ,
    PRIMARY KEY (`id`)
);

컬럼의 순서대로 values 를 입력해줍니다.

INSERT INTO `student` VALUES ('2', '박영희', '여자', '서울', '2000-10-26');
INSERT INTO `student` (`id`, `name`, `sex`, `address`, `birthday`) VALUES ('1', '김철수', '남자', 'seoul', '2000-11-16');

일단 첫번째 INSERT 부터 해주면

잘 들어간 걸 확인했습니다.

두번째 INSERT

두번째 방식을 굳이 쓰는 이유는 데이터 베이스 구조가 변경될 수 있는데

직접 컬럼의 순서와 이름을 정의해주고 거기에 따라서 값들을 세팅해주는게 바람직하다고 합니다.

변경

UPDATE 테이블명 SET 컬럼1=컬럼1의 값, 컬럼2=컬럼2의 값 WHERE 대상이 될 컬럼명=컬럼의 값;

예제 :

DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` tinyint(4) NOT NULL,
  `name` char(4) NOT NULL,
  `sex` enum('남자','여자') NOT NULL,
  `address` varchar(50) NOT NULL,
  `birthday` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
INSERT INTO `student` VALUES (1, '이숙경', '여자', '청주', '1982-11-16 00:00:00'); 
INSERT INTO `student` VALUES (2, '박재숙', '남자', '서울', '1985-10-26 00:00:00');
INSERT INTO `student` VALUES (3, '백태호', '남자', '경주', '1989-2-10 00:00:00');
INSERT INTO `student` VALUES (4, '김경훈', '남자', '제천', '1979-11-4 00:00:00');
INSERT INTO `student` VALUES (8, '김정인', '남자', '대전', '1990-10-1 00:00:00');
INSERT INTO `student` VALUES (6, '김경진', '여자', '제주', '1985-1-1 00:00:00');
INSERT INTO `student` VALUES (7, '박경호', '남자', '영동', '1981-2-3 00:00:00');

 

1.

UPDATE `student` SET address='서울';

address 데이터를 모두 '서울' 로 변경하는 것입니다.

보시는 것 처럼 address의 모든 값이 '서울'로 변경이 되었습니다.

2.

UPDATE `student` SET name='이진경' WHERE id=1;

id 가 1인 행의 name 을 '이진경'으로 변경하는 것입니다!

선택한 행의 name이 변경되었습니다.

 

3.

UPDATE `student` SET name='김철수', birthday='2001-4-1' WHERE id=3

id 가 3인 행에 name 을 '김철수'로, birthday 를 '2001-4-1' 로 변경하는 것입니다.

name 과 birthday 가 바뀐 것을 확인할 수 있습니다!

삭제

DELETE : 행단위로 데이터를 삭제

DELETE FROM 테이블명 [WHERE 삭제하려는 칼럼 명=값]

예제:

DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` tinyint(4) NOT NULL,
  `name` char(4) NOT NULL,
  `sex` enum('남자','여자') NOT NULL,
  `address` varchar(50) NOT NULL,
  `birthday` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  
INSERT INTO `student` VALUES (1, '이숙경', '여자', '청주', '1982-11-16 00:00:00');
INSERT INTO `student` VALUES (2, '박재숙', '남자', '서울', '1985-10-26 00:00:00');
INSERT INTO `student` VALUES (3, '백태호', '남자', '경주', '1989-2-10 00:00:00');
INSERT INTO `student` VALUES (4, '김경훈', '남자', '제천', '1979-11-4 00:00:00');
INSERT INTO `student` VALUES (8, '김정인', '남자', '대전', '1990-10-1 00:00:00');
INSERT INTO `student` VALUES (6, '김경진', '여자', '제주', '1985-1-1 00:00:00');
INSERT INTO `student` VALUES (7, '박경호', '남자', '영동', '1981-2-3 00:00:00');
DELETE FROM student WHERE id = 2;

id 가 2인 행만 삭제한다는 뜻!

2행이 감쪽같이 사라집니다.

TRUNCATE : 테이블의 전체 데이터를 삭제.

테이블의 외부키가 없다면 DELETE보다 훨씬 빠르게 삭제됨.

TRUNCATE 테이블명 ;

예제 :

TRUNCATE student;

테이블의 데이터가 모두 삭제됩니다.

DROP TABLE : 테이블을 삭제.

DROP TABLE 테이블명;

예제 :

DROP TABLE student;

student 테이블이 삭제되었습니다.

테이블을 다 지우는 건 위험하니 백업이 중요합니다.

다음에는 Table 을 조회하는 방법에 대해서 공부해보겠슴돳

요약

삽입

INSERT INTO table_name VALUES (value1, value2, value3,...);
INSERT INTO table_name (column1, column2, column3,...) VALUES (value1, value2, value3,...);

변경

UPDATE 테이블명 SET 컬럼1=컬럼1의 값, 컬럼2=컬럼2의 값 WHERE 대상이 될 컬럼명=컬럼의 값;

삭제

DELETE : 행단위로 데이터를 삭제

TRUNCATE : 테이블의 전체 데이터를 삭제.

테이블의 외부키가 없다면 DELETE보다 훨씬 빠르게 삭제됨.

DROP TABLE : 테이블을 삭제.

DELETE FROM 테이블명 [WHERE 삭제하려는 칼럼 명=값]

TRUNCATE 테이블명 ;

DROP TABLE 테이블명;

 

 

강의 및 자료 출처 -

생활코딩

https://opentutorials.org/course/1

 

 

생활코딩

hello world 생활코딩의 세계에 오신 것을 환영합니다. 생활코딩은 일반인들에게 프로그래밍을 알려주는 무료 온라인, 오프라인 수업입니다.  어떻게 공부할 것인가를 생각해보기 전에 왜 프로그

opentutorials.org

 

728x90