DATABASE2

soyeon Hyun·2022년 1월 28일
0

DATABASE1&2

목록 보기
2/2

1. 수업소개

처음에는 data를 file로 저장. 동적이고 편리하며 안전한 DATABASE 출현.
출처 : 생활코딩 DB2-MySQL

  • RDBMS
    DATA를 table로 정리가 가능하고 편리하고 안전하다.

2. 데이터베이스의 목적

  • DATABASE vs Spreadsheet
    공통점 : table로 표현이 가능
    다른점
    Spreadsheet의 경우 : 클릭으로 동작.
    DATABASE의 경우 :SQL이라는 언어로 동작 = 코드를 통해 제어가능.

CRUD시 data가 DATABASE레 저장됨을 알자.

3. MySQL-3.0.MySQL설치

나의 경우 bitnami WAMP를 설치했기 때문에 설치과정 없이 시작.
window + R누르고 cmd입력 cd 'mysql파일 경로' 적고 엔터 엔터
mysql -uroot -p 입력후 패스워드 입력

빨간색 부분이 내가 쳐야하는 부분 저렇게 하면 아래 password를 치고 들어가면 된다.

3.1. MySQL 설치 -window

위와 동일

3.4 (이것은 컴퓨터에 설치하지 않고 온라인 서비스를 이용하는 방법)

4. MySQL의 구조

MySQL(과 다른 여러 DB)는 3개의 커다란 구조로 구분이 가능하다.
출처: 생활코딩 DB2 -MySQL
data를 정리한 여러 table이 존재하고 이 각각의 table들을 관계가 있는 것끼리 Grouping해준 것을 database=Schema(스키마)라부른다. 그리고 여러 스키마들은 database sever안에 속한다.

MySQL 설치 = DATABASE SERVER 설치

5. 서버접속

DB의 이점 : 보안, 권한 등록 (차등권한 부여)

bin./ mysql -uroot -p (Enter)
uroot : u= user / root = 모든권한을 가진 관리자
p : password를 치겠다는 의미.
Enter를누르면 password이벽창이 나타난다.
맞는 password를 적고 서버에 접속하고 DATABASE에접근이 가능해졌다.

5. MySQL 서버접속

중복내용

6. 스키마의 사용

Schema(스키마)=DATABASE의 또 다른말
mysql create database 검색 -> mysql CREATE DATABASE 이름;
mysql> DROP DATABASE 이름;

명령어가 성공적으로 처리되었을 때 : Query OK
이전에 명령어 replay = 위쪽방향키

  • DB생성 확인
    how to show database list in mysql.
    -> SHOW {DB명 or Schema}
    mysql> SHOW DATABASES; 입력시 만들어진 Database명이 출력.
  • DB사용시
    mysql> USE opnetutorials; 입력하면 이제 내리는 명령이 opentutorials에 대한 명령이라는 의미를 가진다.

여기까지 Database를 만드는 과정, 이제 table을 만들어야 한다.

7. SQL과 테이블의 구조

Structured 구조화된
Query 질의표현 (~해줘)
Language 언어 (약속)

SQL
-> 어떤 컴퓨터 언어보다 쉬움
-> RDBMS 제어의 핵심 표준 언어, 아주 중요함

column - data의 구조
row - 하나하나의 data (의미)

8.1. 테이블의 생성

table을 만들고 싶을 때 'create table in mysql' 검색
원하는 내용이 잘 나오지 않는다면 뒤에 'cheat sheet' 추가후 검색
남이 먼저 적어 놓은것을 보고 따라 가는 것이 현명하다.

현재까지 작업의 순서 : DB접속 - Schema선택 - table생성

table의 column의 data type은 강하게 규제가 가능하다.
id 값 강제는 나중에 값을 불러나온데 중요함.

8.2. 테이블의 생성

PRIMARY KEY의 장점
1. 중복을 방지한다.
2. 성능면 (이건 아직 설명하지 않았다.)

SQL에서 문법 구문이 틀리더라도 에러 문구를 복사해서 검색하거나 없다면 질의 사이트에 올려서 해결하자.

9. CRUD

우리는 CRUD중에서도 CR을 가장 중요하게 볼것이다.
UD를 안하는 곳 도 있기 때문에.

10. INSERT

먼저 Create에 들거가기전에 column의 순서나 말이 헷갈린다면
DESC topic(=table명);을 적어서 아래처럼 테이블을 먼저 확인하는 것이 좋다.

값을 table에 넣을 때는

SELECT INTO topic(=table명) (c1,c2,c3,c4) VALUES ('v1','v2','v3','v4');

이렇게 입력한다. (c=column/ v=values)

table에 값을 입력하고 나면 값이 잘 들어갔는지 확인할 때

SELECT FROM topic(=table명);

으로 확인한다. 아래 사진에도 나와있다.

11. SELECT


SELECT 보고싶은column이름 FROM topic; -> 보고싶은 column만 표시
여기서 뒤에WHERE문을 추가 -> 더 조건을 걸어서 표시
또 뒤에 ORDER c1='조건' DESC를 추가 -> 조건에 맞는 값을 기준으로 큰수부터 표시한다.
뒤에 lLIMIT id추가시 -> 표시되는 값을 제한이 가능하다.

수많은 data를 가진채로 SELECT * FROM topic;을 하면 큰일이 난다.

DATABASE를 잘 운용한다 = 필요한 DATA를 SELECT 할 수 있다.

12. UPDATE

table수정방법
UPDATE table명 SET c1=v1, WHERE 조건
으로 적어준다. 아니면 찾아서 사용하기.

WHERE문을 빠트리면 재앙이다.
모든 값이 그 data로 바뀌기 때문에

13.DELETE

table 삭제방법
DELETE FROM table명 WHERE 조건;
WHERE문을 빼먹으면 절대 안됨. 인생이 바뀔 수 있음

14. 수업의 정상

공부를 함에 있어 배우는 것의 본질과 혁신을 나누어 생각하도록 한다.
innovation(혁신) : Relational / essence(본질) : Database
우리가 배우는 것은 이렇게 나눠져 있다고 볼 수 있다.

여기부터는 배우는 내용이 어려워 질 것.

15. 관계형데이터베이스의 필요성

왜 RDBMS가 필요한가?
없을 때 문제점 : data를 다른 table과 연관지어 보기 힘들다.
있을 때 할 수 있는 일 : data를 다른 table과 관련지어 볼 수 있다.

"table의 data가 중복된다는 것은 개선할 것이 있다의 의미를 가진다."

중복되는 data를 따로 모아 table을 만들어 고유 id값을 부여하고 그 값을 다른 table에 적으면 data의 수정이 편리하고 같은 명의 다른 data도 구분이 가능하다.

TRADE OFF: 장점이 있으면 단점이 있듯이 table을 쪼개서 만드는 방법은 한눈에 보기 힘들다. 그러나 MySQL을 사용하면 이런 문제도 해결이 가능하다.

아래는 위의 두 table의 Relational을 이용해 table하나에 모두 표현했다.
앞으로 이런 걸 만드는 방법을 공부할 거임.

16. 테이블 분리하기

앞에 나온 방법을 사용하기 위해서는 우선 table을 분리하는 작업부터 필요하다.
여긴 실습이 95%이기 때문에 영상을 볼 것.

17. JOIN

먼저 2개의 table을 합쳐서 표현하고

이 둘의 중복되는 부분외에 다른곳만 표현될 수 있게 만들어준다.

보이는 것을 바꾸고 싶다면 이렇게 할 수 있다.

중복을 제거한다는 것은 정말 중요하고 많은 기술이 이것을 위해 존재한다.

18. 인터넷과 데이버베이스

Database는 기본적으로 인터넷에서 사용하기 위해 만들어진 프로그램.
이 둘이 함께 동작할 때 효과는 폭발적.
WEB SERVER <=> WEB CLIENT 이듯
DATABASE SERVER <=> DATABASE CLIENT 로 나뉜다.

DATABASE SERVER를 직접 사용한 것 같지만,
DATABASE SERVER를 쓰기 위해서는 DATABASE CLIENT를 통해서만 우리는 조작할 수 있다.
우리가 지금까지 사용한 DATABASE CLIENT는 MySQL monitor였다.
우리는 이제 2개의 DATABASE CLIENT를 사용해서 DATABASE SERVER를 사용할 것이다.
-MySQL monitor 와 MySQL Workbench 를 이용할 것이다.

19. MySQL Client

20. MySQL Workbench

21. 수업을 마치며

profile
돈 필요해요

0개의 댓글