[myspl 강좌] 1강
데이터베이스 기초
모든 데이터베이스는 input과 output을 가진다. input은 Create/Update/Delete로 나눌 수 있고 Output은 Read로 이해할 수 있다.
CRUD
- Create
- Read
- Upload
- Delete
데이터를 관리할 때 중요한 4가지 기능들인데 DB는 이러한 일들을 상황에 맞게 자동으로 처리하는 역할을 해준다. file system의 발전 방향은 file -> Spread Sheet(E.g. excel) -> Data Base이다.
Database Ranking
- Oracle, MySQL, Microsoft SQL Server는 Relational DBMS
- MongoDB는 Document store
- Redis는 Key-value Store
- Elasticsearch는 search engine
- Cassandra는 Wide column store
binami WAMP를 통해서 mysql 설치
설치 후 bitnami manaer를 통해서 MySQL과 Apache Web Server를 제어할 수 있다.
cmd에서 C:\Bitnami\wampstack-7.4.7-0\mysql\bin\mysqld.exe
를 실행해야 한다.
- $ cd C:\Bitnami\wampstack-7.4.7-0\mysql\bin
- $ mysql -uroot -p //mysql -uroot -p{MY_PASSWORD}를 적어도 되지만 보안상의 이유로 -p까지 친 다음에 enter
- password 입력
MYSQL 구조
- 가장 바깥 : Database Server
- 관련된 Table 들의 집합 : Database or Schema
- 관련된 정보들의 집합 : Table
MYSQL CRUD 명령어
기능 | 명령어 |
---|---|
DATABASE 생성 | CREATE DATABASE opentutorials; |
DATABASE 삭제 | DROP DATABASE opentutorials; |
DATABASE 선택 | USE opentutorials; |
접속 계정 비밀번호 변경 | SET PASSWORD = PASSWORD(‘{new password}’); |
계정 생성 | 1. create user spring5@localhost; |
계정 비밀번호 추가 | 1. mysql -uroot -p 2. use mysql; 3. alter user spring5@localhost identified with mysql_native_password by ‘tjrdl1226’; |
테이블 생성 | CREATE TABLE topic( id INT(11) NOT NULL AUTO_INCREMENT, title VARCHAR(100) NOT NULL, discription TEXT NULL, created DATETIME NOT NULL, author VARCHAR(3) NULL, profile VARCHAR(100) NULL, PRIMARY KEY(id)); |
테이블 이름 변경 | RENAME TABLE topic TO topic_backup; |
테이블 목록 출력 | SHOW tables; |
테이블 SCHEMA 출력 | DESC topic; |
row 저장 | INSERT INTO topic (title,description,created,author,profile) VALUES (‘PostgreSQL’, ‘PostgreSQL is …’, NOW(), ‘abc’, ‘developer’); |
row 검색 | SELECT id,title,created,author FROM topic WHERE author=’abc’ ORDER BY id DESC; |
row 검색 | SELECT id,title,created,author FROM topic WHERE author=’abc’ ORDER BY id DESC LIMIT 2; |
row 수정 | UPDATE topic SET author=’aaa’, profile=’designer’ WHERE id = 1; |
row 삭제 | DELETE FROM topic WHERE id = 4; |
테이블 구조와 데이터 복사 | 1. CREATE TABLE IF NOT EXISTS 복사 테이블 SELECT * FROM 원본 테이블 ;2. ALTER TABLE topic ADD PRIMARY KEY(id); 3.ALTER TABLE topic MODIFY COLUMN id INT auto_increment; 4. (2.~3.을 한 번에) ALTER TABLE topic MODIFY id INT auto_increment PRIMARY KEY; |
column 이름 변경 | ALTER TABLE topic CHANGE author author_id INT; |
row 갯수 출력 | SELECT COUNT(*) as cnt FROM totpic; //갯수를 나타내는 INT return |
Mysql Client or Windows
free client는 MySQL Workbench를 사용합니다.
- $ ./mysql -uroot -p -h{database server의 ip주소}
- mysql의 cli client인 mysql monitor 실행
Mysql workbench에서는 GUI로 명령어를 수행할 수 있도록 해준다.
SQL JOIN
JOIN이 어려울 때는 생활코딩의 JOIN 강의를 보면된다. 강의링크