본문 바로가기

아옳옳의 코딩공부/아옳이의 데이터베이스 MySQL

2021-05-26 MySQL 데이터베이스 삽입,수정,삭제

반응형

데이터 삽입 , 수정 , 삭제 

 

INSERT 문 

@기본적인 사용방법

INSERT INTO mySelf (1열 ,2열 ) VALUES (값1,값2,값3.....) ;

@테이블 이름 다음에 나오는 열 생략하기 ( 단 열의 순서 및 개수는 동일해야함) 

@id와 이름만 입력하고 나이는 입력하고 싶지 않을때 (단 속성값이 not null이 아닐경우)

@열의 순서를 바꾸어 입력하고 싶을 때  

AUTO_INCREMENT 키워드

자동으로 1부터 증가하는 값을 입력하는 값 

반드시 PRIMARY KEY 와 UNIQUE로 설정해야함 

데이터 형식이 숫자인 열에만 사용 가능 

입력할때 INSERT문에서 null 로 입력하면 자동으로 값 입력 

@입력 값을 100부터 (임의의 숫자) 시작하도록 하고 싶다면

@증가값을 1이 아닌 다른값으로 변경하고 싶다면 

@데이터 삽입시 코드를 줄이기위해 한번에 삽입( 가독성을 위해 잘 사용은 안함) 

@대량의 데이터 삽입형식

셀프 2에서 가져온값을 셀프3에 넣어줌 

@다른 테이블에서 데이터 가져와 삽입하기 ( 테이블 정의 생략 ) 

이렇게 테이블에 데이터직접 넣고 다른테이블에서 가져와 넣는것 까지가 INSERT 문이다. 

UPDATE문

테이블에 입력되어 있는 값을 수정하는 명령어 

사용 방법 UPDATE 테이블이름 SET 열1= 값, 열2=r값 ... where 조건;

@하나의 속성 변경하기 

 

수정전

수정후

#뽀로로 나이 바뀐건 실수로 바꿔버린거니 이해....#

 

@전체 테이블 내용을 수정하고 싶을때 where절 생략 

DELETE문

테이블에 데이터를 행 단위로 삭제하는 명렁어 

@테이블에 행단위로 삭제하기 

1번 뽀로로 삭제됨

@DELETE문에서 WHERE절 생략하면 테이블에 저장된 전체 데이터가 삭제

mySelf에 아무것도 안남아 있다 

@상위 몇건만 삭제하고자 할때 추가로 LIMIT 절 사용 

내일 가서 물어봐야 할거 같아 내일 가서 확인 해보고 작성

 

 

#데이터 삭제하는 방법 3가지 

DELETE        데이터 삭제 - 로고 남김 - 가장느림 ( 보안성및 안전성을 위한다면 이거 사용)  

TURNCATE   데이터 삭제 - 로고 안남김  - 중간 - 테이블 구조를 남겨 놓는다 

DROP          테이블 삭제 , 데이터베이스 삭제 - 로고 안남김 - 가장빠름 - 테이블 자체가 필요 없는 경우  

 

잘 확인 해야 할것이 드랍을 하게 되면 아에 테이블 삭제이다 

 

 

마지막 오류가 발생해도 계속 삽입 되도록 설정하기 

이러한 테이블이 있다고 가정하자 이런 테이블을 복제해서 실습을 해보도록 하겠다. 

처음보는 ADD 와 CONSTRAINT 가 있는데 이건 제약조건을 추가해준다고 알고 있으면된다.

이렇게 id에는 프라이머리키가 달려 같은 숫자가 있으면 안된다 일부러 오류를 띄워 보겠다.

이렇게 1번이 있는 상황에서 1번으로 추가를 하려 하면 다음과 같은 오류가 뜬다 .

굳이 오류까지 보여주면서 설명하는 이유가 무엇이냐 예를 들어보자 내가 1000개의 데이터를 저장하기 위해서 다음과 같이 작성을 헀다고 가정하자 

다쓰기 귀찮아서 이렇게 표현 했다 만약에 이상태에서 실행하면 어떻게 될까? 

이렇게 1개 때문에 나머지 1000개가 실행이 안되는 불상사가 벌어진다. (이게 1000개는 차이가 얼마 없지만 만약 갯수가 많다면 엄청난 시간 손해이다. ) 

이런 불상사를 막기위하여 사용하는게 다음이다.

 

@오류가 나도 계속 삽입되도록 설정 IGNORE

이렇게 중복되는 부분은 넘어가고 나머지는 실행해준다

@기본키가 중복되면 새로 삽입한 내용으로 수정하기 (잘 사용 안함 ) 

기존 99번이 쿠쿠다스로 변경됨 

 


 

반응형