SQL기본

남생이·2024년 8월 9일

Robotics

목록 보기
5/8

DML(Data Manipulation Language)

  • SELECT

    데이터베이스에서 데이터를 조회하는 명령어입니다.
    예: 특정 테이블의 모든 데이터를 조회할 때 사용합니다.


SELECT * FROM table_name;

    특정 조건을 만족하는 데이터를 조회할 수도 있습니다.

SELECT column1, column2 FROM table_name WHERE condition;
  • INSERT

    테이블에 새로운 데이터를 삽입하는 명령어입니다.
    예: 테이블에 새로운 행을 추가할 때 사용합니다.


INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3);
  • UPDATE

    테이블의 기존 데이터를 수정하는 명령어입니다.
    예: 특정 조건을 만족하는 행의 데이터를 변경할 때 사용합니다.

UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition;
  • DELETE

    테이블에서 데이터를 삭제하는 명령어입니다.
    예: 특정 조건을 만족하는 행을 삭제할 때 사용합니다.

DELETE FROM table_name WHERE condition;

SQL 기본 문법

  • <SELECT...FROM>

    • 원하는 데이터를 가져와 주는 기본적인 구문
    • 데이터베이스 내 테이블에서 원하는 정보 추출하는 명령
  • USE

    • SELECT문 학습을 위해 사용할 데이터베이스 지정
    • 지정한 후 다시 USE를 사용하거나 다른 DB를 명시하지 않는 이상 모든 SQL은 지정 DB에서 수행
  • SELECT*

    • SELECT: 데이터를 선택(조회)하겠다는 명령어입니다.
    • *: 테이블의 모든 열을 의미합니다. 모든 열을 조회할 때 사용됩니다.
  • SELECT 열이름

    • 테이블에서 필요로 하는 열을 가저옴, 여러 열을 가져올때는 ','로 구분
문법의미
SHOW DATABASES;현재 서버에 존재하는 DB 탐색
SHOW TABLE STATUS데이터 베이스에 있는 테이블 정보 조회
SHOW TABLES테이블 이름만 보기
DESCRIBE/DESC filename파일의 테이블 열 조회
  • SELECT...FROM...WHERE
    특정 조건의 데이터만 조회

    • WHERE

      • 조회하는 결과에 특정한 조건을 줘서 원하는 데이터만 보고 싶을때 사용
        SQL SELECT * FROM employees WHERE age >= 30;
    • 관계 연산자 사용 가능(AND, NOT, OR, >= !=...)

    • BETWEEN...AND

      • 데이터가 숫자로 구성되어 있으며 연속적인 값
        SQL SELECT NAME, HEIGHT FROM UERTBL WHERE HEUGH BETWEEN 180 AND 183;
    • IN()

      • 이산적인(discrete) 값의 조건
        SQL SELECT NAME, HEIGHT FROM USERTBL WHERE HEIGH IN('183');
    • LIKE 문자% /

      • 문자열 패턴을 검색
      • %: 0개 이상의 임의의 문자와 일치합니다.
      • _: 정확히 1개의 임의의 문자와 일치합니다.

      SQL SELECT column1, column2 FROM table_name WHERE column_name LIKE pattern;

    1. 문자열 일부와 일치하는 행 조회
      SQL SELECT * FROM employees WHERE name LIKE 'A%';
    2. 문자열의 일부와 일치하는 행 조회(끝부분)
      SQL SELECT * FROM employees WHERE name LIKE '%e';
    3. 문자열의 중간에 있는 부분과 일치하는 행 조회
      SQL SELECT * FROM employees WHERE name LIKE '%li%';
    4. 정확히 한글자와 일치하는 행 조회
      - 아래의 코드는 두번째 글자가 a인 모든 이름 행 조회
      SQL SELECT * FROM employees WHERE name LIKE '_a%';

  • 쿼리문(Query)

    • 데이터베이스에서 데이터를 검색하거나 조작하는 SQL 명령어
  • 서브쿼리(Sub Query)

    • 다른 SQL 쿼리 내에 포함된 쿼리문

    • 주로 데이터의 일부를 선택하고 그 결과를 외부 쿼리로 전달하는데 사용

  1. 스칼라 서브쿼리 (Scalar Subquery): 단일 값만 반환합니다.
SELECT name, age
FROM employees
WHERE age > (SELECT AVG(age) FROM employees WHERE department = 'IT');
  1. 다중 행 서브쿼리 (Multi-row Subquery): 여러 행을 반환합니다.
SELECT name
FROM employees
WHERE age IN (SELECT age FROM employees WHERE department = 'HR' AND age > 30);
  1. 다중 열 서브쿼리 (Multi-column Subquery): 여러 열을 반환합니다.
SELECT name, department
FROM employees
WHERE (department, age) IN (SELECT department, age FROM employees WHERE age > 30);
  • ANY
    • 서브쿼리의 여러개의 결과 중 한가지만 만족해도 가능
    • SOME은 ANY오 동일한 의미로 사용
    • =ANY(서브쿼리)는 IN(서브쿼리)와 동일한 의미
  • ALL
    • 서브쿼리의 결과 중 여러 개의 결과를 모두 만족해야 함
  • ORDER BY절
    • 원하는 순서대로 정렬하여 출력
    • 결과물에 대해 영향을 미치지 않고 출력되는 순서를 조절하는 구문
    • 기본적으로 오름차순 정렬
    • 내림차순으로 정렬하려면 열 이름 뒤에 DESC
profile
공부하는 거북이

0개의 댓글