[Web] MySQL의 간단한 동작

준커·2022년 8월 4일
0

Web

목록 보기
3/5
post-thumbnail
post-custom-banner

MySQL

1. 실행

(1)cmd에서 C:/Program Files/MySQL/MySQL Server [설치 버전]/bin 폴더로 이동
혹은 (2)위 경로를 환경변수로 설정

1-1. 실행

$ mysql -h localhost -u root -p
Enter password: [MySQL 설치 시 설정한 비밀번호 입력]
mysql>

1-2. 종료

mysql> exit
Bye

2. 테이블 생성하기

예약어를 소문자로 써도 괜찮지만, 사용자가 만든 이름과 구분하기 위해서 해당 글에서는 대문자로 쓴다.

2-1. 테이블 생성

mysql> CREATE SCHEMA myp DEFAULT CHARACTER SET utf8;
Query Ok, 1 row affected (0.01sec)
mysql> use myp;
Database changed

1) myp라는 데이터베이스를 생성.
2) DEFAULT CHARACTER SET utf8로 한글 사용가능하게 설정.
3) use myp로 root -> myp로 이동

2-2. 테이블 생성

다음은 myp DB에 user 테이블을 생성하는 과정.

mysql> CREATE TABLE myp.user(
	-> id INT NOT NULL AUTO_INCREMENT,
    -> name VARCHAT(20) NOT NULL,
    -> age INT UNSIGNED NOT NULL,
   	-> married TINYINT NOT NULL.
    -> comment TEXT NULL,
    -> created_at DATETIME NOT NULL DEFAULT now(),
    -> PRIMARY KEY(id),
    -> UNIQUE INDEX name_UNIQUE (name ASC))
    -> COMMENT = '사용자 정보'
    -> DEFAULT CHARACTER SET = utf8
    -> ENGINE = InnoDB;
Query OK, 0 row affected (0.09 sec)

0) 가로 = 컬럼, 세로가 로우.

=자료형=
1) INT -> 정수, (FLOAT, DOUBLE도 존재)
2) VARCHAR(자릿수)-> 가변 길이 0~(자릿수). [CHAR(자릿수)도 존재 -> 고정 길이] 남은 자리는 스페이스로 채워짐.
3) TEXT -> 긴 글을 저장할 때 사용 (수백자 이내는 VARCHAR를 씀)
4) TINYINT -> -128~127 정수 저장. 1 or 0을 저장하면 Boolean과 같은 역할
5) DATETIME -> 날짜, 시간 정보. (DATE와 TIME도 존재)

=자료형 뒤 옵션들=
1) NULL, NOT NULL -> 빈칸을 허용할지 말지.
2) AUTO_INCREMENT -> 자동으로 생성될 때마다 값을 증가시킴.
3) UNSIGNED -> 숫자 자료형에 적용 가능. -N~N인 범위를 0~2N으로 변경 (FLOAT과 DOUBLE엔 적용 불가)
4) ZEROFILL -> 숫자의 자리수 고정. ex) INT(4): 1 -> 0001
5) PRIMARY KEY -> 컬럼의 기본키로 설정. 고유한 식별자 역할
6) UNIQUE INDEX -> 해당 값이 고유하게 만듬. PRIMARY KEY엔 자동으로 포함됨.

=테이블 옵션=
1) COMMENT -> 테이블에 대한 설명
2) DEFAULT CHARACTER SET utf8 -> 한글입력.
3) ENGINE -> 여러가지가 있지만 해당 글에선 InnoDB 사용.

2-3. 테이블 검색

mysql> DESC users;

2-4. 테이블 삭제

mysql> DROP TABLE users;

2-5. 현재 DB의 테이블 목록

mysql> SHOW TABLES;

3. CRUD 작업

3-1. Create(생성)

mysql> INSERT INTO myp.users( name age, married, comment ) VALUES ('zero', 24, 0, '자기소개1');

3-2. Read(조회)

모두 조회

mysql> SELECT * FROM myp.users;

조건부 조회

name, married만 출력

mysql> SELECT name, married FROM myp.users;

WHERE과 AND 연산을 이용한 출력

mysql> SELECT name, age FROM myp.users WHERE married = 1 AND age > 30;

WHERE과 OR 연산을 이용한 출력

mysql> SELECT name, age FROM myp.users WHERE married = 1 OR age > 30;

정렬 연산을 이용한 출력 (DESC : 내림차순, ASC : 오름차순)

mysql> SELECT id, name FROM myp.users ORDER BY age DESC;

LIMIT 연산을 이용한 출력 (n개로 출력 제한)

mysql> SELECT id, name FROM myp.users ORDER BY age DESC LIMIT 1;

OFFSET 연산을 이용한 출력 (n개 건너뛴 곳 부터 출력)

mysql> SELECT id, name FROM myp.users ORDER BY age DESC OFFSET 1;

3-3. Update(수정)

mysql> UPDATE myp.users SET comment = '바꿀 내용' WHERE id = 1;

3-4. Delete(삭제)

mysql> DELETE FROM myp.users WHERE id = 1;

출처 : Node.js 교과서 (개정 2판) - 조현영 지음

post-custom-banner

0개의 댓글