목록MySQL (24)
개발학습일지
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/8ZbdN/btsHO3z9zFZ/ELOih9Gzt6a9SwPu9G2QI0/img.png)
테스트 데이터를 지운 뒤, 인덱스 번호를 다시 1부터 하는 방법 MySQL Workbench로 쿼리문을 테스트하다 보면,테스트 데이터를 모두 지우고 새로 시작해도 인덱스 ID 부분의 숫자가 1부터 시작하지 않는 것을 해결하고자 한다. 해결방법은 간단한다.1. 모든 테스트 데이터를 지운다.- delete 문을 사용해도 되고, 직접 데이터를 선택해 지울 수도 있다. 2. Alter Table로 들어가서 Option에 Auto Increment를 1로 수정한 뒤 Apply 한다.- 이렇게 설정하면 인덱스 번호는 다시 1부터 시작된다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b2bu78/btsHERGA1wg/zmnQCLasksiVD5K7jPt26K/img.png)
MySQL DB에 저장되어 있는 데이터 파일로 저장하는 방법 1. 필요한 테이블을 선택해서 Select Rows로 테이블에 저장되어 있는 데이터를 확인한다. 2. 내가 저장하고 싶은 데이터가 맞다면, Tavle Data Export Wizard를 해당 테이블에서 선택한다.- 원하는 컬럼 값을 선택하고, Browse... 에 어디에 무슨 파일 이름으로 저장할지 선택한다. (나는 JSON을 선택했다. 파일확장자도 JSON으로 변경해준다.) 3. 내가 저장한 폴더에 가보면 잘 저장되어 있는 것을 확인할 수 있다.- 데이터 파일로 저장하기 성공!
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/crLZvA/btsHumuuu0u/UEtKxaGdaX66dK1i8fFbyK/img.png)
지정된 DB에만 전용으로 접속할 수 있는 계정 만들기 MySQL에서 기존 메인 DB에서 새로운 아이디와 비밀번호를 설정해서 만든다.-- 관리자로 들어간다는 뜻use mysql;-- 레시피 디비 유저라는 ID를 가진 계정을 만들고,-- 네트워크를 통해서 들어올 수 있게 만들었다. 비밀번호 입력create user 'recipe_db_user'@'%' identified by ' ';-- 내가 지정한 DB 내용에 모두 접근할 수 있는 권한을 레시피 디비 유저에게 주겠다.grant ALL privileges on recipe_db.* to 'recipe_db_user'@'%'; MySQL 홈에서 새로운 Connection 만들기1. 이름 정하기2. 메인 connection에서 사용하던 Hostname 작성..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/d0lCRS/btsHua1IKRS/VY42bc0PcBnZyWJTtmnJC1/img.png)
SQL의 like와 문자열 컬럼에 fulltext 설정 mysql 에서는 데이터를 검색하기 위해 like '% %'구문이 사용된다. 하지만 like 명령어의 경우 Full Scan 방식이기 때문에 많은 데이터를 검색할 때 비효율적이다. 이러한 단점을 극복하고자 검색 할 컬럼에 Fulltext 처리를 해준다 FULLTEXT많은 형태의 데이터가 있을 때 효율적으로 데이터를 찾는 방법중 하나이다. 컬럼에 설정하기- 해당 컬럼이 있는 테이블 설정 인덱스 탭에서 설정한다.- 인데스 이름을 정하고 타입은 FULLTEXT을 선택하고 원하는 컬럼을 선택하면 된다.- 두가지 컬럼에서 검색하고 싶다면, 한 개 더 체크해주면 된다. !! 문자열 like로 찾는 것은 FullText를 이용하기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bVMkZ7/btsHuK183Y9/kQAFmo4j9bAamVUf4ZNeOK/img.png)
화면 기획서보고 필요한 SQL문 만들기 : 영화 리뷰 서비스 관련된 앱의 화면 기획서를 보고 SQL문 작성하기 [ SQL문 만들기 ]화면 기획서를 보고 테이블 생성 > 테스트 데이터 인서트 > 화면에 필요한 SQL문 작성 (클라이언트에게 전달할 데이터 가공) 1) 작성 순서 : 단일 테이블 처리 가능한 것부터 작성하고 메인 화면처럼 여러 테이블 조인하는 것은 맨 나중에 작성한다. 2) 개발자들이 데이터 찾는 것에 문제가 없도록 해당데이터 ID는 항상 같이 넣어준다. 3) 데이터가 많을 경우 페이징 처리한다. limit 키워드를 사용해서 페이징 처리를 한 SQL문을 만든다. 4) 서버 개발자는 데이터를 가공하지 않고 추출해서..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bKRhfF/btsHtGzDZXd/WgTpfCY6nkL9Hgtqtm5Rn1/img.png)
MySQL에서 UQ 설정하기Error Code: 1062. Duplicate entry 가 나오는 이유!: 동일한 항목이 있어서 저장을 할 수 없다는 뜻이다. Error Code: 1062 가 되도록 MySQL에서 설정하는 방법을 밑에서 알아보자. 1. 하나의 컬럼 값을 유니크하게 설정하고 싶을 경우- 고객 이메일 데이터 같은 중복되면 안 되는 항목을 설정할 때 사용한다.- 테이블 생성시 원하는 컬럼의 UQ 체크해 준다. - 설정을 완료하면 인덱스 탭에 유니크 값이 들어가 있는 것을 볼 수 있다. - 모두 확인한 다음 동일한 항목 insert 하면, 밑에 박스와 같은 오류가 뜨면 정상적으로 유니크 값이 설정된 것이다.Error Code: 1062. Duplicate entry 'abc@naver...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cVkOET/btsHqnAmA6f/WSIj3OHvcKtPlN6xQCocpk/img.png)
Foreign Keys 값 설정되어 있는 데이터 삭제하기 데이터 삭제하는데 문제 상황: Error Code : 1451 로 인해 삭제가 불가능하다Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails (`yhdb`.`papers`, CONSTRAINT `papers_student_id` FOREIGN KEY (`student_id`) REFERENCES `students` (`id`)) 문제 이유: 에러코드를 읽어보면, Foreign Keys 값 설정되어 있어서 삭제할 수 없다고 한다. 그 이유는 데이터를 마구잡이로 삭제하게되면 데이터의 정확성이 떨어지기 때문에, 데이터의 정확성을 위해서 프로그램이 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bjyKUI/btsHrtfcv6I/VH2kQnnd5TnCMg5I0UjBN0/img.png)
테이블을 하나로 합치기 테이블 합치기 전에 Foreign Key를 지정해야 한다.참고. https://msdev-st.tistory.com/119 [MySQL] Foreign Keys 지정해서 테이블끼리 연결하는 방법Foreign Keys 지정해서 테이블끼리 연결하는 방법 FOREIGN KEYFOREIGN KEY 제약 조건을 설정한 필드는 외래 키라고 부르며, 한 테이블을 다른 테이블과 연결해 주는 역할을 한다.외래 키가 설정된 테이블msdev-st.tistory.com 테이블을 하나로 합칠 때는 join 키워드를 사용한다.- from -- join -- on ---- 두개 테이블을 하나로 합쳐서 가져오시오.select *from ordersjoin customers on orders.customer_..