[웹 서비스 개발] MySQL_Syntax_1_posted_24

김광일·2024년 11월 15일

웹 서비스 개발

목록 보기
29/45

일자 : 11주차 1차시

[1] SQL 사용 방법

  • 다음 SQL 문은 "Customers" 테이블의 모든 레코드를 선택한다.
SELECT * FROM Customers;

[1-2] SELECT 열 예제

  • 다음 SQL 문은 "Customers" 테이블에서 "CustomerName", "City" 및 "Country" 열을 선택한다.
SELECT CustomerName, City, Country FROM Customers;

[2] MySQL SELECT DISTINCT 문

  • SELECT DISTINCT 문은 고유한(다른) 값만 반환하는 데 사용된다.
  • 테이블 내의 열은 종종 많은 중복 값을 포함하며, 때때로 고유한(다른) 값만 나열하고 싶을 수 있다.

1) SELECT DISTINCT 구문

SELECT DISTINCT column1, column2, ...
FROM table_name;

2) DISTINCT 없이 SELECT 예제

  • 다음 SQL 문은 "Customers" 테이블의 "Country" 열에서 모든(중복 포함) 값을 선택한다.
SELECT Country FROM Customers;

3) SELECT DISTINCT 예제

  • 다음 SQL 문은 "Customers" 테이블의 "Country" 열에서 고유한 값만 선택한다.
SELECT DISTINCT Country FROM Customers;

4) COUNT

  • 다음 SQL 문은 "Customers" 테이블에서 서로 다른(고유한) 국가의 수를 계산하여 반환한다.
SELECT COUNT(DISTINCT Country) FROM Customers;

[3-1] MySQL WHERE 절

  • WHERE 절은 레코드를 필터링하는 데 사용된다.
  • 지정된 조건을 충족하는 레코드만 추출하는 데 사용된다.

[3-2] 텍스트 필드와 숫자 필드

  • SQL은 텍스트 값 주위에 단일 따옴표를 요구한다(대부분의 데이터베이스 시스템에서는 이중 따옴표도 허용된다).
  • 그러나 숫자 필드는 따옴표로 묶지 않아야 한다.
SELECT * FROM Customers
WHERE CustomerID = 1;

[3-3] WHERE 절의 연산자

  • WHERE 절에서 사용할 수 있는 연산자는 다음과 같다:
연산자설명
=같음
>보다 큼
<보다 작음
>=크거나 같음
<=작거나 같음
<>같지 않음. (일부 SQL 버전에서는 != 사용)
BETWEEN특정 범위 내
LIKE패턴 검색
IN열의 여러 가능한 값을 지정하기 위해 사용

[4] MySQL AND, OR 및 NOT 연산자

  • WHERE 절은 AND, OR 및 NOT 연산자와 결합할 수 있다.
  • AND와 OR 연산자는 여러 조건을 기반으로 레코드를 필터링하는 데 사용된다:
  • AND 연산자는 AND로 구분된 모든 조건이 TRUE일 때 레코드를 표시한다.
    • OR 연산자는 OR로 구분된 조건 중 하나라도 TRUE일 때 레코드를 표시한다.
    • NOT 연산자는 조건이 TRUE가 아닐 때 레코드를 표시한다.

1) AND 구문

SELECT column1, column2, ...
FROM table_name
WHERE condition1 AND condition2 AND condition3 ...;

2) OR 구문

SELECT column1, column2, ...
FROM table_name
WHERE condition1 OR condition2 OR condition3 ...;

3) NOT 구문

SELECT column1, column2, ...
FROM table_name
WHERE NOT condition;

4) 예시 모음

// AND 예제
SELECT * FROM Customers
WHERE Country = 'Germany' AND City = 'Berlin';

// OR 예제
SELECT * FROM Customers
WHERE City = 'Berlin' OR City = 'Stuttgart';

SELECT * FROM Customers
WHERE Country = 'Germany' OR Country = 'Spain';

// NOT 예제
SELECT * FROM Customers
WHERE NOT Country = 'Germany';
  • AND, OR 및 NOT 결합

    SELECT * FROM Customers
    WHERE Country = 'Germany' AND (City = 'Berlin' OR City = 'Stuttgart');
    
    SELECT * FROM Customers
    WHERE NOT Country = 'Germany' AND NOT Country = 'USA';

[5] ORDER BY

  • MySQL ORDER BY 키워드
  • ORDER BY 키워드는 결과 집합을 오름차순 또는 내림차순으로 정렬하는 데 사용된다.
  • ORDER BY 키워드는 기본적으로 레코드를 오름차순으로 정렬한다. 레코드를 내림차순으로 정렬하려면 DESC 키워드를 사용한다.

1) ORDER BY 구문

SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;

2) 예제

SELECT * FROM Customers
ORDER BY Country;

SELECT * FROM Customers
ORDER BY Country DESC;

3) 여러 열에 대한 ORDER BY 예제

SELECT * FROM Customers
ORDER BY Country, CustomerName;

4) 여러 열에 대한 ORDER BY 예제 2

SELECT * FROM Customers
ORDER BY Country ASC, CustomerName DESC;

[6] MySQL INSERT INTO 문

  • INSERT INTO 문은 테이블에 새 레코드를 삽입하는 데 사용된다.
  • INSERT INTO 문을 두 가지 방법으로 작성할 수 있다:
  1. 삽입할 열 이름과 값을 모두 지정한다:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
  1. 테이블의 모든 열에 값을 추가하는 경우 SQL 쿼리에서 열 이름을 지정할 필요가 없다. 그러나 값의 순서가 테이블의 열과 동일해야 한다. 이 경우 INSERT INTO 구문은 다음과 같다:
INSERT INTO table_name
VALUES (value1, value2, value3, ...);

1) INSERT INTO 예제

다음 SQL 문은 "Customers" 테이블에 새 레코드를 삽입한다:

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');

[6-1] NULL 값이란?

  • NULL 값이 있는 필드는 값이 없는 필드이다.
  • 테이블의 필드가 선택 사항인 경우 새 레코드를 삽입하거나 레코드를 업데이트할 때 이 필드에 값을 추가하지 않아도 된다. 그러면 해당 필드는 NULL 값으로 저장된다.

참고: NULL 값은 0 값이나 공백이 포함된 필드와 다르다. NULL 값이 있는 필드는 레코드 생성 시 비워 두어진 필드이다!

1) IS NULL 구문

SELECT column_names
FROM table_name
WHERE column_name IS NULL;

2) IS NOT NULL 구문

SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;

3) 예제

// IS NULL
SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NULL;

// IS NOT NULL
SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address IS NOT NULL;

[7] MySQL UPDATE 문

  • UPDATE 문은 테이블의 기존 레코드를 수정하는 데 사용된다.

1) UPDATE 구문

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

참고: 테이블에서 레코드를 업데이트할 때 주의해야 한다! UPDATE 문에서 WHERE 절을 확인하라. WHERE 절은 어떤 레코드가 업데이트되어야 하는지를 지정한다. WHERE 절을 생략하면 테이블의 모든 레코드가 업데이트된다!

2) 예제

UPDATE Customers
SET ContactName = 'Alfred Schmidt', City = 'Frankfurt'
WHERE CustomerID = 1;

[8] MySQL DELETE 문

  • DELETE 문은 테이블에서 기존 레코드를 삭제하는 데 사용된다.

1) DELETE 구문

DELETE FROM table_name WHERE condition;

참고: 테이블에서 레코드를 삭제할 때 주의해야 한다! DELETE 문에서 WHERE 절을 확인하라. WHERE 절은 어떤 레코드를 삭제할지를 지정한다. WHERE 절을 생략하면 테이블의 모든 레코드가 삭제된다!

2) 예제

DELETE FROM Customers WHERE CustomerName='Alfreds Futterkiste';

3) 모든 레코드 삭제

DELETE FROM table_name;

profile
안녕하세요, 사용자들의 문제 해결을 중심으로 하는 프론트엔드 개발자입니다. 티스토리로 전환했어요 : https://pangil-log.tistory.com

0개의 댓글