본문 바로가기

💻 Deep Wide Programming/Mysql & Database

[생활코딩] MySQL 7강, 8.1강, 8.2강, 9강 (Table의 구조와 생성)

728x90
반응형

MySQL의 구조

데이터를 진행하는 최종적인 지점은 '표(Table)'다. 정보가 표에 저장이 된다. 표가 많아지면, 많아진 표들을 잘 정리정돈할 필요가 필요해진다. 파일에서 디렉토리 같은 것들이 필요해지는 것과 유사!

연관된 표들을 그룹핑해서, 연관되지 않은 표들과 분리하는 파일의 폴더 같은 개념이 있다. 이렇게 표들을 그룹핑 한것을 데이터베이스(Database)라고 한다. 의미가 좀 헷갈릴 수 있기 때문에 스키마라는 표현으로 쓴다. 

 

스키마(데이터베이스)= 연관된 데이터들을 그룹핑한 것
*스키마 안에는 표들이 있다~*

 

데이터 베이스를 이해하는 가장 기본적인 요소

데이터베이스 서버라는 프로그램인 mysql을 우리는 설치한 것이고, 그 프로그램이 갖고 있는 기능성을 이용해서 데이터

와 관련된 여러가지 작업을 하게 되는 것이다. 

 

 

데이터베이스 효용 1) 보안

데이터베이스는 자체적인 보안체계를 가지고 있다. 안전하게 데이터를 보관할 수 있다는 장점이 있다. 또, 권한기능이 있다. 예를들어, mysql에 여러 사람을 등록할 수 있는데, 사람마다 table/스키마 별  읽기/수정 등 부분적인 권한을 줄 수가 있다. 

 

root= 관리자를 의미하고, 모든 권한이 열려있다.
중요한 시스템이라는 별도의 사용자를 만들어서 그걸로 이용하다가, 중요한 사안에만 root를 들어가는 방식을 추천. 

 

mysql -uroot 로 데이터베이스 서버의 담장을 넘었다. 나는 Codeanywhere이기 때문에 비밀번호를 설정하지 않아서 그냥 -uroot로 입장했다. 아니 근데..그렇다면.......잠깐 전 포스팅에서 그렇게 비밀번호 찾으려고 난리 쳤는데 그냥 입장 가능했던 거 아닐까? 핳

혹시나 해서 cmd를 키고 들어갔더니 .. 아니나 다를까 비번 없이 DB서버 입장이 완료된거였다! 하하 

 

그냥 되는 건데 이것땜에 시간을 얼마나 쓴거니...

 


데이타베이스(스키마) 생성하기

뒤에 menagerie는 생성하고 싶은 데이터베이스의 이름을 의미한다! 그리고 데이터베이스가 잘 생성되었는지, 확인하기 위해 "how to show database list in mysql"라고 구글링을 해서 확인해보자. 

 

 

 

이제 저 데이터베이스(스키마) 안에 표를 만들건데, 이제 OPENTUTORIALS라는 이 스키마를 쓰겠다라고 알려줘야 한다. 그러면 이제부터 실행되는 명령이 해당 스키마 안에 있는 표들에게 해당되게 되는 거다. 이제 여기까지 표를 만들 수 있는 준비가 끝난 것이다!

 

지금까지 바깥 네모 상자 두 단계를 넘어왔다!

꿀팁! 윗쪽 화살표 누르면 앞줄에 썼던 코드 그대로 복붙이 된다!

SQL과 테이블의 구조

1) 본격적으로 SQL이라는 컴퓨터 언어를 배우게 될 것이다.

SQL= Stuctured Query Language

structure  = 관계형 데이터베이스는 표를 기반으로 정리정돈 = 구조화 되었다
Query = 데이터베이스에게 데이터를 넣어줘, 읽어줘, 수정해줘, 삭제해줘 등의 요청/질의한다라는 의미에서 쓰인다. 
Language = 데이터베이스가 이해할 수 있고, 우리도 이해할 수 있는 공통의 약속에 따라 데이터베이스 서버에게 요청을 해야 알아들을 수 있는 언어를 의미한다. 

관계형 데이터베이스라는 카테고리에 속하는 제품들이 공통적으로 DB서버를 사용할 때 이용하는 표준화가 되어있는 언어다. 따라서 다수의 DB 시스템이 SQL을 이용해서 움직이고 있다! 즉, SQL은 쉽고 중요한 컴퓨터 언어다. 

 

2) 표를 본격적으로 다뤄볼 것이다. 

table, 표

수평 _ row, record,행  (데이터의 하나하나를 의미, ex. 2행 = 데이터가 두 건 있다는 것)

수직 _ column, 열 (데이터의 구조, type을 의미)


SQL 테이블의 생성

이 스프레드시트의 표를 SQL로 만들어보는 것이다. 

 

코드는 심플하지만, 하나씩 살펴보자. 

 

create table in mysql cheat sheet

검색해서 파악해보자.

 

엑셀과 MySQL의 결정적인 차이가 또 있다.

엑셀 칸 안에는 어떤 종류의 정보든 넣어도 상관이 없지만, MySQL은 사용자가 데이터를 넣을 때 반드시 숫자로 들어와야 한다/날짜로 들어와야 한다 등 강력히 규제& 해당 데이터type이 아니면 error를 송출할 수 있다는 것이다.

 

https://dev.mysql.com/doc/refman/8.0/en/string-type-syntax.html

 

MySQL :: MySQL 8.0 Reference Manual :: 11.3.1 String Data Type Syntax

11.3.1 String Data Type Syntax The string data types are CHAR, VARCHAR, BINARY, VARBINARY, BLOB, TEXT, ENUM, and SET. In some cases, MySQL may change a string column to a type different from that given in a CREATE TABLE or ALTER TABLE statement. See Secti

dev.mysql.com

계속 구글링하면서 익숙해지자!

728x90
반응형