본문 바로가기
반응형

IT/Database112

[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.
[Oracle]특정 컬럼명을 가진 테이블을 찾을때 어떤 컬럼을 조인하고 있는 테이블을 찾고 싶거나, 컬럼명만 알고 테이블 이름을 모를때 사용하는 쿼리이다. SELECT TABLE_NAME, COLUMN_NAME FROM ALL_TAB_COLUMNS WHERE 1=1 AND COLUMN_NAME = 'table_name' AND COLUMN_NAME LIKE '%ble_n%' 참고로 전체 테이블을 확인하는 쿼리는 다음과 같다. select * from all_tables; 2022. 7. 27.
InsertSelect / UpdateSelect 데이터베이스를 다루는 쿼리는 다양하게 있지만 InsertSelect 과 UpdateSelect 라는 구문도 있다. 구문은 쉬우나 자주 헷갈리는 문법이라서 포스팅 해두고 직접 보려고 작성하였다. InsertSelect Insert Into 테이블A A Select * from 테이블B B //여기에서는 컬럼이 동일한 갯수, 자료형 이어야 한다. UpdateSelect UPDATE 테이블A A SET ( A.업데이트 받을 컬럼 ) = ( SELECT B.업데이트 할 컬럼 FROM 테이블 B B WHERE B.NO = '특정번호' ) WHERE A.NO ='특정번호'; 2022. 7. 23.
Join의 종류 데이터베이스에서 join이라고 하면 다들 inner join이나 left outerjoin 혹은 cross join 등은 많이 들어봤을 것이다. 하지만 이런 조인은 조인의 종류로 나뉜것으고 이 종류들이 데이터베이스에서 수행하는 방법이 있다. 수행방법의 조인은 Nested Loop / Sort Merge / Hash 조인이 있다. NL (Nested Loop) Join nl 조인이라고도 많이 부르는 이 조인 수행기법은 다음과 같다. 그림에 있는 숫자가 수행하는 순서이다. 1. 선행테이블에서 첫번째 행을 접근. 2. 그 행의 조인할 속성을가지고 후행테이블 인덱스를 거쳐 접근 3. 1-2번의 작업을 반복하여 맵핑하며 결과를 버퍼에 저장하여 마지막에 출력함. 특징은 다음과 같다. 1. 선행테이블은 풀스캔하므로,.. 2022. 7. 8.
[Mysql] 백업 및 복원 데이터를 마이그레이션 하거나 서버를 옮기거나 등등 작업때문에 백업 및 복원에 대해서 빈번하게는 아니지만 할일이 생긴다. 전체 DB백업 mysqldump -uroot -p --all-databases >filename.sql 특정 DB백업 mysqldump -uroot -p --databases name > filename.sql 특정 DB복원 mysql -uroot -p name < filename.sql 2022. 5. 20.
반응형