본문 바로가기
반응형

서버/Mysql28

SQL 두 테이블 비교하여 한쪽 테이블 없는 값 추출 두 개의 테이블을 비교해서 한쪽에 데이터가 없을 시에 조회하는 방법에 대해 알아보도록 하겠습니다. 먼저 예를들기 위해 아래에 두 개의 테이블을 생성하였습니다. test1 num name phone 1 영희 010-1111-2222 2 철수 010-1234-1234 test2 num name phone 1 민수 010-1312-1111 2 철수 010-1234-1234 test1과 test2에 name을 비교하여 양쪽 다 존재하지 않는 데이터를 추출하는 방법은 not in이라는 구문을 사용합니다. select * from test1 where name not in (select name from test2); test 1의 name을 조건으로 주면서 not in을 통해 test2의 name 데이터를 비교합.. 2022. 2. 17.
SQL 일정 기간 이내 테이블 조회 SQL문을 통해 데이터를 조회 시 한 달 이내 자료 조회, 일주일 이내 자료 조회 등과 같은 기간을 통한 조회방법이 필요한 경우가 많습니다. 이러한 기간조회 방식은 date_add라는 sql문을 통해 사용합니다. SELECT * FROM cordinghero.test where date > date_add(now(),interval -1 month); 먼저 위의 구문에서 date_add 앞쪽에 기호가 어느 방향이냐에 따라서 조회하는 기간 이내인가 아니면 기간을 지난것인가를 결정합니다. date > date_add 라면 뒤쪽에 -1 month이므로 한 달 이내라는 뜻이고 date < date_add 로 방향을 변경하면 한 달이 지난 데이터라는 뜻이 됩니다. 여기서 interval은 month 뿐만 아니라 .. 2022. 2. 16.
Mysql 사용자 생성 및 권한 설정 Mysql에 접속할 사용자를 생성하는 방법과 생성한 사용자에게 관리권한을 설정하는 방법에 대해 알아보도록 하겠습니다. 먼저 Mysql에 3306 포트로 외부에서 접속하기 위한 사용자를 추가하려면 Mysql에 root로 로그인을 해주도록 합니다. mysql -uroot use mysql 위 두가지 명령을 통해 mysql에 root사용자로 접속했습니다. 그런 다음 외부에서 접속할 사용자를 추가하도록 합니다. create user '아이디'@'%' identified by '비밀번호'; 생성을 하였다면 권한을 주어야 하는데 모든 것을 관리할 수 있는 권한과 특정 DB만을 관리할 수 있는 권한 둘 중에서 관리의 특성에 맞게 설정해 주도록 합니다. // 모든 것을 할 수 있는 권한 grant all privile.. 2022. 2. 11.
Mysql 에러 로그 출력 Mysql을 실행하는 동안 어떠한 이유에서 실행이 되지 않거나 연결이 끊어지는 경우가 있는데 개발자는 왜 어떠한 이유로 문제가 발생하는지를 추적해야 하기 때문에 오늘 포스팅의 에러 출력에 대한 내용이 중요합니다. Mysql 라이브러리에서는 기본적으로 연결된 소켓의 에러 정보를 출력할 수 있는 함수를 제공하는데 mysql_error() 라는 함수입니다. mysql_error(&connection); 해당 함수에 들어가는 인자는 현재 프로그램에서 Mysql 연결할 때 선언한 MYSQL 포인터 변수입니다. MYSQL *connection; 간단하게 예를들어서 DB를 Select 하는 구문에서 에러가 발생할 경우에 해당 함수를 가지고 에러내용을 출력하는 방법을 알아보겠습니다. int iStatus; char s.. 2022. 2. 9.
Mysql 필드 데이터 Null select 방법 Mysql DB에서 필드 데이터 값이 Null인 경우를 select 하려고 하는데 다음과 같이 실행할 경우에 조회가 되지 않습니다. select Number from Test where data = Null; Test 테이블의 Number 데이터를 Select 하는 구문에서 조건으로 data값이 Null인 경우를 조회하는 구문으로 당연히 조회가 될 것으로 생각되지만 실행하여 결과를 본다면 조회가 되지 않습니다. 그 이유는 Null인 값을 조회 할 때에는 = 구문이 아닌 Is 를 통한 비교로 Select를 해야 하기 때문입니다. 즉 위의 구문에서 data = Null 인 구문을 data Is Null로 변경하면 됩니다. 그럼 위 구문을 Is문으로 변경하면 다음과 같습니다. select Number from.. 2022. 1. 27.
테이블 데이터형 정리 이번 포스팅은 테이블 설계에 어떠한 데이터형을 사용해야 효율적인지 참고하기 위해 Mysql 테이블 구성에서 가장 중요한 데이터형들에 대해 정리하겠습니다. TINYINT 1byte 부호 있는 정수 -128 ~ 127 1byte 부호 없는 정수 0 ~ 255 SMALLINT 2byte 부호 있는 정수 -32768 ~ 32767 2byte 부호 없는 정수 0 ~ 65535 MEDIUMINT 3byte 부호 있는 정수 -8388608 ~ 8388607 3byte 부호 없는 정수 0 ~ 16777215 INT or INTEGER 4byte 부호 있는 정수 -2147483648 ~ 2147483647 4byte 부호 없는 정수 0 ~ 4294967295 BIGINT 8byte 부호 있는 정수 -92233720368.. 2022. 1. 14.
반응형