728x90

apm setup 설치

http://software.naver.com/software/summary.nhn?softwareId=MFS_111815

 

 

root password는 apmsetup (변경가능)

 

 

MySQL monitor 실행 (cmd또는 apm setup모니터에서 실행)

 

1
mysql -u아이디 -p비밀번호
1
mysql -h호스트주소 -p포트번호 -u아이디 -p비밀번호

 

 

C:\Users\PKNU>mysql -uroot -p    // -u는 user명 -p는 password인데 보안상 바로 입력하지 않고 다음줄에서 입력하는 것이 좋다.
Enter password: ****
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 5.1.41-community MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

 

 

SQL문은 세미콜론으로 구분, 키워드는 대소문자 구분이 없다.

 

 

MySQL Workbench 를 통해 실행한 결과 (https://dev.mysql.com/downloads/workbench/

 

 

// 명령어 입력도중 취소하려면 \c 입력 

mysql> select
    -> user()
    -> \c    // ->는 다음 줄을 기다린다는 의미
mysql>    // 새 명령을 받아들일 준비가 되었음

 

 

//  데이터베이스 목록 보기 (show) 

1
SHOW DATABASES;


mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| phpmyadmin         |
+--------------------+
3 rows in set (0.00 sec)

mysql>

 

 

// 데이터베이스 생성 및 선택

생성

1
CREATE DATABASE `데이터베이스명` CHARACTER SET utf8 COLLATE utf8_general_ci;

선택

1
USE `데이터베이스명`


mysql> create database rutel;    // rutel 데이터베이스 생성
Query OK, 1 row affected (0.00 sec)


mysql> use rutel;                    // rutel 데이터베이스 선택
Database changed
mysql>

 


// mysql 시작할 때, 데이터베이스(rutel)를 선택

C:\Windows\System32>mysql -hlocalhost -uroot -p rutel
Enter password: ****
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 5.1.41-community MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.



// show를 통해 rutel 데이터베이스가 존재함을 볼 수 있다.
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| rutel               |
| mysql              |
| phpmyadmin         |
+--------------------+
4 rows in set (0.00 sec)



// table 보기

1
SHOW tables;


mysql> show tables;

Empty set (0.00 sec)


데이터베이스의 설계

DB는 테이블들의 그룹이라고 할 수 있다.


pet table

애완동물 이름(name), 소유주(owner), 종(species), 암수(sex), 출생일(birth, death)


나이 대신 출생일을 속성으로 두는 이유?

: 나이는 계속 변하며, 출생일은 고정. 출생일을 통해 생일 이벤트, 사망일을 통해 수명을 알 수 있다.

데이터 베이스에선 설계단계에서부터 이러한 것들을 고려하여야 한다.


// 테이블 생성 (varchar, char, date는 자료형)

mysql> create table pet (name varchar(20), owner varchar(20),

    -> species varchar(20), sex char(2), birth date, death date);

Query OK, 0 rows affected (0.01 sec)


CREATE TABLE score (    

    학번  tinyint NOT NULL ,

    성명  varchar(4) NOT NULL ,

    국어  tinyint NOT NULL ,

    영어  tinyint NOT NULL ,

    수학  tinyint NOT NULL ,

    총점  tinyint NOT NULL ,

    평균  tinyint NOT NULL ,

    등급  char(2) NOT NULL ,

    PRIMARY KEY (학번)

);



varchar는 가변길이 문자열을 뜻한다.


//  테이블 스키마 열람 (describe또는 desc로 줄여써도 된다)

1
DESC `테이블명`

스키마 : 테이블에 적재될 데이터의 구조와 형식을 정의 하는 것


데이터 타입 목록


Var type은 입력받은 데이터 만큼만 공간을 차지하며 유연하며, 공백도 하나의 문자로 취급한다. ('AA' != 'AA ')

고정 문자는 검색의 성능면에서 유리한 장점이 있다고 하지만 Var type이 크게 성능에 영향을 주는건 아니고 유연하기에 Var type을 주로 사용한다.

 (참고 : http://okky.kr/article/217655)


길이가 절대 바뀔 일이 없는 데이터는 CHAR를 사용할 수도 있겠다. (예 : 주민번호)


enum은 열거형으로, 성별같이 정해진 값을 강제할 수 있다.


name, owner...와 같은 컬럼들을 갖는 테이블을 볼 수 있다.


// 레코드 입력하기(Insertion of records)

mysql> insert into pet

    -> values('Ludwig', 'rutel', 'dog', 'm', '2017-03-07', NULL);

Query OK, 1 row affected (0.00 sec)



// SELECT 질의로 검색하기

select * from pet;




// UPDATE 구문을 통한 데이터 수정

mysql> UPDATE pet

    -> SET species = "cat"    // 종을 cat으로 변경

    -> WHERE owner = "rutel";    // 소유자가 "rutel"인 것을 찾아

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0    // match되는 레코드가 한 건, 변경된 레코드가 1건, 경고(문제) 없음





// 테이블 데이터 제거 (테이블 구조를 제거하는 것이 아니다)

mysql> DELETE FROM pet;

'DB' 카테고리의 다른 글

데이터 베이스 기초  (0) 2017.06.14
SQL injection (SQL 삽입)  (0) 2017.06.01
MySQL 기초 공부  (0) 2017.05.30
SQL Server 2014 설치방법  (0) 2017.03.17
SQLD 관련 자료 & 사이트  (0) 2017.03.05

+ Recent posts