728x90
MySQL 개요
- 범용적인 관계형 데이터베이스관리시스템이다.
- 무료 오픈 소스이다.
- 크고 작은 어플리케이션에 적합하다.
- 매우 빠르고, 신뢰성있고, 확장 가능하며, 편리하게 사용할 수 있다.
- 크로스플랫폼이다.
- ANSI SQL standard를 준수한다.
- 1995년 출시 되었다.
- 오라클이 개발, 배포, 지원한다.
- My란 Monty Widenius의 딸 이름을 따왔다.
웹사이트에 데이터를 보여주기 위해서는
- MySQL같은 RDBMS
- PHP같은 Server-side scripting 언어
- 원하는 데이터를 추출하기 위한 SQL
- 페이지를 표현하기 위한 HTML/CSS
가 필요하다.
<참고>
- 서버사이드 : https://ko.wikipedia.org/wiki/서버_사이드
- 서버사이드스크립트 언어: https://ko.wikipedia.org/wiki/서버_사이드_스크립트_언어
- 스크립트언어 : https://ko.wikipedia.org/wiki/스크립트_언어
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
'프로그래밍공부(Programming Study) > 데이터베이스(Database)' 카테고리의 다른 글
MongoDB 특징 및 설치/환경설정 (0) | 2023.01.03 |
---|---|
MySQL 버전별 차이 (0) | 2022.12.03 |
SQL 코딩의 기술(pp.176 ~ 194) (0) | 2022.07.15 |
MySQL W3CSchool 번역 4일차(MySQL부분 완료) (0) | 2022.05.10 |
W3C MySQL 정리/번역 2/3일차(Wildcard ~ ANY 연산자) (0) | 2022.05.07 |
댓글