본문 바로가기

개발중/sql

(34)
MY SQL 의 PRIMARY KEY 와 KEY 차이점. MY SQL 을 사용하는 와중에 A 테이블에 대해서 새로운 정보를 저장할 B 테이블을 만들어야 하는 경우가 생겼다. 즉, A의 테이블의 PK 인 seq 컬럼을 B 테이블의 외래키로 가져와서 B 테이블에 다른 정보를 저장하는 것이다. 이번 업무를 하면서 새롭게 배운 점은 MY SQL 은 외래키가 존재하지 않는다. 다른 테이블의 KEY 를 참조 할 때는 컬럼명을 동일하게 한다. MY SQL 의 PRIMARY KEY 와 KEY 차이점을 알고 있어야 한다. ✅ INDEX('SEQ', 'TITLE') index로 선언,사용하면 항상 소트된 값을 유지하므로 검색이 빠릅니다. ✅ KEY('SEQ', 'TITLE') key로 선언되면 unique한 key값으로 저장,사용하게 하며 자동으로 index가 설정된다. 일반적..
MYSQL 설치 삽질 기록 Error Stating Workbench Administrator DBLoginError: Access denied for user 'root@localhost' (using password: YES) 시도 1 mysql> mysql -u root -p 1234 시도 2 mysql> use mysql mysql> update user set password=password('바꿀 비밀번호') where user='사용자 이름'; mysql> flush privileges; 시도 3 그냥 계정 다시 만듬 CREATE USER 'soobin'@'localhost' IDENTIFIED WITH mysql_native_password BY '비밀번호'; 새로만든 계정으로 접속 성공 또 발생한 서버 에러 sho..
MY SQL ERROR - my.ini 위치 / 수정 ✅ MY SQL ERROR - my.ini 위치 / 수정 🔴 SHOW VARIABLES WHERE Variable_Name LIKE "%dir"; 🔴 echo %PROGRAMDATA% 🔴 C:\ProgramData 🔵 수정 전 🔵 수정 후 ✅ my.ini 수정 권한 설정
mybatis / 존재하지 않는 테이블명 에러 잡기 java.sql.SQLSyntaxErrorException: Table 'BINSOO_TABLE_1103' doesn't exist 지금 하고 있는 프로젝트 중에서 관리하는 데이터가 너무 많아서 유동적으로 SEQ 마다 테이블이 생성되는 구조를 가진 프로젝트를 짜고 있었다. SELECT * FROM BINSOO_TABLE_#{SEQ} 이렇게 연결이 되어야 하는데 만약에 존재하지 않는 테이블명이라면 ? 물론 위에 처럼 로직을 세우려면 꼭 SEQ 마다 TABLE 이 존재해야겠지만 정말 혹시나 하는 상황에는 아래처럼 에러 메세지를 이용하는 방법도 존재한다. public List selectBinsooData( BinsooVo vo ) { List voList = null; try { voList = SqlSes..
mysql 권한이 있는지 확인하는 경우 [RC6-22 기준] # mysql -u root -p # 비밀번호:위기db # 사용자 변환 # use mysql; # 데이터 베이스 확인 # show databases; # 데이터 베이스에 허용된 계정과 호스트 확인 # select user, host from user;
My sql Like 여러개 : ) 이름 속성 안에 'ㄱ' OR 'ㄴ' OR ㄷ' 를 쿼리를 뽑고 싶다면 ✅ 이렇게 보내주세요. String NAME = "ㄱ|ㄴ|ㄷ"; ✅ 쿼리를 이렇게 써주세요. AND 이름 REGEXP '${NAME}' ✅ 이렇게 날라갈 꺼에요. AND 이름 REGEXP 'ㄱ|ㄴ|ㄷ'
SQL 삽질 기록 : ( 사용자 통계를 뽑아야 한다. 검색 조건은 고객사 별로 뽑아야 하고, 자 천천히 생각을 해보자. 1. 로그 정보 + 고객 정보 액션 로그 테이블과, 고객 테이블을 기준으로 user_seq 가 일치하는걸 추출 🤣 액션 로그에는 데이터가 존재하지 않지만 고객정보에 존재한다면 그 고객의 NULL 인 데이터도 필요해 그러기 위해서 RIGHT OUTER JOIN 을 사용했다. SELECT L.user_seq , COUNT(L.action_seq) AS CNT , L.action_seq , U.user_seq FROM ACTION_LOG_3 AS L RIGHT OUTER JOIN ( SELECT U.* FROM USER U ) AS U ON L.user_seq = U.user_seq GROUP BY L.user_se..
MY SQL 테이블 복사 / 데이터 복사 MY SQL 에서 테이블 데이터를 함부로 건들이면 안되는 경우가 있다. 그럴 경우에는 Second Table 을 생성해서 관리하는데 CEATE 기존 테이블 구조를 그대로 복사한다 CREATE TABLE BBB like AAA INSERT 기존 테이블 데이터를 그대로 복사한다 방법 1 INSERT INTO AAA SELECT * FROM BBB; 방법 2 INSERT INTO AA ( A1 , A2) SELECT , A1 , A2 FROM BB;