my.cnf 파일에 아래 내용을 설정해 주면 지정된 파일에 쿼리 로그를 남길 수 있다.

 

[root@AP1 etc]#vim  my.cnf        

 

general_log = 1

slow-query-log = 1 
general_log_file = /var/log/mysql_query.log
expire_logs_days = 2
max_binlog_size = 10M

JOIN 절은 두 개 이상의 테이블에서 관련성이 있는 컬럼에 기초하여 행(Row)을 결합하는 데 사용됩니다.

 

 

1. [ INNER JOIN ] --> INNER JOIN 키워드는 양쪽 테이블 모두에서 일치하는 레코드를 반환합니다. (교집합)

SELECT column_name(s)
FROM table1
INNER JOIN table2 ON table1.column_name = table2.column_name;

 

 

2. [ LEFT JOIN ] --> LEFT JOIN 키워드는 왼쪽 테이블(table1)의 모든 레코드와 오른쪽 테이블(table2)의 일치하는 레코드를 반환합니다. 오른쪽에 일치하는 레코드가 없으면 왼쪽에서는 결과가 NULL이 됩니다.

SELECT column_name(s)
FROM table1
LEFT JOIN table2 ON table1.column_name = table2.column_name;

 

 

3. [ RIGHT JOIN ] --> RIGHT JOIN 키워드는 오른쪽 테이블(table2)의 모든 레코드와 왼쪽 테이블(table1)의 일치하는 레코드를 반환합니다. 왼쪽에 일치하는 레코드가 없으면 오른쪽에서는 결과가 NULL이 됩니다.

SELECT column_name(s)
FROM table1
RIGHT JOIN table2 ON table1.column_name = table2.column_name;

 

4. [ RULL OUTER JOIN ] --> FULL OUTER JOIN 키워드는 왼쪽 테이블(table1) 또는 오른쪽 테이블(table2) 레코드에 일치하는 모든 레코드를 반환합니다.

SELECT column_name(s)
FROM table1
FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;

 

 

 

 

 

UPDATE ips INNER JOIN country
ON ips.iso = country.iso
SET ips.countryid = country.countryid

 

Mysql 데이터를 Select 할때 일부 필드의 특정값 ( 복수 지정 가능)만  빼고 불러와야 하는 상황이 있는데요.

 

예를들면 ID라는 필드에 admin, admin1, admin2 라는 관리자 계정을 빼고 불러온다거나...

이런 경우 where 절에 not in 조건으로 지정할 수 있다.

select * from 테이블명 where 필드명 not in ('제외할문자1','제외할문자2'...등);

다음은 구누보드에서의 멤버 테이블 중 지정된 아이디를 제외하고 Select 하는 구문이다.

select * from g4_member where mb_id not in('admin','admin1','admin2');

위의 쿼리를 실행하면

 

g4_member 테이블에 mb_id 에서 admin, admin1, admin2  만 제외하고 데이터를 불러오게 됩니다.

+ Recent posts