DB
-
이번 포스트에서는 mysql의 sql_mode에서 ONLY_FULL_GROUP_BY 설정에 대해 알아보자. ONLY_FULL_GROUP_BY 이상한 group by 동작 기본으로 제공되는 world 데이터베이스에서 다음의 쿼리를 실행해보자. select sum(population) from city where countrycode='AFG'; countrycode가 'AFG'인 나라의 population 총 합을 물어보고 있는데 2332100가 나오면 정답이다. 다시 다음의 쿼리를 살펴보자. select name, countrycode, sum(population) from city where countrycode='AFG'; Oracle등에서 쿼리를 공부해보았다면 위의 쿼리는 일반 컬럼인 name과 집..
[mysql 설정] ONLY_FULL_GROUP_BY이번 포스트에서는 mysql의 sql_mode에서 ONLY_FULL_GROUP_BY 설정에 대해 알아보자. ONLY_FULL_GROUP_BY 이상한 group by 동작 기본으로 제공되는 world 데이터베이스에서 다음의 쿼리를 실행해보자. select sum(population) from city where countrycode='AFG'; countrycode가 'AFG'인 나라의 population 총 합을 물어보고 있는데 2332100가 나오면 정답이다. 다시 다음의 쿼리를 살펴보자. select name, countrycode, sum(population) from city where countrycode='AFG'; Oracle등에서 쿼리를 공부해보았다면 위의 쿼리는 일반 컬럼인 name과 집..
2022.09.13 -
이번 포스트에서는 다대다 관계의 문제점과 해결 방법에 대해서 살펴보자. M:N(다대다) 관계M:N(다대다) 관계의 예DB 모델링 과정에서 다대다 관계가 나올 수 있다. 쉽게 생각할 수 있는 관계로는 학생과 과목의 관계이다.학생은 학번, 이름, 학과에 대한 정보를 가지며 학번이 각각의 학생을 구별하는 P.K가 된다. 과목은 과목코드, 과목명, 담당교수를 갖는다. 여기서는 과목코드가 각 과목을 구별하는 P.K가 된다.이 두 테이블의 관계를 보면 학생은 여러 과목을 수강할 수 있고 한 과목은 여러 학생이 수강할 수 있다. 따라서 두 테이블은 서로 관계를 가져야 한다.만약 홍길동이 S1, S2를 수강하고 장길산은 S2와 S3를 수강했다고 생각해보자.학생 테이블에서 학생의 수강 정보를 확인하기 위해서는 학생이 ..
[DB] 다대다 관계의 문제점과 해결이번 포스트에서는 다대다 관계의 문제점과 해결 방법에 대해서 살펴보자. M:N(다대다) 관계M:N(다대다) 관계의 예DB 모델링 과정에서 다대다 관계가 나올 수 있다. 쉽게 생각할 수 있는 관계로는 학생과 과목의 관계이다.학생은 학번, 이름, 학과에 대한 정보를 가지며 학번이 각각의 학생을 구별하는 P.K가 된다. 과목은 과목코드, 과목명, 담당교수를 갖는다. 여기서는 과목코드가 각 과목을 구별하는 P.K가 된다.이 두 테이블의 관계를 보면 학생은 여러 과목을 수강할 수 있고 한 과목은 여러 학생이 수강할 수 있다. 따라서 두 테이블은 서로 관계를 가져야 한다.만약 홍길동이 S1, S2를 수강하고 장길산은 S2와 S3를 수강했다고 생각해보자.학생 테이블에서 학생의 수강 정보를 확인하기 위해서는 학생이 ..
2022.03.17 -
grouping 이번 포스트에서는 sql의 grouping 함수에 대해서 살펴본다. dev.mysql.com/doc/refman/8.0/en/miscellaneous-functions.html#function_grouping MySQL :: MySQL 8.0 Reference Manual :: 12.24 Miscellaneous Functions MySQL 8.0 Reference Manual / Functions and Operators / Miscellaneous Functions 12.24 Miscellaneous Functions Table 12.29 Miscellaneous Functions Name Description ANY_VALUE() Suppress ONLY_FULL_GROUP_BY v..
[sql]grouping 함수 사용법grouping 이번 포스트에서는 sql의 grouping 함수에 대해서 살펴본다. dev.mysql.com/doc/refman/8.0/en/miscellaneous-functions.html#function_grouping MySQL :: MySQL 8.0 Reference Manual :: 12.24 Miscellaneous Functions MySQL 8.0 Reference Manual / Functions and Operators / Miscellaneous Functions 12.24 Miscellaneous Functions Table 12.29 Miscellaneous Functions Name Description ANY_VALUE() Suppress ONLY_FULL_GROUP_BY v..
2021.04.16 -
mysql workbench 단축키 mysql workbench는 그다지 아름다운 툴은 아니라고 생각된다. 자잘한 버그들도 많고 UI가 화면을 넘쳐서 클릭하기 어렵다거나. 아무튼 세련되지 않다. 그 중 하나가 단축키에 대한 부분이다. 한줄 삭제를 해보고 싶은 열망에서 시작한 단축키 삽질을 기록해본다. 단축키 단축키 설명 일단 workbench의 단축키는 아래 url에 잘 나와있다. dev.mysql.com/doc/workbench/en/wb-keys.html MySQL :: MySQL Workbench Manual :: B Keyboard Shortcuts Appendix B Keyboard Shortcuts The following tables list keyboard shortcuts for MySQ..
mysql workbench 단축키mysql workbench 단축키 mysql workbench는 그다지 아름다운 툴은 아니라고 생각된다. 자잘한 버그들도 많고 UI가 화면을 넘쳐서 클릭하기 어렵다거나. 아무튼 세련되지 않다. 그 중 하나가 단축키에 대한 부분이다. 한줄 삭제를 해보고 싶은 열망에서 시작한 단축키 삽질을 기록해본다. 단축키 단축키 설명 일단 workbench의 단축키는 아래 url에 잘 나와있다. dev.mysql.com/doc/workbench/en/wb-keys.html MySQL :: MySQL Workbench Manual :: B Keyboard Shortcuts Appendix B Keyboard Shortcuts The following tables list keyboard shortcuts for MySQ..
2020.10.14 -
alias와 정렬 sql 문장에서 특히 조회 결과가 수식인 경우 alias를 이용해서 간략하게 표시한다. alias를 사용할 때는 as 키워드를 쓸 수도 있고 생략도 가능하다. alias는 order by 절에서도 그대로 사용 가능하다. select ename, sal, sal*comm/100, sal + sal*comm/100 total from emp where comm is not null order by total desc; 여기서 total이 두 단어로 구성된다면 반드시 '' 또는 ""로 묶어줘야 한다. 이 alias를 order by 에서 참조하기 위해서는 백틱 문자를 이용한다. 또는 아예 인덱스 기준으로 접근하는 것도 좋은 방법이다. select ename, sal, sal*comm/100,..
[mysql] 컬럼 alias와 정렬alias와 정렬 sql 문장에서 특히 조회 결과가 수식인 경우 alias를 이용해서 간략하게 표시한다. alias를 사용할 때는 as 키워드를 쓸 수도 있고 생략도 가능하다. alias는 order by 절에서도 그대로 사용 가능하다. select ename, sal, sal*comm/100, sal + sal*comm/100 total from emp where comm is not null order by total desc; 여기서 total이 두 단어로 구성된다면 반드시 '' 또는 ""로 묶어줘야 한다. 이 alias를 order by 에서 참조하기 위해서는 백틱 문자를 이용한다. 또는 아예 인덱스 기준으로 접근하는 것도 좋은 방법이다. select ename, sal, sal*comm/100,..
2020.08.22 -
MySQL 비밀번호 초기화 데이터베이스를 사용하다가 root 계정의 비밀번호를 분실하는 것은 정말 큰 일이다. 그나마 오라클의 경우 OS인증을 통해 좀 더 쉽게 처리할 수 있지만 MySQL은 갈길이 좀 멀다. 이 글은 윈도우용 MySQL 8.0.18 버전을 기준으로 작성되었다. 명령 프롬프트는 관리자 권한으로 사용한다. 서비스 중지 일단 현재 작동중인 서비스를 중지시킨다. C:\WINDOWS\system32>net stop MySql80 MySQL80 서비스를 멈춥니다... MySQL80 서비스를 잘 멈추었습니다. 승인 없이 접속할 수 있게 MySql을 시작한다. 기존에 windows에 install 형태로 설치했다면 datadir은 --datadir="C:/ProgramData/MySQL/MySQL S..
MySQL root 계정 비밀번호 초기화MySQL 비밀번호 초기화 데이터베이스를 사용하다가 root 계정의 비밀번호를 분실하는 것은 정말 큰 일이다. 그나마 오라클의 경우 OS인증을 통해 좀 더 쉽게 처리할 수 있지만 MySQL은 갈길이 좀 멀다. 이 글은 윈도우용 MySQL 8.0.18 버전을 기준으로 작성되었다. 명령 프롬프트는 관리자 권한으로 사용한다. 서비스 중지 일단 현재 작동중인 서비스를 중지시킨다. C:\WINDOWS\system32>net stop MySql80 MySQL80 서비스를 멈춥니다... MySQL80 서비스를 잘 멈추었습니다. 승인 없이 접속할 수 있게 MySql을 시작한다. 기존에 windows에 install 형태로 설치했다면 datadir은 --datadir="C:/ProgramData/MySQL/MySQL S..
2020.08.21 -
MySql 여러 데이터 동시 insert 데이터베이스 사용 초기에 테이블을 구성하면서 벌크로 대량의 데이터를 부어넣는 경우가 왕왕 발생한다. mysql에서는 이런 상황에서 매번 insert 쿼리를 쓰는것 보다는 value만 연속적으로 공급하는 방법을 사용할 수 있다. create table patient( name varchar(50), age int, gender char(1) ); insert into patient(name, age, gender) values('홍길동',100,'M'), ('나사기', 25, 'F') ; 실행 결과는 다음처럼 잘 들어가있다. mysql> select * from patient; +--------+------+--------+ | name | age | gender ..
MySql 여러 데이터 동시 insertMySql 여러 데이터 동시 insert 데이터베이스 사용 초기에 테이블을 구성하면서 벌크로 대량의 데이터를 부어넣는 경우가 왕왕 발생한다. mysql에서는 이런 상황에서 매번 insert 쿼리를 쓰는것 보다는 value만 연속적으로 공급하는 방법을 사용할 수 있다. create table patient( name varchar(50), age int, gender char(1) ); insert into patient(name, age, gender) values('홍길동',100,'M'), ('나사기', 25, 'F') ; 실행 결과는 다음처럼 잘 들어가있다. mysql> select * from patient; +--------+------+--------+ | name | age | gender ..
2020.08.20 -
MySql을 처음 사용할 때 필요한 설정들에 대해 알아보자. 아래 설정들은 Edit > Preferences에서 실시한다. 1. Safe Updates 옵션 해지 - mysql은 안전한 업데이트를 위해 primary key가 개입되지 않은 상태에서는 insert와 delete 문장이 동작하지 않는다. 15:13:19 delete from city 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 -> SQL Editor and reconnect..
[mysql 설정] 처음 사용시 유용한 설정들MySql을 처음 사용할 때 필요한 설정들에 대해 알아보자. 아래 설정들은 Edit > Preferences에서 실시한다. 1. Safe Updates 옵션 해지 - mysql은 안전한 업데이트를 위해 primary key가 개입되지 않은 상태에서는 insert와 delete 문장이 동작하지 않는다. 15:13:19 delete from city 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 -> SQL Editor and reconnect..
2020.03.28