본문 바로가기
반응형

IT/Database98

[Mysql] select 랜덤값 출력 SQL을 할때 랜덤으로 데이터를 가져오고 싶을때 사용하는 ORDER BY RAND() SELECT * FROM table ORDER BY RAND(); 이런식으로 으로 간단하게 사용할 수 있으며, limit 10; 을 뒤에 붙임으로써 10개의 데이터 혹은 원하는 데이터 만큼의 레코드를 가져올수 있다. SELECT * FROM table ORDER BY name desc, RAND() LIMIT 1; 만약 위 쿼리처럼 다른 컬럼을 정렬 후에 사용하면 우선 name 컬럼으로 내림차순으로 정렬하고 같은 값이 있는경우에 다시 랜덤으로 섞어서 하나를 가져온다. 2022. 10. 17.
[Mysql] 실행한 query log 확인 및 추적 하는 법 mysql 에서 실행한 쿼리의 이력을 확인해야 할 경우가 있다. 그럴때 사용하는 명령어 이다. select * from INFORMATION_SCHEMA.PROCESSLIST order by id desc limit 100; 그리고 로그파일을 남기는 방법도 있다. 파일 위치 - /etc/my.cnf general_log=ON #쿼리 로그가 출력되도록 설정 general_log_file=/home/mysql_query_log/query.log #로그파일 경로 설정 이후 mysql 재기동 하면 설정이 된다. 2022. 10. 9.
[Mysql] 문자열 추출 및 인덱싱 이전에 다뤘던 포스팅은 문자열에 대한 자르기 추출(substring) 이었다면 이번 포스팅은 문자열의 위치를 나타내주는 함수이다. 추출 관해서는 아래 참고 포스팅을 참고 바란다. INSTR INSTR('문자열','추출문자') 해당 문자열의 index를 추출해준다. 사용법은 아래와 같다. select INSTR('가나다라마','다라마'); //3 LOCATE LOCATE('검색문자','문자열) 해당 문자열의 index를 추출해준다. 사용법은 아래와 같다. select LOCATE('CDE','ABCDE'); //3 참고 포스팅 https://thenicesj.tistory.com/342 [mysql] 문자열 추출 Mysql 에서도 프로그래밍 처럼 문자열을 자를수가 있다. substring substring.. 2022. 10. 6.
[Oracle] 옵티마이저 힌트 및 실행계획 옵티마이저는 쿼리문을 실행할 경우 다양한 실행 경로를 생성하고 비교하여 최적의 경로를 만들어준다. 자세한 내용은 아래 참고 포스팅을 참고하면 도움이 될것이다. 참고포스팅에서는 옵티마이저나 최적화에 대해서 알게 되는데 그럼 옵티마이저 힌트는 언제 어떻게 사용하는지에 대해서 알아볼 것이다. 옵티마이저 힌트는 우선 아래와 같은 방식으로 사용을 한다. select /*+ hint 기술 */ a, b, c from table; /*+ 과 */ 로 쌓여진 주석같은 구문 안에 작성을 한다. 사용하는 이유는 옵티마이저가 계획한 실행 경로가 상황에 따라 최적이 아닐 경우가 있다. 옵티마이저가 계산한 인덱스보다 효율적인 인덱스가 존재 스캔의 종류 변경(인덱스 / 풀 스캔) 옵티마이저가 계산한 조인보다 효율적인 조인이 존재.. 2022. 10. 1.
[Mysql] 라이선스 오픈소스로 유명하게 알려진 mysql 에 대해서는 많이 들어봤을것이다. oracle과 합병이 되면서 mariadb라고도 알려져있기도 한 이 mysql 은 오픈소스인만큼 많은 이들이게 사용을 당하고 있다. 하지만 오픈소스라고 해서 언제든지 어디서든 누구든 무료로 사용을 할수 있을까? 정답은 NO 이다. mysql은 오픈소스이면서 GPL 라이선스를 따르고 있다. 라이선스의 종류 및 특징은 아래 참고 포스팅을 참고하길 바란다. mysql의 라이선스는 제품 종류에 따라 GPL과 자체적인 상용 라이선스 두 가지가 적용된다. 제품 종류는 무료와 유료로 나뉜다. 무료 버전은 커뮤니티 에디션(Community Edition)이라는 이름으로 되어있고 만약 mysql 사용을 영리 목적으로 사용하려면 유료 버전을 써야 한다.. 2022. 9. 30.
[Mysql] 문자열 추출 Mysql 에서도 프로그래밍 처럼 문자열을 자를수가 있다. substring substring(문자열, 시작위치, 길이) select substring("ABCDEF",3); //CDEF select substring("ABCDEF",3,2); //CD select substring("ABCDEF" from 3); //CDEF select substring("ABCDEF" from 2 for 2); //BC left, right left(문자열, 길이) / right(문자열, 길이) select left("ABCDEF",2); //AB select right("ABCDEF",2); //EF substring_index substring_index(문자열, 구분자, 구분자 인덱스) select substr.. 2022. 9. 27.
[Mysql] 에서 데이터를 엑셀 파일로 저장 기존 쿼리에서 추가를 하면된다. INTO OUTFILE '/var/lib/mysql-files/test.csv' -- csv 파일을 출력하고자 하는 경로 CHARACTER SET utf8 -- 언어 타입 설정 FIELDS TERMINATED BY '|' OPTIONALLY ENCLOSED BY '"' -- '|'로 구분하고 구분지운 문자열 타입들을 ""로 감싼다 ESCAPED BY '\\' -- '\\'일 경우 끝 LINES TERMINATED BY '\n' -- 줄바꿈은 "\n"으로 표시 하지만 이렇게 했는데 다음 에러가 나올 경우가 있다. The MySQL server is running with the --secure-file-priv option so it cannot execute this st.. 2022. 9. 25.
mysql 접속 에러 [public key retrieval is not allowed] mysql 을 dbeaver 접속시 다음 에러가 나왔다. public key retrieval is not allowed mysql 8.0 이후로는 allowPublicKeyRetrieval=true 설정을 해줘야 했다. jdbc 주소는 다음과 같이 jdbc:mysql://localhost:3306/databasename?allowPublicKeyRetrieval=true 로 하고 dbeaver 설정은 아래에서 설정한다. 2022. 9. 18.
[Mysql] error : You are using safe update mode mysql 에서 테이블을 만들고 임의 값을 넣은 후 delete 를 사용하니 다음과 같은 에러가 나오면서 삭제가 이루어 지지 않았다. Error Code : 1175: You are using safe update mode and you tried to update a table without a Where that uses a Key column. 해결 방법은 다음과 같다. set sql_safe_updates=0; sql 안전모드를 해제 해주는것이다. 어디까지나 로컬 피시에서만 작업하길 권장하고 실 운영중인 서버라면 안전모드를 혹시모를 상황에 대비하여 해제하지 않는것이 좋을것이다. 2022. 9. 16.
반응형