일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- mpcview
- Android
- oracle database
- 프론트엔드
- oracle
- github
- vscode
- https://www.w3schools.com/
- Linux
- Signature
- 설치
- 스타일테그
- CentOS
- Method
- 시스템에러
- 인텔리제이 #intelliJ #JetBrains
- java
- 오라클 로그
- CSS
- js
- 오라클
- 오라클 데이터베이스
- 엘리멘트
- 오라클데이터베이스
- 자바스크립트
- MalwareZero
- 삼항연산자
- HTML
- JavaScript
- frontend
- Today
- Total
개발
쿼리문 정리 본문
MySQL 접속 후
데이터베이스 목록 조회
show databases;
원하는 데이터베이스 선택
use db명;
선택한 DB에 어떤 테이블이 있는지 조회
show tables;
특정 문자가 들어가는 행 검색
select ename, sal from emp
where ename like '%특정문자%';
특정 문자로 시작하는 행 검색
select ename, sal from emp
where ename like '특정문자%';
특정 문자로 끝나는 행 검색
where ename like '%특정문자';
[ ANSI SQL에서 지원하는 집계함수를 배워본다 ]
총갯수(count)
* as 다음에 가짜컬럼명 ( alias )
select count(*) as 총사원수 from emp;
평균(avg)
select avg(sal) as 급여평균 from emp;
합(sum)
select sum(sal) as 급여합 from emp;
최대값(max)
select max(sal) as 최대급여 from emp;
최소값(min)
select min(sal) as 최소급여 from emp;
최소급여를 받는 사원의 이름, 급여를 출력
* subquery(쿼리문 안에 또 다른 쿼리문을 포함할 수 있는 쿼리문장)
소괄호로 감싸놓아야 한다..왜? 소괄호를 먼저 수행하기 때문..
select ename, sal from emp
where sal=(select min(sal) from emp);
-------------------------------------------------------------
[ 서브쿼리 문제 ]
● ALLEN과 부서가 같은 사원들의 이름, 입사일, 부서번호 출력
select ename, hiredate, deptno from emp
where deptno=(select deptno from emp where ename='ALLEN');
● 이름에 T자가 들어가는 사원들의 급여의 합
select sum(sal) from emp
where ename like '%T%'
●최대급여를 받는 사원의 입사일
select hiredate from emp where sal=(select max(sal) from emp);
● 최대급여를 받는 사원보다 입사일이 늦은 사원의 이름, 입사일 출력하되 (입사일을 기준으로 오름차순으로 정렬)
select ename, hiredate from emp
where hiredate > (
select hiredate from emp where sal=(select max(sal) from emp)
) order by hiredate asc;
[ 모든 DBMS에는 ANSI 함수이외에도 자체적인 함수가 지원되는데, 어쩔수 없이 DBMS제품마다 암기 및 숙지해야함 ]
DB마다 많이 비슷...
●사원의 이름과 이름의 글자수를 출력하시오 (length 함수)
select ename as 사원명, length(ename) as 이름길이 from emp;
●사원의 원래이름과 소문자로 변환한 이름을 출력하시오 (LCASE or LOWER)
select ename, lower(ename) from emp;
●사원의 이름 중 KING이라는 사원의 이름을 'KINGDOM' 으로 출력하시오 (replace 함수 )
형식: replace('조사대상', '어떤문자열?' , '어떻게바꿀건데?')
select replace(ename, 'KING', 'KINGDOM') from emp;
● 사원명 앞에 name: 붙게 이름을 출력하시오 (concat 함수 )
형식 : concat('문자열1', '문자열2', '문자열3'...)
select concat('I am ', ename) from emp;