DB 8

정규화 반정규화

정규화(Normalization)정규화는 데이터베이스의 중복을 줄이고, 데이터의 일관성을 높이기 위해 하는 과정임. 주로 이런 점들이 중요함:중복 제거함: 같은 데이터가 여러 곳에 저장되는 걸 방지함.무결성 유지함: 데이터 추가, 수정, 삭제할 때 일관성을 유지할 수 있게 함.쿼리 효율성 높임: 데이터 구조가 명확해지면 쿼리 성능도 향상됨.정규화는 여러 단계로 나눠져 있는데, 1NF, 2NF, 3NF 같은 정규형이 있음.반정규화(Denormalization)반정규화는 성능을 높이기 위해 일부러 데이터 중복을 허용하고, 정규화된 데이터를 통합하는 과정임. 주요 이유는 이러함:성능 향상함: JOIN이 많이 필요할 때, 데이터를 미리 결합해서 쿼리 속도를 높임.복잡성 감소함: 데이터 모델이 단순해져서 쿼리가 ..

DB 2024.09.24

[Mysql] 이름앞에 글자추가하기, 문자열 바꾸기 ( + Error Code:1406, Error Code:1175)

문자열 바꾸기 예를들어 reg_date 컬럼에 있는 내용을 20210310 등을 전부 19960310등으로 바꾸 고싶을때는 update test.brand set reg_date = replace(reg_date,'202102', '199602') where brand_id=1 ; 위와 같이 replace를 사용하여 바꾸고 싶은 컬럼, 바꾸고 싶은 내용, 바뀔 내용 등으로 적용하면 된다. Error Code:1406. Data too long for column 'name' at row 1 위와 같은 에러가 난다면 Data too long for column은 해당 컬럼의 데이터 타입을 보는것이 제일 좋다 CHAR(8)인데 그이상을 넣지는 않았는지 등.. Error Code:1175. You are us..

DB/Mysql 2021.03.10

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column. To disable safe mode, toggle the option in Preferences Mysql에서 특정한 sql을 실행하던 도중 이러한 에러가 발생 특정 값을 찾은후 다른 값으로 변경하려 하던 도중 발견 원인 테이블에서 키값을 이용한 update나 delete만을 허용하도록 하고있는데, 그것을 제외한 넓은 범위의 쿼리를 적용하려 할때 발생 (하나의 레코드만을 이용한 update, delete만 가능) 해결방안 1. 쿼리앞줄에 set sql_safe_updates=0; 추가 (일..

DB/Mysql 2020.08.04

[mysql] INSERT 문

가장 기초적인 INSERT문은 1. INSERT INTO 테이블 (컬럼1, 컬럼2, 컬럼3) VALUES (값, 값, 값); 이다. 여러개의 값을 넣을때에는 INSERT INTO 테이블 (컬럼1, 컬럼2, 컬럼3) VALUES (값, 값, 값), (값, 값, 값), (값, 값, 값); 예) 학교라는 테이블이랑 학생이란 테이블이 매핑상태이다. 1 : N 구조 일경우 동일한 학생을 여러 학교에 INSERT 하고싶다. SELECT한 값에 INSERT 문을 넣으려면 insert into 학생 (school_id, 컬럼2, 컬럼3) select id, 값,값 from school; 로 사용하면 된다. 마찬가지로 프로시져를 만들어서 사용하는 방법도 있긴한데 이는 다음 포스팅으로..

DB/Mysql 2020.07.31