3. MySQL의 구조 / 접속 / schema 사용 / table 생성 / 비밀번호 변경 / datatype 일부설명
2019. 1. 3. 23:34
MySQL 구조
SQL은 최종적으로는 table가 완성된다.
댓글, 게시판 등등 다양한 table가 완성된다.
연관된 table를 모은 것이 database = schema이다.
연관된 table을 모은 schema를, 모은 것이 database server이다.
MySQL server 접속
- 운영체제 ----------------------------------------------------> 폴더 를 막 다루는 것과 다르게,
MySQL server -- 보안(자체 보안기능), 권한(여러 사용자 등록) --> schema, table을 읽기/쓰기/수정/삭제를 할 수 있다.
즉, MySQL의 효용은 자체적으로 1) 보안 2) 권한을 가지고 있다. - 접속 방법 : 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 용어 정리
- x축 : row , record, 행
- y축 : column, 열
Table 생성
- 1) column의 이름 생성, 순서
- 2) row 생성
- Cheat sheet를 보고 table을 작성해보자.
- 아래 표를 table로 생성해보자.
- 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)
비밀번호 변경
*비밀번호 변경 오류가 뜨면, 변경하자.
SET PASSWORD = PASSWORD('asdfasdf');