프로그래밍공부(Programming Study)/데이터베이스(Database)

W3C MySQL 정리/번역 1일차(MySQL 개요 ~ LIKE 연산자)

Chaany 2022. 5. 5.
728x90

귀여운 돌고래 sakila

 

MySQL 개요

  • 범용적인 관계형 데이터베이스관리시스템이다.
  • 무료 오픈 소스이다.
  • 크고 작은 어플리케이션에 적합하다.
  • 매우 빠르고, 신뢰성있고, 확장 가능하며, 편리하게 사용할 수 있다.
  • 크로스플랫폼이다.
  • ANSI SQL standard를 준수한다.
  • 1995년 출시 되었다.
  • 오라클이 개발, 배포, 지원한다.
  • My란 Monty Widenius의 딸 이름을 따왔다.

웹사이트에 데이터를 보여주기 위해서는

  • MySQL같은 RDBMS
  • PHP같은 Server-side scripting 언어
  • 원하는 데이터를 추출하기 위한 SQL
  • 페이지를 표현하기 위한 HTML/CSS

가 필요하다.

<참고>

RDBMS(관계형데이터베이스관리시스템)란?

  • 관계형데이터베이스를 유지보수하기 위한 프로그램
  • MySQL, Microsoft SQL Server, Oracle, and Microsoft Access를 기반으로 한다.
  • DB의 데이터에 접근하기 위해 SQL 쿼리를 사용한다.

<참고>

SQL 쿼리 : https://www.w3schools.com/sql/default.asp

DB Table(데이터베이스 테이블)이란?

  • rows(행)과 columns(열)을 포함하며, 관련 데이터 항목들의 집합을 의미
  • columns(열)은 모든 정보에 대한 특정한 정보를 담고 있음
  • rows/record(행)은 테이블 내에 존재하는 개별 항목/정보

해당 Customers 테이블에는 CustomerID, CustomerName, ContactName, Address, City, PostalCode and Country 총 7개의 columns(열)과 5개의 정보(행)으로 구성되어 있다.

RDB(관계형데이터베이스)란?

  • 테이블 형태의 데이터베이스에 관계를 갖고 있는 경우이다.
  • 각 테이블은 각각의 공통데이터를 기반으로 엮여있다(관계를 형성하고 있다)

SQL이란?

  • 관계형데이터베이스를 다루기 위한 표준 언어
  • 데이터베이스 레코드(정보)들을 삽입, 조회, 갱신, 삭제할 때 사용
  • 대소문자를 구별하지 않는다. 즉 select와 SELECT를 구별하지 않는다.
  • 세미콜론으로 문장을 끝맺는다

많이 사용되는 SQL 조작어

  • SELECT : 데이터베이스로부터 데이터 추출
  • UPDATE : 데이터베이스의 데이터 갱신
  • DELETE : 데이터베이스로부터 데이터 삭제
  • INSERT INTO : 데이터베이스에 새로운 데이터 삽입
  • CREATE DATABASE : 새로운 데이터베이스 생성
  • ALTER DATABASE : 데이터베이스 수정
  • CREATE TABLE : 새로운 테이블 생성
  • ALTER TABLE : 테이블 수정
  • DROP TABLE : 테이블 삭제
  • CREATE INDEX : 인덱스(조회키) 생성
  • DROP INDEX : 인덱스 삭제

SELECT 문

  • 데이터베이스로부터 데이터 추출시 사용
  • result-set이라 불리는 result table에 반환된 데이터를 저장함

SELECT DISTINCT 문

  • 중복 제거가 된 값을 반환받기 위해 사용

WHERE 절

  • records를 필터링하기 위해 사용되는 clause(절)이다.
  • 특정한 조건을 만족하는 정보들만을 추출하기 위해 사용

텍스트필드 vs 숫자형 필드

  • SQL은 작은따옴표 안에 텍스트를 기입하여야 함(대부분의 DBS는 큰따옴표도 허용함)
  • 숫자형필드의 경우 따옴표를 표기하지 않음

WHERE절의 연산자

  • = : 같다
  • < : 크다
  • < : 작다
  • ≥ : 같거나 크다
  • ≤ : 작거나 크다
  • <> : 같지 않다 (몇몇 버전의 경우 ≠를 사용함)
  • BETWEEN A and B = A ≤ 특정필드값 ≤ B(특정 범위)
  • LIKE : 패턴 조회( LIKE ‘%~, ~%, %~%’ → ~를 포함하고 있는 텍스트 필드)
  • In : column(열)의 다중값 중에 특정할 수 있는지의 여부(IN (’A’, ‘B’) or IN(1, 2))
  • NOT 컬럼 앞에 붙인다

AND, OR, NOT 연산자

  • WHERE 절에서 AND, OR, NOT 연산자 사용 가능
  • AND, OR 연산자는 한 개 이상의 조건으로 레코드를 필터하기 위해 사용
  • AND : 모든 조건이 TRUE일 경우 레코드를 보여줌
  • OR : 한 가지 이상의 조건이 TRUE일 경우 레코드를 보여줌
  • NOT : 조건이 TRUE이 아닐 경우 레코드를 보여줌

ORDER BY 구문

  • result-set을 오름차순 또는 내림차순으로 정렬하기 위해 사용
  • 오름차순을 default값으로 사용하며 내림차순으로 정렬하기 위해서는 DESC를 사용
  • 정렬기준 컬럼이 동일한 값일 경우 , 추가적인 컬럼으로 정렬을 하고 싶을 때는 추가 column을 기입

INSERT INTO 문

  • 테이블에 새로운 레코드를 삽입할 때 사용
  • 컬럼 이름과 값을 함께 기입 시 특정 컬럼에 값을 기입한 레코드 생성
  • 컬럼 이름 없이 값만 기입 시 모든 컬럼에 값 기입한 레코드 생성 → 주의사항 : 컬럼 순서를 지켜서 삽입할 값 명시

NULL 값이란?

  • 값이 없다라는 뜻
  • 필수적으로 입력해야 하는 필드가 아닌 경우 새로운 레코드를 생성 또는 레코드 갱신 시 아무 값도 넣지 않으면 NULL 값이 자동으로 저장됨
  • 0 또는 “ “과는 다른 개념, 그냥 레코드 생성 시 빈칸(EMPTY)으로 존재하는 것
  • =, <, >과 같은 비교 연산자로는 NULL값을 테스트 할 수 없으며 IS NULL 또는 IS NOT NULL 연산자로 활용 가능

UPDATE 문

  • 테이블의 기존 레코드를 수정할 때 사용
  • 주의사항 : WHERE절을 명시하지 않으면 전체 레코드가 갱신된다! 반드시 WHERE절을 명시하자

DELETE 문

  • 테이블의 기존 레코드를 삭제할 때 사용
  • 주의사항 : WHERE절을 명시하지 않으면 모든 레코드가 삭제된다! 반드시 WHERE절을 명시하자

LIMIT 구문

  • 반환될 레코드의 수를 특정하기 위해 사용
  • 방대한 레코드가 있는 테이블을 다룰 때 유용

MIN(), MAX() 함수

  • MIX() 함수 : 선택된 column의 최솟값을 반환
  • MAX() 함수 : 선택된 column의 최댓값을 반환

COUNT(), AVG(), SUM() 함수

  • COUNT() 함수 : 특정 범위를 만족하는 rows(행/레코드)의 갯수를 반환
  • AVG() 함수 : 숫자형 column의 평균값을 반환
  • SUM() 함수 : 숫자형 column의 합계값을 반환

LIKE 연산자

  • WHERE 구문에서 사용되며, column에서 특정 패턴을 찾기 위한 연산자
  • %, _ 와일드카드를 함께 사용함
    • % : 0개 이상의 문자 표현
    • _ : 단일 문자를 표현

<참고>

와일드카드 :https://techterms.com/definition/wildcard

https://www.w3schools.com/mysql/mysql_wildcards.asp

 

728x90

댓글