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 |