파일로 실행하는 SQL: mysql CLI 명령어
이해하기 쉽고, 장황하지 않은 자료를 기반으로 강의를 진행합니다.
잔재미코딩 소식 공유
좀더 제약없이, IT 컨텐츠를 공유하고자, 자체 온라인 강의 사이트와 유투브 채널을
오픈하였습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
응원해주시면, 곧 좋은 컨텐츠를 만들어서 공유하겠습니다
● 잔재미코딩 유투브 오픈
[구독해보기]
2. 파일로 실행하는 SQL: mysql CLI 명령어¶
- mysql 데몬 띄우기
- 데몬(daemon)은 사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램을 말함
- 백그라운드, 포그라운드 이해하기
- 포그라운드: 사용자가 입력한 명령이 실행되어 결과가 출력될때 까지 기다리는 프로그램
- 백그라운드:
- 포그라운드 작업은 명령을 한 번에 하나씩 실행하므로 동시에 여러 개의 프로세스를 실행할 수 없음
- 작업 제어가 제공하는 백그라운드 기능을 사용하면 앞에서 프로세스가 실행되는 동안 뒤에서 다른 프로세스가 실행될 수 있으므로 한 터미널에서 여러 개의 프로세스를 동시에 실행 가능
- 프로그램을 뒤에서 실행되도록 하는 방식
- mysql 데몬도 띄워놓아야 mysql 접속이 가능함
- sudo service mysql start
shell> cd /root/DataScience
shell> mysql -u root -p
shell> SOURCE students.sql
shell> show tables;
shell> select * from students;
2.1. 파일로 실행하는 SQL : (Workbench) 03_data\student\student_schema.sql¶
- DATABASE 생성시도 아예 인코딩을 설정해주세요
2.1.1 데이터베이스/테이블 만들기 ( 03_data\student\student_schema.sql 코드 이해하기)¶
- DATABASE 만들때도 인코딩을 셋팅해주세요
- DEFAULT CHARSET=utf8 COLLATE=utf8_bin
- 문자셋(Character set)은 각 문자가 컴퓨터에 저장될 때 어떠한 '코드'로 저장될지에 대한 규칙의 집합을 의미
- 콜레이션(Collation)은 특정 문자 셋에 의해 데이터베이스에 저장된 값들을 비교 검색하거나 정렬 등의 작업을 위해 문자들을 서로 '비교' 할때 사용하는 규칙들의 집합을 의미
In [ ]:
USE student_mgmt;
DROP TABLE IF EXISTS students;
CREATE TABLE students (
id TINYINT NOT NULL AUTO_INCREMENT,
name VARCHAR(10) NOT NULL,
gender ENUM('man','woman') NOT NULL,
birth DATE NOT NULL,
english TINYINT NOT NULL,
math TINYINT NOT NULL,
korean TINYINT NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
본 자료와 같이 IT 기술을 잘 정리하여, 온라인 강의로 제공하고 있습니다
체계적으로 전문가 레벨까지 익힐 수 있도록 온라인 강의 로드맵을 제공합니다
- ENGINE=InnoDB : 스토리지 엔진이 여러 가지 있습니다. 이 중에서 InnoDB로 스토리지 엔진을 정해주는 명령입니다. 이 명령을 안해줘도 최근 Mysql 버전은 디폴트로 엔진을 InnoDB를 쓴다고 합니다.
- 테이블을 만들때도 DEFAULT CHARSET=utf8 인코딩을 해주세요
2.1.2 데이터 입력 : 03_data\student\student_schema.sql 코드 이해하기¶
In [ ]:
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('dave', 'man', '1983-07-16', 90, 80, 71);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('minsun', 'woman', '1982-10-16', 30, 88, 60);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('david', 'man', '1982-12-10', 78, 77, 30);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('jade', 'man', '1979-11-1', 45, 66, 20);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('jane', 'man', '1990-11-12', 65, 32, 90);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('wage', 'woman', '1982-1-13', 76, 30, 80);
INSERT INTO students (name, gender, birth, english, math, korean) VALUES ('tina', 'woman', '1982-12-3', 87, 62, 71);
2.1.3 students.sql 파일로 SQL 실행하기¶
Mysql Workbench
- File -> Open SQL Script -> 03_data/sakila/students.sql
Mysql CLI 명령으로는 students.sql 복사 후, mysql 실행해서 SOURCE 명령으로 sql 실행