본문 바로가기

웹 개발/DBMS

[Web_DBMS_MySQL] 01

MySQL

- 웹 사이트와 다양한 애플리케이션에서 사용되는 DBMS이다.

- 오라클은 관리 비용이 고가이지만 MySQL은 저가형 데이터베이스이다.

- 문법이 간결하고 쉬우며, 메모리 사용량이 현저히 낮아서 부담없이 사용 가능하다.

 

 

 

● MySQL 설치

httpsdev.mysql.comdownloadswindowsinstaller8.0.html

(mysql-installer-community-8.0.28.0.msi, 435.7M) 다운로드

 

 

 

● MySQL 드라이버 다운로드

https://dev.mysql.com/downloads/connector/j/

 

 

 

● MySQL 기초문법

1. 데이터베이스 생성

create database [데이터베이스명]

 

2. 사용할 데이터베이스 선택

use [데이터베이스명]

 

3. CRUD 작성

 

 

 

● MySQL 자료형

1. 정수

- tinyint -128 ~ 127

- smallint -32768 ~ 32767

- mediumint -8388608 ~ 8388607

- int -2147483648 ~ 2147483647

- bigint -92233720036854775808 ~ 9233720036854775807

 

2. 실수

- decimal(m, d) m자리 정수, d자리 소수점으로 표현

 

3. 날짜

- date 1000-01-01 ~ 9999-12-31(3byte)

- time -8385959 ~ 8385959(3byte)

- datetime 1000-01-01 000000 ~ 9999-12-31 235959(8byte)

 

4. 문자

- char(m) 0 ~ 255범위의 고정 길이 문자열

- varchar(m) 0 ~ 65535범위의 가변 길이 문자열

 

 

 

 

실습(MySQL(1))

1. 스키마 생성

create database test;
use test;

 

 

 

2. table 생성 후 조회

create table guest(
	userNum int unsigned auto_increment primary key, /*auto_increment: 자동으로 1씩 증가한다.*/ 
	userId varchar(1000),
	userPw varchar(1000),
	userAge tinyint unsigned /*unsigned: 음수가 없을 때 사용한다.*/
);

select * from guest;

 

결과

 

 

 

3. column 추가 후 조회

alter table guest add column(birth date);

select * from guest;

 

결과

 

 

 

4. 데이터 삽입 후 조회

insert into guest(userId, userPw, userAge, birth)
values('hgd1234', '1234', 20, '2002-12-04');

select * from guest;

 

결과

 

 

 

5. 데이터 삭제

delete from guest where userId = 'hgd1234';

 

 

 

6. 데이터 삽입 후 조회(비밀번호 암호화)

insert into guest(userId, userPw, userAge, birth)
values('hgd1234', hex(aes_encrypt('1234', 'abc')), 20, '2002-12-04');

select * from guest;

 

결과

 

 

 

7. 데이터 조회(암호화된 비밀번호를 암호화 해제하여 조회)

select userNum, userId, aes_decrypt(unhex(userPw), 'abc') from guest;

 

결과

 

 

 

8. 현재 시퀀스 가져오기

select `AUTO_INCREMENT` from information_schema.TABLES
where TABLE_SCHEMA = 'test' and TABLE_NAME = 'guest';

 

 

 

9. 문자열 합치기

select concat(userId, ', ', userAge, '살') info from guest;

 

결과

 

 

 

10. 현재 날짜

select now() from dual;

 

결과

 

 

 

11. 날짜를 string으로 변경

select date_format(now(), '%Y년 %m월 %d일 %H:%i:%s') from dual;

 

결과

 

 

 

12. NULL일 경우 원하는 값으로 대체

update guest
set birth = null;

select userId, userPw, userAge, ifnull(birth, '미등록') birth from guest;

 

결과

 

 

 

 

실습(MySQL(2))

- 문제

/*
 * guest 스키마 생성
 * member 테이블 생성
 * 회원번호(auto_increment, PK), 이름, 생일 컬럼 추가
 * 데이터는 3개 추가한다.
 * */

 

 

 

- 코드

create database guest;
use guest;

create table `member`(
   memberNumber int unsigned auto_increment,
   memberName varchar(1000),
   memberBirth date,
   constraint pk_member primary key(memberNumber)
);

select * from `member`;

insert into `member` (memberName, memberBirth)
values ('김철수', '2000-12-04');

insert into `member` (memberName, memberBirth)
values ('홍길동', '2010-01-20');

insert into `member` (memberName, memberBirth)
values ('이순신', '2020-12-04');

 

 

 

 

'웹 개발 > DBMS' 카테고리의 다른 글

[Web_DBMS] 12  (0) 2022.04.10
[Web_DBMS] 11  (0) 2022.04.09
[Web_DBMS] 10  (0) 2022.04.08
[Web_DBMS] 09  (0) 2022.04.07
[Web_DBMS] 08  (0) 2022.04.06