ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 함수 정리, 기본 사용 예제
    database/sql 2023. 11. 24. 15:05

    ./mysql -uroot -p -hlocalhost
    (유저id, 패스워드, 호스트명)

    SHOW = TABLE 확인
    SELECT = 읽기
    FROM = 불러올 테이블
    DESC = col의 상태 확인

    SHOW opentutorials
    (opentutorials 안에 있는 테이블들 확인)

    DESC topic
    (topic 에 있는 행의 상태 확인)

    SELECT * FROM topic
    (topic 에 있는 모든 정보 확인)

    WHERE = 어느 값을 기준으로 찾을지 정함
    AND = 이전에 사용한 함수를 한번 더 사용
    OR = 이거 혹은 저거
    BETWEEN = ~~ AND ~~ 사이에 있는 숫자

    DATE_FORMAT(A , %Y) = 괄호안의 날짜, 시간 데이터에서 내가 원하는 종류의 데이터만 추출 할 때
    LIKE = 같다면, WHERE t.date LIKE = "2022" ,  t.date가 2022 와 같다면
    IN = ()안의 내용과 일치하는 조건을 걸 때 사용, 주로 WHERE, HAVING 등
    IS = 현재 상태, WHERE, HAVING 등의 조건문에서 사용
    NOT =  =!로 대체가능?, 앞의 함수가 참이 아니라면

    비교연산자 <, >, =(==), != 등 모두 사용 가능

    ANY, SOME = 조건 + 서브쿼리로 이루어진 연산자로, 서브쿼리의 내용이 조건에 하나라도 부합하면 true
    ALL = 조건 + 서브쿼리로 이루어진 연산자로, 서브쿼리의 내용이 모두 조건에 부합해야 true


    JOIN = 중복된 col을 기준으로 테이블을 합쳐서 관리, 기본상태는 INNER 와 같음(교집합 만)
    LEFT = 왼쪽 테이블
    FULL OUTER = 양쪽 모두, 만약 LEFT OUTER 로 사용한다면 교집합 + 왼쪽테이블
    RIGHT = 오른쪽 테이블
    INNER = 교집합

    ON = 합칠 col들의 기준을 정하는 구절
    NATURAL = 공통 컬럼이 하나일 때 사용
    USING = 공통 컬럼이 둘 이상일 때 사용


    GROUP BY = 특정 col을 기준으로 집계 함수(count, sum, avg, max 등)를 추출 할 때 사용
    HAVING = GROUP BY 함수는 자체적으로 집계함수를 사용 할 수 없는데, 집계함수로 조건비교 할 때 사용한다

    DISTINCT = 중복제거
    AVG = 평균
    SUM = 총합

    COUNT = 카운팅
    ROUND = 반올림 (col, 숫자) 처럼 숫자를 넣어 x번째 자릿수 까지 표현도 가능 
    IF = 세문단으로 나뉘는데, 조건이 되는 함수와 참, 거짓일때 출력할 문자열으로 나뉜다
    REGEXP = 특정 조건의 문자를 검색하거나 치환 하는 함수, LIKE 대신 더 복잡한 조건을 걸 수 있다
    MAX = max

    ORDER BY = 어떤 col을 기준으로 어떤 방식으로 정렬할지
    DATEDIFF = 연도, 개월, 주, 일, 시간 등의 차를 구하는 함수이다

    LIMIT = 한정된 수의 데이터를 가져 올 때


    AS = 출력할 col의 이름을 수정

     


    EXIST = 서브쿼리 전용 함수로, 서브쿼리가 반환하는 결과값이 존재하는지를 참, 거짓으로 판별한다
              부모 쿼리의 컬럼값을 가져와 서브쿼리 내에서 비교할 수 있다 (java의 상속 개념과 동일)

     

    ()UNION ALL() = 앞, 뒤에 있는 쿼리를 합쳐서 출력한다
    WITH = TABLE AS ()안에 서브쿼리를 작성하여 메서드와 같이 table을 호출하는 것으로 서브쿼리를 사용할 수 있다

    % = 문자가 존재하는지 확인하는 방법, %NAME이라면 문자열 뒷부분에 NAME이 있나 확인, NAME% 라면 NAME으로 시작하는 문자인지 확인
    COALESCE (NAME, 'NO NAME') = NAME이 NULL이라면 NONAME을 출력 아니면 NAME출력
    SUBSTRING(col명, 시작 범위, 끝 범위) = ()안에 col명을 넣는 것을 제외하면 자바와 동일한 듯
    SUBSTRING_INDEX(email, '@', 1) = email 을 '@'로 쪼개서 1번째만 출력, -1은 마지막만 출력
    case when... then else ... end = SELECT에서 조건에 따라 다른 메세지를 출력할 때 사용?
    RECURSIVE = 자기자신을 호출한다

    ------------------
    생성하는법
    CREATE = 생성
    DATABASE
    INSERT = 갑 넣기
    INTO = ~ 테이블에
    VALUES() = ~테이블에 넣을 값
    NOW()
    AUTO_INCREMENT
    NULL, NOT NULL = null허용, 비허용
    PRIMARY KEY() = pk 설정
    -------------------
    수정하는 법
    UPDATE = 수정
    RENAME = 이름 바꾸기
    SET = 수정
    WHERE

    UPDATE topic SET title = 'MySQL', WHERE id = 2;
    (topic 에 있는 id 2를 가진 데이터의 title을 MySQL로 수정)
    (WHERE 빼먹으면 전부 수정 되니 주의)

    RENAME TABLE topic TO topic_backup;
    (topic 을 topic_backup 으로 변경)
    -------------------
    제거하는 법
    DELETE
    FROM
    WHERE

    DELETE FROM topic WHERE id = 5;
    (topic 에 있는 id = 5인 데이터를 삭제함)
    (여기도 WHERE을 빼먹으면 큰일남, 생활코딩님 - '인생이 바뀔 수 있다')
    --------------------

    USE = TABLE에 접속
    DROP = TABLE 삭제

    'database > sql' 카테고리의 다른 글

    join과 서브쿼리의 차이  (0) 2023.11.27
Designed by Tistory.