➡️ bin(중요) : MySQL의 서버 프로그램, 클라이언트 프로그램 및 유틸리티 프로그램 파일
➡️ docs : 도움말 또는 설정 파일
➡️ etc : 설정 파일 샘플
➡️ include : 응용 프로그램을 개발할 때 필요한 헤더 파일들
➡️ lib : MySQL과 관련된 라이브러리 파일
➡️ share : 기타 지원 파일, 각 언어 별 오류 메시지 파일 등
3) MySQL 환경 변수 설정하기
➡️ 환경 변수 설정 : SETX PATH ”경로;%PATH%”
➡️ mysql -V : 버전 확인하기
➡️ mysql -u root -p : 서버 접속
➡️ show databases; : DB목록
➡️ use DB명 : 해당 DB를 사용
➡️ show tables; : 테이블 목록
➡️ 쿼리문 작성 가능
02. 데이터베이스 선택 가이드
1) KEY - VALUE DATABASE
2) RDBMS
3) Graph DATABASE
4) Document DATABASE
5) Column-family DATABASE
6) Search engin
03. SQL(Structured Query Language)
SQL
SQL 표준
릴레이션 스키마와 인스턴스
데이터 언어
SQL 작성 시 주의사항
SQL 실습
1️⃣ 데이터베이스 생성
CREATE DATABASE DB명 DEFAULT CHARACTER SET UTF-8;
2️⃣ 사용자 계정 추가(아이디 생성)
CREATE USER 'id'@'%'IDENTIFIED BY 'pw';
% : 외부 접근 허용
이메일 : 내 아이디@도메인
@ : 구분자
mysql 계정 형식 : user id + host
HOST : 네트워크에 연결되어 있는 컴퓨터
3️⃣ 사용자에게 권한 부여하기
GRANT ALL PRIVILEGES ON DB명.* TO 'id'@'%';
4️⃣ 변경된 내용을 메모리에 반영하기
FLUSH PRIVILEGES;
5️⃣ 테이블 만들기
CREATE TABLE 테이블명 (
...
);
6️⃣ 생성한 테이블에 데이터를 삽입, 수정, 삭제
-- 삽입
INSERT INTO 테이블명 (컬럼명) VALUES (값);
-- 수정
UPDATE 테이블명 SET 컬럼='값' WHERE 컬럼='값';
-- 삭제
DELETE FROM 테이블명 WHERE 컬럼명='값';
-- 백업 테이블 만들기
CREATE TABLE 테이블명 (
SELECT 컬럼명 FROM 기존테이블명
);
➡️ INSERT 시 주의사항
테이블 이름 다음에 나오는 열 이름은 생략 가능. 단, 생략하려면 values 뒤에 나오는 값들과 순서, 개수가 테이블을 만들 때 지정한 값, 순서, 개수와 동일해야 한다.
➡️ UPDATE 시 주의사항
where절이 없다면 테이블의 모든 행의 값이 변경된다.
명확한 조건을 명시하지 않으면 테이블의 모든 이름이 똑같이 변경된다.
04. SQL 실습
SELECT
AS(alias)
WHERE
BETWEEN ~ AND
집합, IN()
문자열의 내용을 검색하는 LIKE 연산자
➡️ LIKE 심화
-- city 테이블에서 국가 코드가 K, U, A로 시작하는 NAME을 조회하시오.
SELECT DISTINCT
c.Name AS '나라이름',
c.CountryCode '코드'
FROM
city AS c
WHERE
c.CountryCode LIKE'K%'
OR
c.CountryCode LIKE'U%'
OR
c.CountryCode LIKE'A%';
DISTINCT
LIMIT
SELECT
*
FROM
city AS c
WHERE
c.CountryCode = "KOR"
ORDER BY
c.Population DESC
LIMIT 10;
ORDER BY
SELECT
c.Nams AS '나라이름',
c.Population AS '인구수'
FROM
city AS c
WHERE
c.CountryCode = "USA"
AND
c.Population > 2000000
ORDER BY
c.Population DESC;
정렬 랜덤
GROUP BY와 Aggregate function(집계함수)
➡️ 기본 구문
그룹으로 묶어주는 역할
속성 값이 같은 값끼리 그룹을 만들 수 있다.
HAVING으로 그룹 출력 조건식을 작성할 수 있다.
group by 사용했으면, 그룹 대상 컬럼을 select에 조회해줘야한다.
group by의 결과에 대한 조건을 제한하는 HAVING
집계 함수
-- 합계
SELECT c.CountryCode, SUM(c.Population)
FROM city AS c
WHERE c.CountryCode = "KOR"
GROUP BY c.CountryCode;
-- 최소, 최대
SELECT
MIN(c.Population),
MAX(c.Population)
FROM
city AS c;
-- count (테이블 행의 개수)
SELECT
COUNT(*)
FROM
city AS c
WHERE
c.CountryCode = "KOR";
-- 특정 컬럼의 개수를 세고 싶을 때
SELECT
COUNT(c.Name)
FROM
city AS c
WHERE
c.CountryCode = "KOR";
count에 특정 컬럼명을 작성하면 null 제외한다. count(*)은 null 포함
count와 distinct 함께 사용. (SELECT COUNT(DISTINCT 컬럼명)
CASE ~ WHEN ~ THEN ~ ELSE END
SELECT
컬럼명
CASE
WHEN 조건1 THEN 조건1만족시 출력
WHEN 조건2 THEN 조건2만족시 출력
ELSE 조건에 만족하지 않을 때 출력
END AS 컬럼명
FROM
테이블명;