MySQL 활용 (기타)

(2018-05-13)
1. MySQL 활용 (기초)주석(comment) : #,  --,  /* */ 


2. 사례별 활용

  ㅇ 특정 값이 없으면 INSERT 하고, 있으면 UPDATE 하기
     -  INSERT ~ ON DUPLICATE UPDATE ~

     - 例) INSERT id=t_id,email=t_email ON DUPLICATE UPDATE id=t_id,email=t_email
        . 특정 t_id가 없으면, t_id 및 t_email을 함께 INSERT 하고, 
        . 특정 t_id가 있으면, t_email로 UPDATE 함

  ㅇ 중복값 찾기
     - SELECT t1, count(*) as num FROM test GROUP BY t1 HAVING num>1;

  ㅇ 비어있는 id 찾기
     - SELECT a.id + 1 as available FROM tblname a LEFT JOIN tblname b ON b.id = (a.id + 1)
              WHERE b.id IS NULL ORDER BY a.id LIMIT 0,1

  ㅇ 조건_1에 맞게 select한 후, 조건_2에 맞게 update 하기
     - UPDATE tbl1 a LEFT JOIN (SELECT col1,col2 FROM tbl2 WHERE 조건_!) b
              ON a.col1=b.col2 SET 대입절 WHERE 조건_2 

  ㅇ SELECT 결과 집합의 행 번호 매기기  : @rownum (세션 변수 활용)
     - SET @rownum:=0; SELECT (@rownum:=@rownum+1) AS num, ... FROM 테이블명 ... ;
     - SELECT (@row_number:=@row_number + 1) AS num, ... 
                        FROM (SELECT @row_number:=0) AS t, 테이블명 ...

  ㅇ 테이블 복사 (구조 및 데이터 모두)
     - CREATE TABLE new_table LIKE old_table;
     - INSERT INTO new_table SELECT * FROM old_table;

  ㅇ NULL 비교 조건
     - column IS NULL 또는 column IS NOT NULL 로써 가능
     - column = NULL 은 비교를 위한 올바른 문법이 아니고, 단지 대입문
3. MySQL에서, 트리 구조 구현

  ㅇ 조건
     - (자기자신 ID : id, 부모 ID : pid, 루트 ID : 0)

  ㅇ 특정 노드로부터 모든 부모 노드 찾기
     - SELECT문에 의한 방법
        . SELECT @r AS _id, (SELECT @r:=pid FROM temp_table WHERE id=_id LIMIT 1) AS _pid
          FROM (SELECT @r:=특정노드ID) vars, (SELECT * FROM temp_table) h 
          WHERE @r > 0

  ㅇ 직계 자식 노드 수
     - SELECT a.id, a.title, COUNT(b.id) as childCount FROM treetbl a LEFT OUTER JOIN
         treetbl b ON a.id=b.parent GROUP BY a.id


4. MySQL Fulltext 검색색인 걸기
     - CREATE FULLTEXT INDEX idx_name ON tblname (colname);
     - ALTER TABLE tblname ADD FULLTEXT(col1, col2);

  ㅇ 색인 재구성
     - REPAIR TABLE tblname QUICK;


[MySQL] 1. MySQL 2. MySQL 서버 3. 저장 프로그램 4. 문자 세트 5. MySQL 백업 6. MySQL 계정 7. MySQL 활용 (기타) 8. MySQL 함수
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
  7.   정보기술(IT)
        1. 정보기술
    1.   전산기초
    2.   컴퓨터구조
    3.   프로그래밍
    4.   데이터베이스
          1. DB
      1.   데이터베이스 기초
      2.   관계형데이터베이스
            1. RDB
            2. RDBMS
            3. 관계 대수
        1.   RDB 용어
        2.   SQL
        3.   MySQL
          1.   1. MySQL
              2. MySQL 서버
              3. 저장 프로그램
              4. 문자 세트
              5. MySQL 백업
              6. MySQL 계정
              7. MySQL 활용 (기타)
              8. MySQL 함수
      3.   DB 모델링/설계
      4.   회복,병행제어
      5.   데이터웨어하우스
      6.   데이터베이스(기타일반)
    5.   소프트웨어 공학
    6.   운영체제
    7.   정보보호/보안
    8.   IT 기타기술
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

 
        최근수정     요약목록(시험중)     참고문헌