반응형






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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
select * from tab;
 
 
select * from employees;
 
 
 
select employee_id, last_name 
from employees 
where last_name= 'Smith';
 
 
desc employees; 
 
 
select employee_id, salary 
from employees 
where last_name='Smith';
 
 
 
select employee_id, first_name, salary 
from employees 
where last_name='Smith';
 
 
 
select employee_id as "종업원", salary as "SAL" 
from employees;
 
 
 
select employee_id "ID", salary "SAL" 
from employees;
 
 
 
select employee_id "종업원", salary "연봉" 
from employees 
where last_name='Smith';
 
 
 
select distinct JOB_ID 
from employees;
 
 
 
select first_name, last_name, salary 
from employees 
where salary >= 5000;
 
 
 
select first_name, last_name, hire_date 
from employees 
where hire_date >= '04/01/01';
 
 
 
/* AND */
 
select first_name, last_name, job_id, department_id 
from employees
where department_id = 50 and job_id = 'SH_CLERK';
 
 
 
select first_name, last_name, department_id, manager_id 
from employees
where department_id = 50 and manager_id = 124;
 
 
 
/* OR */
 
select first_name, last_name, department_id, manager_id 
from employees
where department_id = 50 or manager_id = 124;
 
 
 
 
/* NOT */
 
select first_name, last_name, job_id, department_id 
from employees
where not (department_id =50);
 
 
 
select first_name, last_name, job_id, department_id 
from employees
where department_id <>40;
 
 
 
/* salary 4000 ~ 8000*/
select first_name, last_name, salary 
from employees 
where salary >= 4000 and salary <= 8000;
 
 
 
/* BETWEEN */
select first_name, last_name, salary 
from employees 
where salary between 4000 and 8000;
 
 
 
/* salary 4000 ~ 8000 END*/
select first_name, last_name, salary 
from employees 
where salary = 6500 or salary = 7700 or salary = 13000;
 
 
 
select first_name, last_name, salary 
from employees 
where salary in (6500770013000);
 
 
select first_name, last_name 
from employees
where first_name like 'D%';
 
select first_name, last_name from employees
where first_name like '%d';
 
cs


반응형

'프로그래밍 > SQL' 카테고리의 다른 글

[Oracle SQL] 숫자함수  (0) 2017.08.04
[Oracle SQL] 문자 함수  (0) 2017.08.03
[Oracle SQL] 토드 설치  (0) 2017.07.29
[SQL] 기초함수 예제  (0) 2017.07.07
[SQL] 기초함수 1  (0) 2017.07.06
반응형







1. 토드월드 접속

https://www.toadworld.com/ 


2. downloads 접속


3. Toad for Oracle 선택


4. OS에 맞는 것 선택


5. Download


====

1) Equal Join (두 개의 테이블 데이터 row가 동일 할 경우 사용)


select e.ename, d.dname

from emp e, dept d

where e.deptno = d.deptno;




====


select * from dept;

=


select * from emp where deptno=10;

=



2) Non-Equal Join (범위에 대한 Join)


select * from salgrade;

=


select ename, sal from emp where rownum <5;

=


select e.ename, e.sal, s.grade

from emp e, salgrade s

where e.sal between s.losal and s.hisal;


두 개의 테이블 데이터 중 where이하에 있는 e.sal의 데이터 값이 s.losal과 s.hisal의 범위에 알맞은 s.grade를 출력하라는 의미


=====


3) Outer Join (두개의 테이블 row가 같지 않을 경우 사용)


select e.ename, d.deptno, d.dname from emp e, dept d

where e.deptno (+) = d.deptno;


테이블 row가 부족한 부분에 (+)를 붙임


=====


4) Self Join (하나의 테이블 내에서 두 개의 컬럼데이터가 동일한 데이터를 가지고 있을 때 사용)


select empno, ename, job, mgr from emp;

=


select a.ename || '의 상사는 ' || b.ename ||' 이다. ' as 직속상사관계

from emp a, emp b

where a.mgr = b.empno;



===

(연습문제)

select * from emp;

select * from dept;


1. 사원 테이블에서 사원번호, 사원명, 부서번호 출력 ( 5개)

select empno, ename, deptno from emp where rownum < 6;


2.

select empno, ename, deptno from emp order by sal desc;


3.

select empno, ename, comm from emp where job='SALESMAN' and comm is not null;


4.

select ename, sal, hiredate from emp;


5.

select ename, sal, to_char(hiredate,'yyyy-mm-dd') hh from emp;


6.

select empno, ename, deptno from emp where to_char(hiredate,'yyyy') = '1980'


7.

select ename||'('||empno||')' from emp where ename='SMITH'


8.

select e.empno, e.ename, d.dname, e.hiredate from emp e join dept d on e.deptno = d.deptno


9.

select * from emp where deptno = (select deptno from emp where ename='SMITH')


10.

select * from emp where deptno = (select deptno from emp where ename='SMITH') and sal>(select sal from emp where ename='SMITH') 


11.

select ename,deptno,sal from emp where sal = (select max(sal) from emp where deptno = (select deptno from emp where ename='SMITH'))



12.

select b.* from 
    (select rownum rn, a.* from 
        (select ename, sal from emp order by sal desc) a
    ) b
where rn <=5;


13.
select b.* from 
    (select rownum rn, a.* from 
        (select ename, sal from emp order by sal desc) a
    ) b
where 4<rn and rn<11;


14.
select ename from emp where ename like '%S$_%' escape '$';

=======


select ename,sal from emp where rownum < 5;

select ename,sal from emp order by sal desc;

select rownum, ename, sal from emp;

select rownum, ename, sal from emp where rownum <= 5;

select rownum, ename, sal from emp where rownum <5 order by sal desc;

select rownum, ename, sal from emp order by sal desc;

select rownum, ename, sal from emp where rownum >2 ;


select rownum rn, a.* from (select rownum rn, ename, sal from emp) a where rn > 2;


반응형

'프로그래밍 > SQL' 카테고리의 다른 글

[Oracle SQL] 숫자함수  (0) 2017.08.04
[Oracle SQL] 문자 함수  (0) 2017.08.03
[Oracle SQL] Select 문 And,OR, NOT, BETWEEN  (0) 2017.07.29
[SQL] 기초함수 예제  (0) 2017.07.07
[SQL] 기초함수 1  (0) 2017.07.06
반응형





 SQL Study





1. 테이블 생성 : 테이블명 (flower) / 컬럼명 (name, color) / 컬럼타입 (문자열, 문자열)


CREATE TABLE flower (

name varchar(50),

color varchar(30)

);


2. 데이터 입력 : rose, red/ rose, yellow / herb, green


INSERT INTO flower (name,color) VALUES ('rose','red');

INSERT INTO flower (name, color) VALUES ('rose','yellow');

INSERT INTO flower (name,color) VALUES ('herb','green');


3. 데이터 수정 : 두 번째 데이터의 색을 pink로 update
 

UPDATE flower SET color = 'pink' WHERE color='yellow';


4. 데이터 삭제 : 세 번째 데이터를 삭제


DELETE FROM flower WHERE name='herb';

반응형

'프로그래밍 > SQL' 카테고리의 다른 글

[Oracle SQL] 숫자함수  (0) 2017.08.04
[Oracle SQL] 문자 함수  (0) 2017.08.03
[Oracle SQL] Select 문 And,OR, NOT, BETWEEN  (0) 2017.07.29
[Oracle SQL] 토드 설치  (0) 2017.07.29
[SQL] 기초함수 1  (0) 2017.07.06
반응형





 SQL Study



- cmd창에서 초기 접속

c:> Mysql -uroot -papmsetup mysql


- 기초함수 익히기


 round

 반올림 값을 구함

 select round(1.58);



abs

 절대 값을 구함

 select abs(-100);



mod

 나눈 나머지 값을 구함

 select mod(35,10);



 least

 주어진 인수 값 중 가장 작은 값을 구함

 select least(1,2,3);



 greatest

 주어진 인수 값 중 가장 큰 값을 구함

 select greatest(1,2,3);



 floor

 주어진 인수 값 보다 크지 않은 최대 정수

 select floor(10.23);



 length

 내용 : 문자열의 길이를 구한다.

 select length('school');



left

 주어진 인수 값(문자)의 왼쪽에서 특정길이 만큼 보여줌

 select left('my school',2);



 right

 주어진 인수 값(문자)의 오른쪽에서 특정길이 만큼 보여줌

 select right('my school',5);



 substring

 지정 위치에서 지정 길이만큼 보여줌

 select substring('my school',4,6);



 concat

 여러 개의 문자열을 이어줌

 select concat('my','sql');



 password

 일반 문자열을 암호화

 select password('mysql');



 lpad

 지정된 길이의 부족한 공간을 왼쪽으로 채우기

 select lpad('mysql',7,'?');



 rpad

 일반 문자열을 암호화

 select rpad('mysql',7,'?');



 lcase

 영문을 소문자로 바꿈

 select lcase('MYSQL');



 ucase

 영문을 대문자로 바꿈

 select ucase('mysql');


- 중요용어정리 ( DML / DCL )


1. DDL (Data Definition Language)

: 데이터 베이스의 스키마 객체를 생성, 변경, 제거, 자료의 버림, 주석을 수행


(1) CREATE


(2) ALTER


(3) DROP


(4) TRUNCATE


(5) COMMENT


2. DML (Data Manipulation Language)

: 스키마 객체의 데이터를 입력, 수정, 조회, 삭제 등의 작업을 말함


(1) SELECT


(2) INSERT


(3) UPDATE


(4) DELETE


3. DCL (Data Control Language)

: 트랜잭션의 성격을 제어하는 것


(1) SET TRANSACTION


(2) COMMIT


(3) ROLLBACK


(4) SAVEPOINT // 작업 위치를 임시로 저장하여 롤백에 사용


- 데이터 형 (데이터 TYPE)

: 숫자 Type M : 최대 출력사이즈, D: 소숫점 자릿수


(1) TINYINT [(M)][UNSINGED]

: 가장 작은 숫자형, 부호에 있을 때 -128~127, 업을 때 0~255 까지 다룰 수 있다. (1 byte 필요) 


(2) SMALLINT[(M)][UNSINGED]

: 부호가 있을 때 -32768 ~ 32767, 없을 때 0~65535 까지 다룰 수 있다. (2 byte 필요)


(3) MEDIUMINT[(M)][UNSINGED]

: 부호가 있을 때 -8388608~ 8388607, 없을 때 0~16777215까지 다룰 수 있다. (3 byte 필요)


(4) INT[(M)][UNSINGED] / (INTEGER)

: 일반적으로 사용하는 숫자형, 부호가 있을 때 -2147483648 ~ 2147483647 (4 byte 필요)


(5) BIGINT[(M)][UNSINGED]

: 부호가 있을 때 -9223372036854775808 ~ 9223372036854775807 (8 byte 필요)


(6) FLOAT[(M,D)]

: 값의 범위는 최소 +-1.175494351E-38, 최대 +-3.402823466E+38 (4 byte 필요)


(7) DOUBLE[(M,D)]

: 값의 범위는 최소 +-1.7976931348623157E-308 (8 byte 필요)


- 문자 TYPE

(1) CHAR


(2) VARCHAR


(3) TINYBLOB / TINYTEXT (255 byte)


(4) TEXT / BLOB (65535 byte)


(5) MEDIUMTEXT (16777215 byte)


(6) LONGTEXT (429496729 byte)


(7) ENUM


- 날짜 TYPE

(1) DATE

: 1001-01-01 부터 9999-12-31 까지의 값이 들어갈 수 있음

: 저장 시 3byte 필요

: 'YYYY-MM-DD' 포맷


(2) DATETIME

: 날짜와 시간이 같이 들어감 '1001-01-01 00:00:00' 부터 '9999-12-31 23:59:59'까지의 값을 다룸

: 저장 시 8 byte 필요

: 'YYYY-MM-DD HH:MM:SS' 포맷

반응형

'프로그래밍 > SQL' 카테고리의 다른 글

[Oracle SQL] 숫자함수  (0) 2017.08.04
[Oracle SQL] 문자 함수  (0) 2017.08.03
[Oracle SQL] Select 문 And,OR, NOT, BETWEEN  (0) 2017.07.29
[Oracle SQL] 토드 설치  (0) 2017.07.29
[SQL] 기초함수 예제  (0) 2017.07.07

+ Recent posts