2023. 10. 25. 12:49ㆍDBMS
금일강의내용정리
==========================================================================
Heidsql : GUI 환경에서 데이터베이스 관리하는 툴
1. 개발 프로그램(groupware -> grpdb -> 테이블)
(1) View 구성(html, css, js)
(2) form 되어 있는 view -> db생성 -> 테이블 생성
(3) 테이블 확인 후 객체 생성
(4) Spring에서 환경설정 후 작업
ex) CREATE TABLE employee(
emp_id int not null auto_increment,
emp_name varchar(5) not null,
emp_salary int(4) not null,
emp_hire date,
primary key(emp_id)
)auto_increment=100;
테이블 구조 : desc employee;
INSERT INTO employee VALUES
(NULL, '홍길동', 5, now()),
(NULL, '이영희', 100, now()),
(NULL, '김철수', 10, now());
SELECT - WHERE - ORDER BY - LIMIT
ASC : 오름차순, DESC : 내림차순
SELECT * FROM employee ORDER BY emp_id DESC;
* 집계함수는 결과가 1만 출력되므로 ORDER BY, LIMIT 사용 X
COUNT, DISTINCT, SUM, AVG, MAX, MIN
SELECT COUNT(*) AS '사원수' FROM employee;
SELECT SUM(emp_salary) as '급여의 총합' FROM employee;
이름과 급여만을 출력하시오.
단, 이름의 오름차순으로 정렬하시오.
SELECT emp_name, emp_salary FROM employee
ORDER BY emp_name ASC;
회원번호와 이름, 입사일을 출력하시오.
단, 입사일이 2023년 01월 01일 이전에 입사한 사원만 출력하시오.
SELECT emp_id, emp_name, emp_hire FROM employee
WHERE emp_hire >= '2023-01-01';
SELECT COUNT(*) AS '검색된 회원수' FROM employee
WHERE emp_hire >= '2023-01-01';
2023년에 입사한 직원의 수를 구하시오.
AND(컬럼 여러개)
SELECT COUNT(*) AS '2023년에 입사한 회원수' FROM employee
WHERE emp_hire >= '2023-01-01' AND emp_hire <= '2023-12-31';
2023년에 입사한 직원의 이름을 출력하시오.
(단, 이름을 기준으로 내림차순 정렬하시오.)
컬럼명 Between 조건1 AND 조건2;
SELECT emp_name FROM employee
WHERE emp_hire Between '2023-01-01' AND '2023-12-31'
ORDER BY emp_name DESC;
데이터와 데이터를 연결 : concat(데이터1, 데이터2)
연습출력
SELECT concat('010', '1234') as 'tel';
create table member(
tel1 010
tel2 1234
tel3 567
);
SELECT concat(tel1, '-', tel2, '-', tel3) as 'tel';
SELECT concat(emp_id, ' ', emp_name) as info FROM employee;
급여가 천만원 이상인 직원의 사번과 이름을 출력하시오.(단위 백만원)
SELECT emp_id, emp_name FROM employee
WHERE emp_salary >= 10;
사번이 101이고 이름이 홍길동인 사람의 사원정보를 출력하시오.(일치)
SELECT * FROM employee
WHERE emp_id = 101 AND emp_name = '홍길동';
이름에 '철'이 포함되어 있는 사람의 이름을 출력하시오.
(유사 : WHERE 컬럼명 LIKE '%검색어%';)
성이 '김'인 사람이 몇명입니까?
SELECT count(*) FROM employee
WHERE emp_name LIKE '김%';
SELECT * FROM employee;
사원을 아이디의 내림차순으로 정렬하고 최근에 입사한 2명만 출력하시오.
SELECT * FROM employee ORDER BY emp_id DESC LIMIT 2;
=
SELECT * FROM employee ORDER BY emp_id DESC LIMIT 0, 2;
LIMIT 배열시작번호, 개수
사원을 아이디의 내림차순으로 정렬하고 입사일 제일 오래된 회원을 출력하시오.
SELECT * FROM employee ORDER BY emp_id DESC LIMIT 1, 1;
ex) 현대차(3), 기아(2), 쌍용차(1)
SELECT 회사명, 집계함수 FROM car
GROUP BY 회사명;
CREATE TABLE car(
company varchar(20) not null,
carName varchar(20) not null
);
등록된 전체 차종의 수는 10입니다.
SELECT COUNT(*) AS '등록된 전체 차종의 수는' FROM car;
요약된 회사의 차량 개수가 5보다 큰 것만 표시하시오.
Group by 일반컬럼 Having 집계함수;
현대차(개수)
SELECT * FROM car;
SELECT company, count(*) FROM car;
SELECT company, count(*) FROm car GROUP BY company;
SELECT company, count(*) as 'cnt' FROM car
GROUP BY company
HAVING count(*) >= 5
ORDER BY company
Limit 0, 1;
현대차(3), 기아(2), 쌍용차(1)
SELECT company, COUNT(*) as cnt FROM car
GROUP BY company
ORDER BY company ASC;
INSERT INTO car VALUES('현대차', '아반떼');
INSERT INTO car VALUES('현대차', '소나타');
INSERT INTO car VALUES('현대차', '제네시스');
INSERT INTO car VALUES('기아', '모닝');
INSERT INTO car VALUES('기아', 'K3');
INSERT INTO car VALUES('기아', 'K5');
INSERT INTO car VALUES('기아', 'K7');
INSERT INTO car VALUES('기아', 'K9');
INSERT INTO car VALUES('쌍용차', '렉스턴');
INSERT INTO car VALUES('쌍용차', '티블리');
여기까지 금일강의내용 정리
==========================================================================
느낀점 : 이따 저녁수업
==========================================================================
오늘의 결론
.
.
.
.
.
.
.
위대한 정신을 가진 사람들은 생각을 논한다. 평범한 사람들은 사건을 논한다. 마음이 좁은 사람들은 사람들을 논한다. – 엘리너 루즈벨트
'DBMS' 카테고리의 다른 글
추씨의DBMS일기8편(국비Ver) (0) | 2023.10.26 |
---|---|
추씨의DBMS일기7편 (0) | 2023.10.25 |
추씨의DBMS일기5편(국비Ver) (1) | 2023.10.23 |
추씨의DBMS일기4편(국비Ver) (0) | 2023.10.20 |
추씨의DBMS일기3편 (0) | 2023.10.19 |