Database mysql
데이터베이스란 쉽게 설명하면 데이터를 모아놓는 곳입니다.
파일이나 엑셀, 메모 등등 데이터를 넣을 수 있는 곳은 많지만 데이터베이스를 통해 데이터를 쉽고 빠르게 읽고 쓰고 지우고 수정할 수 있게 되었습니다.
그중에서도 관계형 데이터베이스 중의 하나인 mysql에 대해서 배워볼 것입니다.
(관계형 데이터베이스의 의미는 추후에 살펴보도록 하겠습니다.)
그럼 이제 데이터베이스의 기본을 먼저 알아보겠습니다.
용어 정리
연관된것데이터끼리 묶어놓은 것을 표라고 하면 표들을 그룹핑한 것을 데이터베이스(스키마)라 합니다.
일종의 폴더라 생각하면 되요.
스키마가 많아지고 그것을 저장하는 것은 데이터베이스 서버라 부름
mysql을 설치한 것은 데이터베이스 서버를 설치한 것이라고 생각하면 됩니다.
데이터베이스 서버 -> 데이터베이스(스키마) ->표

기본 문법
Database 생성 -> CREATE DATABASE name;
삭제 -> DROP DATABASE name;
확인 -> SHOW DATABASES;
database를 사용하겠다 -> USE name; (지금부터 내가 하는 명령은 name이라는 스키마에 있는 표를 대상으로 실행하라)
SHOW tables -> 해당 database에 있는 table이 뭐가 있는지 알 수 있음.
DESC 테이블명 -> 테이블의 구조가 나옴
열 삽입
CREATE TABLE 테이블명 (
컬럼이름 datatype(length) NOT NULL AUTO_INCREMENT,
컬럼이름2 ....
PRIMARY KEY(칼럼 이름 1)
);
-> 데이터 타입을 설정해서 입력되는 값을 규제할 수 있음
-> datatype ex) INT(11) 정수로 검색할 때 얼마까지만 노출하여라 보통 11을 씀
-> datatype ex) VARCHAR(100) : 100글자만 입력하게 하고 싶은데 1000글자 입력해버리면 100글자에서 잘라버리는 것
(VARCHAR = variable character)
-> NOT NULL : 값이 없는 것을 허용하지 않겠다.
-> AUTO_INCREMENT : 이 칼럼은 값이 추가될 때마다 자동으로 1씩 증가한다
-> PRIMARY KEY 이것이 main calumn이라 설정. 중복 방지
행 삽입
INSERT INTO 테이블명 (c1, c2, c3….) VALUES(r1, r2, r3);-> (string인 경우 ‘’ 안에, column은 ‘’ 없어도 됨)
Ex) INSERT INTO author (id, name, profile) VALUES(‘eoing’, ‘developer’)
읽기
SHOW tables -> 해당 database에 있는 table이 뭔지 알 수 있음.(USE name으로 데이터베이스를 선택한 후 가능)
DESC 테이블명 -> 테이블의 구조가 나옴(열을 볼 수 있다)
SELECT * FROM 테이블명; -> 테이블명에 있는 모든 행 보여줘
SELECT c1, c2, c3 FROM 테이블명; -> c1,c2,c3 열에 해당하는 행만 보여줘
SELECT * FROM topic WHERE profile='developer' ORDER BY id DESC LIMIT 2; -> topic중에 profile의 값이 developer인 것을 보여주고 id값을 내림차순으로 해서 2개만 보여줘
수정
UPDATE 테이블명 SET 칼럼명=밸류[, 칼럼명=밸류] WHERE 칼럼명=밸류; -> where 빠졌다가 큰일 나는 경우 생길 수 있음
->> WHERE 전에 , (쉼표) 꼭 없어야 함!! (저는 이것 때문에 계속 오류 났어서 찾아내느라 애를 좀 먹었어요....)
삭제
DELETE FROM 테이블명 WHERE 칼럼명=밸류; -> where 빠졌다가 인생이 바뀔 수 있습니다..!!!!
결합
mysql> SELECT * FROM topic LEFT JOIN author ON topic.author_id = author.id;
topic과 author이란 table을 topic_id와 author.id가 같다는 조건으로 결합하라!

MySQL 비밀번호 변경
alter user ‘root’@‘localhost’ identified with mysql_native_password by ‘{new password}’;
- 이 노트는 생활코딩의 유튜브 강의를 통해 배운 내용을 정리한 것입니다.
- 초보 개발자라 부족한 점이 아직 많습니다. 다른 의견이 있으시다면 자유롭게 남겨주세요.
- 처음 접하시는 분께는 다소 어려울 수 있지만 어느 정도 개념이 잡히신 분께 도움이 되었으면 하는 바람에서 작성된 글입니다.