MySQL 튜토리얼_DAY 1
본문 바로가기
Python_basic

MySQL 튜토리얼_DAY 1

by Migos 2020. 9. 14.
반응형

MySQL 공부를 시작하고, 기록한다.

 

DAY 1

선행학습

MySQL 설치 - 구글에 MySQL 홈페이지들어가서 설치(모르면 구글링)

PoPSQL 설치 - IDE환경인데 구글에 PopSQL 치고 다운받음.

 

모르면 유투브영상 참고 www.youtube.com/watch?v=HXV3zeQKqGY&t=8273s

⭐️ Contents ⭐

⌨️ (0:00) Introduction

⌨️ (2:36) What is a Database?

⌨️ (23:10) Tables & Keys

⌨️ (43:31) SQL Basics

⌨️ (52:26) MySQL Windows Installation

⌨️ (1:01:59) MySQL Mac Installation

⌨️ (1:15:49) Creating Tables

⌨️ (1:31:05) Inserting Data

⌨️ (1:38:17) Constraints

⌨️ (1:48:11) Update & Delete

⌨️ (1:56:11) Basic Queries

⌨️ (2:08:37) Company Database Intro

⌨️ (2:14:05) Creating Company Database

⌨️ (2:30:27 ) More Basic Queries

⌨️ (2:26:24) Functions

⌨️ (2:45:13) Wildcards

⌨️ (2:53:53) Union

⌨️ (3:01:36) Joins

⌨️ (3:11:49) Nested Queries

⌨️ (3:21:52) On Delete

⌨️ (3:30:05) Triggers

⌨️ (3:42:12) ER Diagrams Intro

⌨️ (3:55:53) Designing an ER Diagram

⌨️ (4:08:34) Converting ER Diagrams to Schemas

 

 

student_id 라는 컬럼(줄)을 생성(단, INT 정수 ex.1,2,3 를 입력으로 받는다)

다음 컬럼은 name 으로 학생 이름을 입력한다(단, 글자수는 20자까지)

그 다음 컬럼은 major 로 학생의 전공을 입력한다(단, 글자수는 20자까지)

 

PRIMARY KEY 란? TAble에서 고유한 값을 갖는 컬럼을 의미한다. 예를들면 student_id는 1,2,3,4로 중복없이 각각의 줄이 고유한 번호를 부여받기 때문에 혼동의 여지가 없다. 군대에서 101번 보라매! 하면 한명만 외치는 것과 같은 이치.

따라서, PRIMARY KEY를 지정해줘야 나중에 지우고 추가할 때 중복 없이 정확한 위치를 찾을 수 있다.

 

SQL언어는 영어와 매우 흡사하다. SELECT * 여기서 *은 모든 데이터를 의미한다. 

SELECT 모든 데이터 FROM Student  == student 테이블에 있는 모든 데이터를 선택(가져와!) 

 

INSERT INTO student VALUES(2, 'Kate', 'Sociology') == student테이블에 id는 2, name은 Kate, major는 sociology를 INSERT 추가해!!

 

예제)

CREATE TABLE student (

    student_id INT,

    name VARCHAR(20),

    major VARCHAR(20),

    PRIMARY KEY(student_id)

);




SELECT * FROM student;



INSERT INTO student VALUES(2, 'Kate', 'Sociology');

 

결과)

DAY 2

[1]데이터 초기화

DROP TABLE student; : student에 있는 모든 정보를 초기화.

 

[2]빈공간 허용, 중복 허용

NOT NULL : 해당 정보가 빈공간으로 허용하지 않음(무조건 값이 있어야 함).

UNIQUE : 중복을 허용하지 않음.

++

CREATE TABLE student (

    student_id INT,

    name VARCHAR(20) NOT NULL, 

    major VARCHAR(20) UNIQUE,

    PRIMARY KEY(student_id)

);

++

 

질문 : 그럼 아래 BOLD코드는 입력이 될 것인가?? 답 : No! 그 이유를 잘 생각해보자.

해설 : 위에코드에서 NOT NULL설정을 했기 때문에 NULL값을 갖는것은 불가능하다.

UNIQUE 설정을 해줬기 때문에 major는 중복이 안된다. 1번째줄 Biology값을 갖고있기 때문에 4번 Jack은 Biology 허용안됌.

++

SELECT * FROM student;



INSERT INTO student VALUES(1, 'Jack', 'Biology');

INSERT INTO student VALUES(2, 'Kate', 'Sociology');

INSERT INTO student VALUES(3, NULL, 'Sociology');

INSERT INTO student VALUES(4, 'Jack','Biology');

++

 

[3] 기본설정값 지정 DEFAULT 'undecided'

major 에 NULL이 아니라 undecided 를 기본으로 지정하고싶다면?

아래와 같이 TABLE student에 넣어주고, 

INSERT INTO student(student_id, nameVALUES(1'Jack');

를 실행하면 major에 undecided 가 입력된다.

DROP TABLE student; 



CREATE TABLE student (

    student_id INT,

    name VARCHAR(20), 

    major VARCHAR(20) DEFAULT 'undecided',

    PRIMARY KEY(student_id)

);




SELECT * FROM student;



INSERT INTO student(student_id, name) VALUES(1, 'Jack');

INSERT INTO student VALUES(2, 'Kate', 'Sociology');

INSERT INTO student VALUES(3, NULL, 'Sociology');

INSERT INTO student VALUES(4, 'Jack','Biology');

INSERT INTO student(student_id, name) VALUES(3, 'Claire');

[4] 값을 순서대로 입력 AUTO_INCREMENT ex. student_id 1, 2, 3, 4 ...

AUTO_INCREMENT를 사용하면 내가 값을 입력하지 않아도 자동으로 넘버가 부여된다.

DROP TABLE 줄을 선택하고 Run 해주고 (모든 값 초기화)

CREATE TABLE 줄을 선택하고 Run 해주고 (student table 생성)

INSERT INTO student 줄 선택하고 Run 해주면 아래와 같이 테이블이 생성된다.

SELECT * FROM 줄을 선택하고 Run 해서 테이블을 살펴보자.

DROP TABLE student; 

CREATE TABLE student (
    student_id INT AUTO_INCREMENT,
    name VARCHAR(20), 
    major VARCHAR(20),
    PRIMARY KEY(student_id)
);


SELECT * FROM student;

INSERT INTO student (name, major) VALUES('Kate', 'Sociology');
INSERT INTO student (name, major) VALUES('Jack', 'Biology');

 

[5] Row, Column 값을 마음대로 수정(UPDATE) 해보자.

가장 쉬운 방법은 내가 변경하고싶은 생각대로 한글로 적어보는 것이다.

예시) 나는 major를 bio로 변경하고싶고, 현재 Biology라고 되어있는 값을 변경해볼래.

 

첫째, UPDATE student 를 선언해주고,

둘째, SET major = 'Bio' <= 내가 수정하고 싶은 값으로 지정해주고,

셋째, WHERE major = 'Biology' <= 어디를 수정할껀지(WHERE) = '무엇으로?' 

SELECT * FROM student;

UPDATE student
SET major = 'Bio'
WHERE major = 'Biology';

 

[변경 후 TABLE]

 

그러면, 응용으로 내가 원하는 특정 한 줄만 변경하고 싶다면??

오직 1개의 값(고유값)을 갖는 column을 택해서 업데이트 해주면 된다.

student_id 값이 PRIMARY KEY로 고유값을 갖기 때문에 아래 코드와 같이 변경하면, 4번째 줄 전공만 내가 원하는대로 수정가능하다.

 

예시) 나는 major를 Comp Sci로 변경하고싶고, 현재 student_id가 4로 되어있는 값을 변경해볼래.

SELECT * FROM student;

UPDATE student
SET major = 'Comp Sci'
WHERE student_id = 4;

Bio -> Comp Sci로 변경

 

더 복잡한 업데이트를 해보자.

예시) 나는 name를 Tom으로 변경하고싶고, major는 undecided로 설정할래. 그리고 현재 student_id가 1로 되어있는 줄에다가 값을 반영/변경해볼래.

SELECT * FROM student;

UPDATE student
SET name = 'Tom', major = 'undecided'
WHERE student_id = 1;

WHERE 줄을 삭제하면, SET 줄의 모든 값이 한번에 변경된다. 참고.

반응형

댓글