오늘의 단축키
ctrl + enter : 실행
-- : 주석
ctrl + shift + N / alt + F10 : 새 페이지 열기
ctrl + shift +D : 한 줄 복사
shift + del : 삭제
:데이터베이스를 운영하고 관리하는 소프트웨어
오라클과 My-sql이 가장 많이 사용됨.
:DBMS에서 자료를 관리 및 처리하기 위해 사용하는 언어
:데이터의 저장소(집합)
Number: 숫자열
ex) NUMBER(2) :10의 자리(두자리수)까지 입력 가능
⠀⠀ NUMBER(3) :100의 자리(세자리수)까지 입력 가능
varchar : 문자열.
'' : 데이터
"" : 칼럼명
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------------------- ------------------ ---------- -------- ---------- ---------- ----------
7369 SMITH CLERK 7902 80/12/17 800 20
7499 ALLEN SALESMAN 7698 81/02/20 1600 300 30
7521 WARD SALESMAN 7698 81/02/22 1250 500 30
7566 JONES MANAGER 7839 81/04/02 2975 20
7654 MARTIN SALESMAN 7698 81/09/28 1250 1400 30
7698 BLAKE MANAGER 7839 81/05/01 2850 30
7782 CLARK MANAGER 7839 81/06/09 2450 10
7839 KING PRESIDENT 81/11/17 5000 10
7844 TURNER SALESMAN 7698 81/09/08 1500 0 30
7900 JAMES CLERK 7698 81/12/03 950 30
7902 FORD ANALYST 7566 81/12/03 3000 20
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------------------- ------------------ ---------- -------- ---------- ---------- ----------
7934 MILLER CLERK 7782 82/01/23 1300 10
이런식으로. 확인 가능( tab의 경우 너무 많은 데이터가 있어서 입력하지 못하고 넘어가겠음)
SQL> select distinct deptno from emp;
DEPTNO
----------
30
20
10
중복 데이터 제외한 경우
여기선 중복 데이터 제외가 안되었는데, 보면 job이라는 항목이 같아도 ename이라는 항목이 동일하지 않기에 제외안됨(입력 값에 따라 인식)
또한 distinct의 위치도 중요함. (안그러면 오류가 나기 때문)
보면 'smith' 라는 데이터를 찾는 경우 (문자, 날짜는 ''안에 입력, 안하면 오류 발생.)
근데 숫자는 굳이 '' 사용 하지 않아도 괜찮음.
또한 찾고자 하는 데이터의 명칭은 대소문자도 고려해서 작성해야함.
(혹시 추후에 헷갈릴까봐 작성함.
select~~ 이건 SELECT~~ 로 작성해도 괜찮음. )
연산 가능함. 연산자의 종류는 아래의 표와 같음
S≤
: 알파벳순서상 S이상인것
% 사용 하는거는 위의 사진 참고
ename. sal, hiredate. 중에서 2번째인 sal기준으로 정렬
만일 처음 지정한 데이터의 값이 동일 할 경우, 다른 데이터를 기준으로 정렬
사진에서 2는 sal을 뜻하고 1은 ename을 뜻하니 ename 기준으로 정렬한다고 보면 됨.
[setting]
먼저 좌측의 + 입력하여 새로 만들기/데이터베이스 접속 선택 입력
이름. 사용자 이름(id), 비밀번호(pw) 입력 후 테스트 클릭.
그러면 상태: 성공이 뜨면 접속 클릭(원본 사진은 카톡에 백업함)
1.사진과 같이 출력하시오
답)
SQL> select ename||'('||job||'), '||ename||''''||job||'''' "NAME AND JOB" from emp;
NAME AND JOB
----------------------------------------------------------------------------------------
SMITH(CLERK), SMITH'CLERK'
ALLEN(SALESMAN), ALLEN'SALESMAN'
WARD(SALESMAN), WARD'SALESMAN'
JONES(MANAGER), JONES'MANAGER'
MARTIN(SALESMAN), MARTIN'SALESMAN'
BLAKE(MANAGER), BLAKE'MANAGER'
CLARK(MANAGER), CLARK'MANAGER'
KING(PRESIDENT), KING'PRESIDENT'
TURNER(SALESMAN), TURNER'SALESMAN'
JAMES(CLERK), JAMES'CLERK'
FORD(ANALYST), FORD'ANALYST'
NAME AND JOB
----------------------------------------------------------------------------------------
MILLER(CLERK), MILLER'CLERK'
12 rows selected.
SQL> select ename||'''s sal is $'|| sal "Name and Sal" from emp;
Name and Sal
--------------------------------------------------------------------------------------------------------------------------
SMITH's sal is $800
ALLEN's sal is $1600
WARD's sal is $1250
JONES's sal is $2975
MARTIN's sal is $1250
BLAKE's sal is $2850
CLARK's sal is $2450
KING's sal is $5000
TURNER's sal is $1500
JAMES's sal is $950
FORD's sal is $3000
Name and Sal
--------------------------------------------------------------------------------------------------------------------------
MILLER's sal is $1300
12 rows selected.
SQL> desc emp;
Name
Null? Type
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------- --------------------------------------------------------------------------------------------------------------------
EMPNO
NOT NULL NUMBER(4)
ENAME
VARCHAR2(10)
JOB
VARCHAR2(9)
MGR
NUMBER(4)
HIREDATE
DATE
SAL
NUMBER(7,2)
COMM
NUMBER(7,2)
DEPTNO
NUMBER(2)
SQL> select * from emp;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------------------- ------------------ ---------- -------- ---------- ---------- ----------
7369 SMITH CLERK 7902 80/12/17 800 20
7499 ALLEN SALESMAN 7698 81/02/20 1600 300 30
7521 WARD SALESMAN 7698 81/02/22 1250 500 30
7566 JONES MANAGER 7839 81/04/02 2975 20
7654 MARTIN SALESMAN 7698 81/09/28 1250 1400 30
7698 BLAKE MANAGER 7839 81/05/01 2850 30
7782 CLARK MANAGER 7839 81/06/09 2450 10
7839 KING PRESIDENT 81/11/17 5000 10
7844 TURNER SALESMAN 7698 81/09/08 1500 0 30
7900 JAMES CLERK 7698 81/12/03 950 30
7902 FORD ANALYST 7566 81/12/03 3000 20
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------------------- ------------------ ---------- -------- ---------- ---------- ----------
7934 MILLER CLERK 7782 82/01/23 1300 10
12 rows selected.
SQL> select empno, ename, job from emp;
EMPNO ENAME JOB
---------- -------------------- ------------------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
7566 JONES MANAGER
7654 MARTIN SALESMAN
7698 BLAKE MANAGER
7782 CLARK MANAGER
7839 KING PRESIDENT
7844 TURNER SALESMAN
7900 JAMES CLERK
7902 FORD ANALYST
EMPNO ENAME JOB
---------- -------------------- ------------------
7934 MILLER CLERK
12 rows selected.
SQL> select distinct deptno from emp;
DEPTNO
----------
30
20
10
SQL> select ename, job, sal,sal*12
2 from emp
3 ;
ENAME JOB SAL SAL*12
-------------------- ------------------ ---------- ----------
SMITH CLERK 800 9600
ALLEN SALESMAN 1600 19200
WARD SALESMAN 1250 15000
JONES MANAGER 2975 35700
MARTIN SALESMAN 1250 15000
BLAKE MANAGER 2850 34200
CLARK MANAGER 2450 29400
KING PRESIDENT 5000 60000
TURNER SALESMAN 1500 18000
JAMES CLERK 950 11400
FORD ANALYST 3000 36000
ENAME JOB SAL SAL*12
-------------------- ------------------ ---------- ----------
MILLER CLERK 1300 15600
12 rows selected.
SQL> select empno "사번", ename"사원명", job"직업", deptno"부서번호" from emp;
사번 사원명 직업 부서번호
---------- -------------------- ------------------ ----------
7369 SMITH CLERK 20
7499 ALLEN SALESMAN 30
7521 WARD SALESMAN 30
7566 JONES MANAGER 20
7654 MARTIN SALESMAN 30
7698 BLAKE MANAGER 30
7782 CLARK MANAGER 10
7839 KING PRESIDENT 10
7844 TURNER SALESMAN 30
7900 JAMES CLERK 30
7902 FORD ANALYST 20
사번 사원명 직업 부서번호
---------- -------------------- ------------------ ----------
7934 MILLER CLERK 10
12 rows selected.
키가 170이상인 학생의 이름, 학년 , 키 출력하되 키가 큰 순으로 출력하시오.
101 학과 1 학생 중 3학년 이상인 학생의 이름, ID, 학년 출력하시오.
select name, grade, heigth from student where height >=165 and height <= 175;
근데 between 을 사용해도 계산 가능
13.소속 교수는 있으나 소속 학생이 없는 학과 번호를 출력하여라.
(학생테이블은 학과 1 기준)