● 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;
![](https://blog.kakaocdn.net/dn/chUrXk/btrCLj80HYT/K26u86cMpU4MuvjtPKUBTk/img.png)
3. column 추가 후 조회
alter table guest add column(birth date);
select * from guest;
![](https://blog.kakaocdn.net/dn/tU9mP/btrCLAiRx0Z/GvpMZdldUJjmGIR75mjEqk/img.png)
4. 데이터 삽입 후 조회
insert into guest(userId, userPw, userAge, birth)
values('hgd1234', '1234', 20, '2002-12-04');
select * from guest;
![](https://blog.kakaocdn.net/dn/erbHdr/btrCIl1ZORl/rLTKJwaL2xfwPHpsd8bJh0/img.png)
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;
![](https://blog.kakaocdn.net/dn/nYjjK/btrCIGLx3KF/9nyCs8figayKO0Zeb6Uu7K/img.png)
7. 데이터 조회(암호화된 비밀번호를 암호화 해제하여 조회)
select userNum, userId, aes_decrypt(unhex(userPw), 'abc') from guest;
![](https://blog.kakaocdn.net/dn/UXiKR/btrCLk09wAS/zulH8NqtqHtjUJUl4wPkN1/img.png)
8. 현재 시퀀스 가져오기
select `AUTO_INCREMENT` from information_schema.TABLES
where TABLE_SCHEMA = 'test' and TABLE_NAME = 'guest';
9. 문자열 합치기
select concat(userId, ', ', userAge, '살') info from guest;
![](https://blog.kakaocdn.net/dn/c7ntJU/btrCIAYqVJQ/n7Tdq1958XtyWGxm3zKLOK/img.png)
10. 현재 날짜
select now() from dual;
![](https://blog.kakaocdn.net/dn/bKQbxr/btrCHBKzmbF/GMgDIIKFLpGIczvTylVxnK/img.png)
11. 날짜를 string으로 변경
select date_format(now(), '%Y년 %m월 %d일 %H:%i:%s') from dual;
![](https://blog.kakaocdn.net/dn/Bk6Ay/btrCMcvfZDI/BpCGkVo4kOp4nBwtawQ0T1/img.png)
12. NULL일 경우 원하는 값으로 대체
update guest
set birth = null;
select userId, userPw, userAge, ifnull(birth, '미등록') birth from guest;
![](https://blog.kakaocdn.net/dn/kEoJu/btrCIUCmkSe/sbzUUBrTf5U8EcTR8RImt0/img.png)
실습(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 |