MySQL - 기초(1)

2020. 7. 21. 17:34MySQL/수업내용

a. 개발 환경 셋팅

 1. mySQL 설치

  - https://dev.mysql.com/downloads/installer/

  - mySQL Server와 mySQL Workbench 설치

 2. 환경변수 설정

  - 내 컴퓨터 우클릭 => 속성 => 시스템 => 고급 시스템 설정

  - 고급 탭의 환경 변수 클릭 => 사용자 변수의 path를 클릭 후 편집 버튼 클릭

  - 새로 만들기 버튼 클릭 => MySQL Server 설치 경로 하위에 있는 bin 폴더 주소를 넣고 확인

 

b. 개념

 1. mySQL에서 Schema와 Database는 같은 개념이다.

 2. Database 명령어

  - SHOW databases; : 현재 모든 데이터베이스를 확인한다.

  - CREATE SCHEMA 데이터베이스명; : 해당 이름으로 데이터베이스를 생성한다.

  - DROP DATABASE 데이터베이스명; : 해당 이름의 데이터베이스를 삭제한다.

  - FLUSH PRIVILEGES; : 여러 작업 후 변경사항을 반영하기 위해 사용한다.

 3. 세로축 : 칼럼(Column), 가로축 : 로우 (Row)

 4. Datatype에서 INT(11) 처럼 괄호 안에 숫자가 채워지는것은 ZeroFill(이하 ZF) 속성이 체크되었을 때만 의미가 있다. 11자리 이하인 숫자가 들어갔을 경우, 왼쪽부터 차례대로 0을 채워넣어서 11자리를 맞추겠다라는 의미이다. 기본값이 11자리인 이유는 INT 자료형 크기가 최대 11자리까지이기 때문이다.

 5. CHAR(50)이나 VARCHAR(50) 처럼 문자열 데이터타입에서 쓰이는 괄호의 경우 최대 글자수를 나타낸다. 바이트 기준이므로 한글 기준 한 글자당 2Bytes를 차지하는게 일반적이나, 유니코드 타입에 따라 3Bytes를 차지하는 경우도 있다고 함

 6. 자주 쓰는 테이블 요소값에 대한 각각의 옵션별 기능

  a. PK : Primary Key. 주로 ID값에 체크를 해서 Row값들의 고유 식별자로 사용한다.

  b. NN : Not Null. 해당 요소의 값을 비워두면 Column값들의 입력이 불가능하다.

  c. ZF : ZeroFill

  d. AI : Auto Increament. 자동으로 숫자를 1씩 증가시켜준다. 중간에 지워지는 값이 있다 하더라도 채워넣진 않는다.

  e. Default/Expression. 부가 기능 함수를 넣을 수 있음. 예를 들어 DATETIME 타입의 요소에 now() 값을 넣어두면 값이들어올 때마다 그 순간의 시각을 저장한다.

 7. Foreign Key

  - 다른 테이블의 기본 키를 저장하는 컬럼이다.

  - On Update와 On Delete를 casecade 속성으로 변경 할 경우, 내부 데이터가 수정되거나 삭제되면 연동되어있는 다른 데이터 또한 같이 수정하거나 삭제한다. 국지적 수정/삭제 에 따른 데이터 불일치 현상을 방지할 수 있다. 

 

c. 기초 문법 CRUD

 - Create, Read, Update, Delete의 두문자어

 

 1. Read : SELECT * FROM 테이블명

  - 테이블의 내부 데이터를 본다.

  - 여기서 * 는 아스테리스크(Asterisk). All의 의미를 가지고 있으므로 해당 테이블의 모든 요소(정보)를 보겠다는 뜻

  - 특정 요소(정보)만 보고 싶다면

    SELECT 요소 FROM 테이블

    식으로 쓰면 된다.

  - 끝에 WHERE을 붙이면 조건을 걸어 해당 조건에 부합하는 요소만 가져올 수 있다.

 

  - ex)

 

 2. INNER JOIN 테이블명 ON 조건

  - SELECT FROM 뒤에 쓰이는 테이블과의 교집합인 데이터를 구할 때 사용된다.

  - ON 은 WHERE 절에서 사용할 수 있는 모든 조건을 사용할 수 있다.

  - ex) 해석은 밑에 추가

  - 가져오고자 하는 요소 : 1) members 테이블의 membername 요소, 2) purchases 테이블의 created_at 요소, 3) goods 테이블의 goodsname 요소

  - 비교 기준 테이블 : purchases

  - 비교 대상 테이블 : members, goods

  - 비교 조건 : purchases.memberid = members.id  // purchases.goodsid = goods.id;

  - 

 

 3. DESC 테이블명

  - 해당 테이블의 상태값을 디버깅 할 수 있다.

 

 4. Create : INSERT INTO (테이블명) VALUE (값)

  - 해당 테이블에 값을 넣어줄 수 있다.

'MySQL > 수업내용' 카테고리의 다른 글

MySQL - 기초(2)  (0) 2020.07.23