2023. 10. 23. 12:42ㆍDBMS
금일강의내용정리
==========================================================================
1. 데이터베이스 백업
백업(mysqldump) <-> 복원(mysql)
이거시험문제
mysqldump -u아이디 -p 디비전체 > 20231023_grp.dump
mysqldump -u아이디 -p 디비 테이블 > 20231023_grp.dump
mysqldump -uroot -p 디비 > 20231023_grp.dump
mysqldump -uroot -p 디비 테이블 > 20231023_grp.dump
DDL : create, drop, alter
use shopdb;
drop table if exists employees;
create table employees(
emp_id int not null auto_increment,
emp_name varchar(30),
emp_salary int,
primary key(emp_id)
);
INSERT INTO employees VALUES(NULL, '홍길동', 100);
INSERT INTO employees (emp_id, emp_name, emp_salary)VALUES(null, '이영희', 200);
INSERT INTO employees(emp_id)VALUES(null);
* not null은 필수
INSERT INTO employees VALUES(NULL, '부산', 300), (NULL, '서울', 400), (NULL, '광주', 500);
SELECT * FROM employees;
SELECT * FROM employees WHERE emp_name IS null;
SELECT * FROM employees WHERE emp_name IS NOT null;
SELECT * FROM employees WHERE emp_salary >= 300;
집계함수 : 결과가 하나나옴 => COUNT(), MAX(), MIN(), SUM(), AVG(), DISTNCT()
DISTNCT(컬럼명), DISTNCT 컬럼명 : 중복 제거
EX) SELECT COUNT(*) AS '사원 수' FROM employees WHERE emp_salary >= 300;
SELECT SUM(emp_salary) AS '사원 수' FROM employees WHERE emp_salary >= 300;
SELECT MAX(emp_salary) AS '사원 수' FROM employees WHERE emp_salary >= 300;
SELECT MIN(emp_salary) AS '사원 수' FROM employees WHERE emp_salary >= 300;
예제) 번호, 이름, 비번, 성별(M, F), 자기소개, 가입일
- 테이블 생성
CREATE TABLE member(
mem_id int not null auto_increment,
mem_name varchar(10) not null,
mem_pwd varchar(20) not null,
mem_gender char(1) not null,
mem_intro text,
mem_regdate date,
primary key(mem_id)
);
- 컬럼 값 추가
INSERT INTO member VALUES(NULL, '홍길동', '1234', 'M', '자기소개1', now());
INSERT INTO member VALUES(NULL, '홍길동', '5678', 'M', '자기소개2', sysdate());
INSERT INTO member VALUES(NULL, '이영희', '0000', 'F', '자기소개3', curdate());
INSERT INTO member VALUES(NULL, '김부산', '8888', 'M', '자기소개4', '2023-01-01');
INSERT INTO member VALUES(NULL, '김부산', '8888', 'M', '자기소개4', now() + 1);
- 컬럼 전체 출력
SELECT * FROM member;
- 중복제거
SELECT DISTNCT mem_name FROM member;
SELECT DISTNCT(mem_name) FROM member;
예제1) 2023년 01월 01일 ~ 2023년 12월 31일에 입사한 사원의 이름과 날짜를 출력하시오.
SELECT mem_name, mem_regdate FROM member
WHERE mem_regdate >= '2023-01-01' AND mem_regdate <= '2023-12-31';
예제2) 2023년 01월 01일 ~ 2023년 12월 31일에 입사한 사원의 수를 출력하시오.
SELECT COUNT(*) FROM member
WHERE mem_regdate >= '2023-01-01' AND mem_regdate <= '2023-12-31';
예제3) 성별이 남자인 사람의 아이디와 성별을 출력하시오.
SELECT mem_id, mem_gender FROM member
WHERE mem_gender = 'M';
예제4) 성별이 남자인 사람의 수를 출력하되 컬럼명은 회원(남자)로 출력하시오.
SELECT COUNT(*) AS '회원(남자)' FROM member
WHERE mem_gender = 'M';
* 일치 조건 <-> 유사 검색
예제5) 입사일이 2023년 01월 01일 ~ 2023년 12월 31일인 사람의 수를 출력하시오.
SELECT COUNT(*) FROM member
WHERE mem_regdate >= '2023-01-01' AND mem_regdate <= '2023-12-31';
예제6) 입사일이 2023년 01월 01일 ~ 2023년 12월 31일인 사람의 수를 출력하시오.(속도 up)
컬럼명 Between A and B;
SELECT COUNT(*) FROM member
WHERE mem_regdate Between '2023-01-01' AND '2023-12-31';
AND 연산 : 이고, 이면서 - 조건을 모두 만족
OR 연산: 이거나, 또는 - 조건 중 하나만 만족
예제7) 성별이 여자인 사람의 이름과 성별을 출력하시오.
SELECT mem_name, mem_gender FROM member
WHERE mem_gender = 'F';
- OR 연산
성별이 남자이거나 여자인 사람의 이름과 성별을 출력하시오.
SELECT mem_name, mem_gender FROM member
WHERE mem_gender = 'M' OR mem gender = 'M';
- OR 연산 : 컬럼명 IN(값1, 값2 값3)
성별이 남자이거나 여자인 사람의 이름과 성별을 출력하시오.
SELECT mem_name, mem_gender FROM member
WHERE mem_gender in('M', 'F');
유사어 검색 : _, %
_ : 글자 한 글자
% : 글자 수 제한 x
- 컬럼명 LIKE '%검색어%'
- 컬럼명 LIKE '%검색어'
- 컬럼명 LIKE '검색어%'
mem_name, mem_intro
예제1) 이름이 홍으로 시작하는 사람의 모든 정보를 출력하시오.
SELECT * FROM member
WHERE mem_name LIKE '홍%';
예제2) 이름이 홍으로 시작하는 사람의 수를 출력하시오.
SELECT COUNT(*) AS '홍으로 검색된 회원 수' FROM member
WHERE mem_name LIKE '홍%';
예제3) mem_intro 컬럼에 자기소개가 포함되어 있는 회원의 회원번호와 이름, 성별을 출력하시오.
SELECT mem_id, mem_name, mem_gender FROM member
WHERE mem_intro LIKE '%자기소개%';
예제4) mem_intro 컬럼에 자기소개가 포함되어 있는 회원의 회원번호와 이름, 성별을 출력하시오.
(단, 이름의 오름차순으로 정렬하시오.)
- 오름차순
SELECT mem_id, mem_name, mem_gender FROM member
WHERE mem_intro LIKE '%자기소개%'
ORDER BY mem_name ASC;
예제4) mem_intro 컬럼에 자기소개가 포함되어 있는 회원정보를 전부 출력하시오.
(단, 이름의 내림차순으로 출력하되 최근 2개만 출력되도록 하시오.)
SELECT * FROM member
WHERE mem_intro LIKE '%자기소개%'
ORDER BY mem_name DESC
LIMIT 2;
* 조건 + 정렬 + (LIMIT)
여기까지 금일강의내용 정리
==========================================================================
느낀점 :
![](https://blog.kakaocdn.net/dn/Wf3Un/btsy2rbouZM/X5k74N3beWheOBLYgjQoGk/img.jpg)
==========================================================================
오늘의 결론
.
.
.
.
.
.
.
어리석은 자는 멀리서 행복을 찾고, 현명한 자는 자신의 발치에서 행복을 키워간다 -제임스 오펜하임
'DBMS' 카테고리의 다른 글
추씨의DBMS일기7편 (0) | 2023.10.25 |
---|---|
추씨의DBMS일기6편(국비Ver) (0) | 2023.10.25 |
추씨의DBMS일기4편(국비Ver) (0) | 2023.10.20 |
추씨의DBMS일기3편 (0) | 2023.10.19 |
추씨의DBMS일기2편 (0) | 2023.10.16 |