데이터베이스 설치
- 윈도우 방화벽 비활성화
- 백신프로그램 비활성화
데이터베이스
- DBMS (program)
- 24시간 켜져있음 DB를 관리함
- 이것 관리하는 사람 DB Admin
- DB오라클 자격증 : OCA,OCD,OCM
- DB
- 사용이유
- DB화 ERP : 삽입, 수정, 삭제
- extended ERP : 선택
- CRM (customer relationship management) 고객관리
- →BIGDATA로 발전
- SCM (supply chain management) 물류관리
- SEM (strategic enterprise management)
- Client
- DBMS에 명령을함
- SQL (Structured Query Language)
- ANSI (미국표준협회)에서 SQL문의 표준을 정함 92년도/99년도
- +a : 각 DBprogram 고유의 기능이 추가됨
- PLSQL : SQL짜는 프로그램
데이터베이스 서버
- DB2 (IBM제조) : 대형 -처리용량, 데이터처리용량
- MSSQL (MS) : 중대형
- MySQL (Oracle) : 중형 (0-실무사용 추천)
- MariaDB (MariaDB): 중형
- SQLite (SQLite) : 경량형
- Oracle (Oracle) : 중대형 (0-실무사용 추천)
- 서버 : 백그라운드에서 실행되다가 사용자 요청이 생기면 작업을 실행해 주는 프로그램
- 클라이언트: 사용자 요청
- 네트워크 : 서버 ↔ 클라이언트 접속
- CUI방법 : SQLPLUS (2개 방법으로 접속 가능)
- cmd >> sqlplus
- GUI방법 :
- 오라클사 SQL developer (무료)
- Toad (유료) : 실무에서 많이 사용됨, 경량형, 편리한 기능
샘플사용자 Scott
- Scott이 가지고 있는 테이블 : 회사에 관한 정보
- EMP -employee 사원에 대한 정보
- EMPNO 사원 번호
- ENAME 이름
- JOB 직책
- MGR 팀장의 사원번호
- HIREDATE 고용일자
- SAL 급여
- COMM 수당
- DEPTNO 부서번호
- DEPT -department 부서에 대한 정보
- DEPTNO 부서번호
- DNAME 부서이름
- LOC 부서위치
- SALGRADE -salary grade 호봉
- GRADE 호봉
- LOSAL 하한
- HISAL 상한
- BONUS -성과급
- ENAME
- JOB
- SAL
- COMM
SQL
- DML (data manipulation language) 데이터 조작
- SELECT
- INSERT
- UPDATE
- DELETE
- MERGE
- DDL (data definition language) 데이터 공간(테이블) 정의 -객체
- CREATE
- ALTER
- DROP
- RENAME
- TRUNCATE
- DCL (data control language) 사용자 권한
- GRANT
- REVOKE
- TCL (transaction control language) 데이터 적용 결정
- COMMIT
- ROLLBACK
- SAVEPOINT
1
데이터베이스 설치
Scott의 기본 비밀번호 tiger
HR의 기본 비밀번호 hr
2
데이터베이스 설정. 필요없는기능 끄기
3
C:\Users\user>sqlplus
사용자명 입력: scott비밀번호 입력:
SQL> SELECT * from tab;
SQL> describe emp;
--SQLPLUS의 자체 함수
SQL> select * from emp;
SQL> select empno, ename from emp;
*dual은 가상의 테이블 - 간단한 산술 계산가능SQL> select 100*100 from dual;
SQL> select 10/100 from dual;
SQL> describe emp; //넘버유형은 계산을 할 수있음
SQL> select sal, sal*12 from emp;
4. alias 컬럼에 별칭을 주는것
SQL> select empno as 사번, ename as 이름, sal as 급여 from emp;
SQL> select empno 사번, ename 이름, sal 급여 from emp;
SQL> select empno "사 번", ename "이 름", sal "급 여" from emp;
SQL> select sal*12, sal*12 "사원 연봉" from emp;
5. 문자열 연결
SQL> select 'Hello' || 'World' from dual;
SQL> select ename || job from emp;
SQL> select ename || '의 직급은' || job || '이다' as "사원별 직급" from emp;
SQL> select ename || ' 사원의 부서는 ' || deptno || '이고 연봉은 ' ||sal*12 ||'이다' as 예제 from emp;
6. 중복의 제거
SQL> select distinct job from emp;
SQL> select distinct deptno, job from emp; //묶어서 쓸 수 있음
7
select 컬럼절
from 테이블명
where 검색구문 (행선택)
- where if
SQL> select * from emp where deptno=30;
SQL> select empno, ename, sal from emp where deptno=30;
*데이터는 대소문자를 구분함
SQL> select * from emp where ename='king';
SQL> select * from emp where ename='KING';
*날짜검색가능
SQL> select * from emp where hiredate='81/11/17';
*논리연산자
SQL> select empno, ename, job, sal from emp where job='SALESMAN' and sal>=1500;
SQL> select empno, ename, job, sal from emp where job='SALESMAN' or sal>=1500;
SQL> select empno, ename, job, sal from emp where sal<=2000 and sal>=1000;
*between
SQL> select empno, ename, job, sal from emp where sal between 1000 and 2000;
SQL> select empno, ename, job, sal from emp where job='SALESMAN' or job='ANALYST' or job='MANAGER';
*in ( )
SQL> select empno, ename, job, sal from emp where job in ('SALESMAN','ANALYST','MANAGER');
*문자열 부분검색 LIKE (% 0글자 이상, _ 1글자)
SQL> select empno, ename, job from emp where ename like 'A%';
SQL> select empno, ename, job from emp where ename like '%S';
SQL> select empno, ename, job from emp where ename like '%ME%';
SQL> select empno, ename, job from emp where ename like '_L%';
//2번째 L로시작하는 글자
SQL> select empno, ename, job from emp where ename like '____';
//이름이 4글자
*특수문자 escape
SQL> select empno, ename, job from emp where ename like '%\_%' escape '\';
*null 검색
SQL> select sal, comm from emp where comm is null;
8. 정렬
*디폴트 오름차순 ASC
SQL> select empno, ename, hiredate from emp order by ename;
내림차순 DESC
SQL> select empno, ename, hiredate from emp order by ename desc;
*날짜로 정렬가능
SQL> select empno, ename, hiredate from emp order by hiredate desc
*계산한 컬럼으로도 정렬됨
SQL> select empno, ename, sal * 12 annual from emp order by annual;
SQL> select empno, ename, sal * 12 annual from emp order by 3;
*2차정렬
SQL> select empno, ename, deptno, sal * 12 annual from emp order by deptno, annual;
9. 단일행 함수
대문자 UPPER, 소문자 LOWER, 두문자 INITCAP
SQL> select lower('HELLO'), upper('hello'), initcap('hello') from dual;
SQL> select ename, lower(ename) from emp;
SQL> select empno, ename, sal from emp where ename='KING';
SQL> select empno, ename, sal from emp where lower(ename)='king';
*문자 연결 --숫자연결도 가능함SQL> select 'Hello' || 'World', concat('Hello','World') from dual;
*문자추출 --숫자추출도 가능함SQL> select substr('Hello World',6,3) from dual;
*첫글자 A인사람 찾기
SQL> select ename, sal from emp where substr(ename,0,1)='A';
SQL> select ename, sal from emp where substr(ename,1,1)='A';
*문자열 길이 --숫자길이도 사용가능함SQL> select ename, length(ename) from emp where deptno=10;
*문자 찾기 (job, 'A', 시작찾기 위치, 몇 번째 것) --숫자찾기도 사용가능 함SQL> select empno, job, instr(job,'A'), instr(job, 'A',1,2) from emp;
*공백추가
SQL> select ename, sal, lpad(sal, 6, '*'), rpad(sal, 6, '*') from emp where deptno=30;
*특정문자 제거 --숫자제거도 가능함SQL> select empno, job, trim(leading 'S' from job) as leading,
2 trim(trailing 'N' from job) as trailing
3 from emp where empno =7844;
*반올림
SQL> select round(45.923, 2), round(45.923, 0), round(45.923, -1) from dual;
*내림
SQL> select trunc(45.923, 2), trunc(45.923), trunc(45.923, -2) from dual;
*나눔나머지
SQL> select mod(100,30) from dual;
*날짜 포멧변경
SQL> select sysdate from dual;
SQL> alter session set nls_date_format='YYYY/MM/DD HH24:MI;SS';
SQL> select sysdate from dual;
SQL> select hiredate from emp where deptno=10;
댓글 없음:
댓글 쓰기