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, name) VALUES(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';
그러면, 응용으로 내가 원하는 특정 한 줄만 변경하고 싶다면??
오직 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;
더 복잡한 업데이트를 해보자.
예시) 나는 name를 Tom으로 변경하고싶고, major는 undecided로 설정할래. 그리고 현재 student_id가 1로 되어있는 줄에다가 값을 반영/변경해볼래.
SELECT * FROM student;
UPDATE student
SET name = 'Tom', major = 'undecided'
WHERE student_id = 1;
WHERE 줄을 삭제하면, SET 줄의 모든 값이 한번에 변경된다. 참고.
'Python_basic' 카테고리의 다른 글
MySQL 튜토리얼_DAY 2 (0) | 2020.09.17 |
---|---|
Unzip python 파이썬으로 압축파일 푸는 방법 (0) | 2020.04.07 |
!wget 으로 구글드라이브에서 파일 다운받기! (2) | 2020.03.13 |
파이썬 여러 개의 그래프 그리기 (matplotlib) (0) | 2020.03.10 |
티스토리 파이썬 코드 예쁘게 올리는 방법 (0) | 2020.03.06 |
댓글