SQL 기본

Vincent·2023년 5월 23일
0

SQL 쿼리 순서

  1. SELECT
  2. FROM
  3. WHERE
  4. GROUP BY - HAVING
  5. ORDER BY
  6. LIMIT
  • 비교연산자는 문자도 가능
    • SELECT * FROM table WHERE col2 < 'B'; : 'A'로 시작하는 모든 데이터가 검색
  • LIKE

    • NOT LIKE 'a%' : 'a'로 시작하지 않는
    • SELECT * FROM table1 WHERE col4='Q___'; : Q로 시작하되, 뒤에 3개의 문자가 뒤따라옴
    • % : 0개 이상의 문자 (이 자리에 문자열이 있을 수도, 없을 수도 있다)
    • _ : 임의의 단일 문자 (반드시 이자리에 한개의 문자가 존재해야 한다.)
  • IN, BETWEEN
    • SELECT * FROM table1 WHERE col3 IN ('LONDON', 'SEOUL'); : LONDON OR SEOUL
    • SELECT * FROM table1 WHERE col1 BETWEEN 3 AND 10; : 3~10
  • IS NULL
    • SELECT * FROM table1 WHERE col4 IS NULL;
  • GROUP BY
    • SELECT CategoryID,SUM(Price) FROM Products GROUP BY CategoryID; : 그룹화의 기준이 되는 컬럼은 SELECT 구문에 반드시 적어주기
  • HAVING

    • SELECT CategoryID,COUNT(*) FROM Products GROUP BY CategoryID HAVING COUNT(*) <= 10;

    • WHERE 조건절과 HAVING 그룹 조건절의 차이

      • WHERE : 관측값 전체에 대해 조건 검사를 하여, 조건에 맞지않는 관측값들은 필터링하여 제외하는 역할을 수행. 그룹함수(집계함수) 사용 불가. GROUP BY 이전에 시행, GROUP BY 함수 없이 사용 가능
        • HAVING : WHERE 절로 필터링된 이후, 혹은 WHERE 절 없이 집계한 값들 기준으로 조건검사를 실시. GROUP BY 함수 없이 사용 불가 / 조건에는 집계함수가 와야 함
  • 문자열 자르기
    • SELECT LEFT("20140323", 4) FROM sample; : 2014
    • SELECT RIGHT("20140323", 4) FROM sample; : 0323
    • SELECT SUBSTR(“20140323”, 3) FROM sample; : 140323 (3번째 문자부터 추출)
    • SELECT SUBSTR(“20140323”, 1, 4) FROM sample; : 2014(1번째 문자부터 4개 추출)
  • 소수점 처리
    • SELECT CEIL(5.5); : 6
    • SELECT FLOOR(5.5) : 5
    • SELECT ROUND(5.5569, 2) : 5.56
  • MYSQL 시간 더하기, 빼기

    • SELECT DATE_ADD(NOW(), INTERVAL 1 DAY);
    • SELECT DATE_SUB(NOW(), INTERVAL 1 SECOND);
  • SQLITE는 튜플 삭제 후 기본적으로 ID를 재사용

    • AUTOINCREMENT : SQLITE가 사용되지 않은 값이나 이전에 삭제된 행의 값을 재사용하는 것을 방지
  • SQLite는 따로 PRIMARY KEY 속성의 칼럼을 작성하지 않으면 값이 자동으로 증가하는 PK옵션을 가진 rowid 컬럼을 정의 (스키마에 id를 직접 작성했다면 INSERT시 명시하지 않으면 자동으로 입력되지 않음)

profile
Frontend & Artificial Intelligence

0개의 댓글