MySQL 구조

SQL은 최종적으로는 table가 완성된다.
image

댓글, 게시판 등등 다양한 table가 완성된다.
image

연관된 table를 모은 것이 database = schema이다.
image

연관된 table을 모은 schema를, 모은 것database server이다.


MySQL server 접속

  • 운영체제 ----------------------------------------------------> 폴더 를 막 다루는 것과 다르게,
    MySQL server -- 보안(자체 보안기능), 권한(여러 사용자 등록) --> schema, table을 읽기/쓰기/수정/삭제를 할 수 있다.
    즉, MySQL의 효용은 자체적으로  1) 보안 2) 권한을 가지고 있다.
    image


  • 접속 방법 : bin폴더까지 간 다음 아래 명령어를 친다.
    root : 모든 권한을 가짐. 중요한 시스템이라면 별도의 사용자를 등록해야한다.
    C:\Bitnami\wampstack-7.1.25-0\mysql\bin>mysql -uroot -p


Schema(database)의 사용

  • Database 생성
    -  sql문에서 맨 마지막에는 ;(세미콜론)을 꼭 달아야한다.
    mysql> CREATE DATABASE opentutorials;
    Query OK, 1 row affected (0.00 sec)

  • Database 삭제
    mysql> DROP DATABASE opentutorials;
    Query OK, 0 rows affected (0.01 sec)

  • Database 확인
    mysql> SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | opentutorials      |
    | performance_schema |
    | sys                |
    +--------------------+
    5 rows in set (0.00 sec)

  • Database 사용
    mysql> USE opentutorials;
    Database changed

table을 다루기 위한 SQL

database server 접속 -> Database(schema) 사용 -> 연관된 table을 다루기 위한 SQL

  • SQL
    S: Structured (구조화됨 )
    Q: Query ( database에 요청, 질의 )
    L: Language ( 공통의 약속 )

  • SQL의 특징
    1) 쉽다.
    2) 중요함. 관계형 데이터베이스를 모두 다룰 수 있는 표준화된 언어

  • table 용어 정리
    image
    - x축 : row , record, 행
    - y축 : column, 열


Table 생성

  • 1) column의 이름 생성, 순서
  • 2) row 생성
    image


  • Cheat sheet를 보고 table을 작성해보자.


  • 아래 표를 table로 생성해보자.
    image
     
  • sql의 칼럼은 , 엑셀과 다르게, 컬럼의 데이터형을 가지고 있다. 그 결과 데이터형이 맞지 않으면 입력을 거부할 수 있다.
    - https://www.techonthenet.com/mysql/datatypes.php
    또한 길이에 대한 규제( VARCHAR(size) )도 가능하다.
     
  • id 칼럼은, 식별컬럼으로서, 보통 11자리수 까지 반영하며, 빈칸이어선 안되며(NOT NULL), 자동적으로 1씩 증가하도록 설정해야한다(AUTO_INCREMENT)
  • title 칼럼은, 제목은 길지 않아도 되며(255개 문자를 허용하는 VARCHAR), 문자열의 길이를 규제할 수 있다(100), 빈칸이어선 안된다.
  • description(본문) 칼럼은, 길어야 하므로(65,000 문자를 허용하는 TEXT), 내용이 없는 것도 허용한다(NULL)
  • create(생성시간) 칼럼은, 날짜(data) 시간(time)을 모두 허용하는 (DATETIME), 빈칸이어선 안된다(NOT NULL)
  • author(저자) 칼럼, 문자인데 30글자 안으로 자르면 될 것 같다(VARCHAR(30). 익명으로 쓸 수 있으니 빈칸 허용(NULL)
  • profile(프로필)칼럼은, 길 필요없으니 VARCHAR 100글자 정도로 허용해주고, 자기소개없을 수 있으니 빈칸 허용(NULL)

  • PRIMARY KEY는 2가지 측면이 있다. 1) 성능 2) 중복방지 기능을 가지므로, 식별 칼럼을 지정해준다.

  • mysql> CREATE TABLE topic(
         -> id INT(11) NOT NULL AUTO_INCREMENT,
         -> title VARCHAR(100) NOT NULL,
         -> description TEXT NULL,
         -> created DATETIME NOT NULL,
         -> author VARCHAR(30) NULL,
         -> profile VARCHAR(100) NULL,
         -> PRIMARY KEY(id)
         -> );
    Query OK, 0 rows affected (0.04 sec)
    image


    비밀번호 변경

    *비밀번호 변경 오류가 뜨면, 변경하자.
    SET PASSWORD = PASSWORD('asdfasdf');

+ Recent posts