edu day 1
웹 개발자가 되기 위한 공부를 시작하기 위해 DB/SQL먼저 배워보겠다.
alter user scott IDENTIFIED by tiger; -- 계정 정보 수정(scott 계정의 비밀번호를 tiger로 변경)
create user scott IDENTIFIED by tiger; : 계정(스키마) 생성
GRANT connect, resource to scott; : sys계정에서 scott에 접속 권한 부여
scott/tiger 계정 로그인, 데이터 집합 table생성 사용
row == 행 == 레코드 || col == 열**
포트: 전화번호같은 개념
jdk가 포함되어있는 버전을 설치한다면 두 가지를 따로 설치할 필요X
4. Oracle용 gui프로그램: sqldeveloper 사용
-> 데이터베이스, html, css (웹 화면 구현)
-> java - app 작성(자바프로그래밍 기초)
-> jdbc - 자바 + DB연동
-> javascript - Web(front-end)
-> servlet-jsp - Web(back-end) + mini-project 구축
-> spring, spring boot - Web(back-end)
-> vue, react: Web(front-end)(간단하게 배움)
-> Git - 협업, bootstrap + node.js : front-end
table = record * column
oracle에서 사용: sql
모든 db에서 사용: ANSI
---
- 질의어, 검색어, DQL : 검색 시 사용 데이터 변경이 안된다. select (데이터 검색)
- 데이터 조작어 DML: 데이터 변경(조작), insert, delete, update (데이터 입력, 삭제, 수정)
- 데이터 정의어 DDL: 테이블 구조 정의어, create, alter, drop, rename, truncate (객체 생성, 수정, 삭제, 이름변경, 저장공간 삭제)
- 트랜잭션 처리어 TCL : commit, rollback, savepoint
- 데이터 제어어 DCL : 계정생성, 권한부여 명령어, create user, grant....
-> SQL언어는 대소문자 구분이 없다. but 명령어가 아닌 찾고자하는 데이터의 문자는 대소문자 구분이 있다.
select * from [테이블명] -- 테이블에 저장된 모든 데이터를 본다.
select [컬럼명1], [컬럼명2] from [테이블명] -- 테이블에 저장된 지정한 데이터를 본다.
DESC [테이블명]
DESCRIBE [테이블명]
SELECT [DISTINCT] { *, column [alias],...} FROM table; -- 기본
SELECT * From emp where ROWNUM < 10; -- where : 행에 대한 검색조건, 레코드 갯수 제약
SELECT EMPNO 사번, ENAME 성명, SAL 급여 FROM EMP; -- 1. as 사용 안함
SELECT EMPNO AS 사번, ENAME AS 성명, SAL AS 급여 FROM EMP; -- 2. as 사용
SELECT EMPNO AS "사 번", ENAME AS 성명, SAL AS 급여 FROM EMP; -- 3. 주의 사항 : 별칭에 공백문자, 특수문자 사용시 별칭을 큰따옴표 " " 로 묶어준다.
SELECT 245*567 FROM DUAL;
SELECT SYSDATE FROM DUAL; --SYSDATE 중요!!
SELECT SYSDATE+1 FROM DUAL;
java 문자열 : "abc"
오라클 DBMS
select * from emp where ename='SMITH'; --문자, 날짜 ' ' 사용
select * from emp where ename="SMITH"; --문자, 날짜 " " 사용 시 에러
select * from emp where comm=null; -- null, 값없음, 비교, 계산 불가
select * from emp where comm is null; --is null을 이용한 비교
select * from emp where comm is not null; --is not null을 이용한 비교
select ename, comm, comm+100 from emp; -- null은 계산 불가. 100을 더해도 결과가 null
NVL(컬럼명,기본값) : 컬럼에 해당하는 값이 NULL값일 때 기본값으로 변경.
NVL2(컬럼명,A,B) : 삼항연산자와 유사한 기능, NULL일 경우 B의 숫자로, NULL이 아닐 경우 A의 숫자로 변경
SELECT ENAME, COMM, NVL(COMM,0) NVL변환값 FROM EMP; --컬럼값이 NULL값일 때 0으로 바꾼다.
SELECT ENAME, COMM, NVL(COMM,0) NVL변환값, SAL, SAL+COMM FROM EMP; --SAL+COMM은 COMM 컬럼의 값이 NULL값을 더하면 NULL이 나온다.
SELECT ENAME, COMM, NVL(COMM,0) NVL변환값, SAL, SAL+COMM, SAL+NVL(COMM,0) FROM EMP; -- NULL값을 0으로 변환하여 더해준다.
SELECT ENAME, COMM, NVL2(COMM,0,1) NVL변환값 FROM EMP; -- NVL2(COMM, 0, 1)은 NULL값일때 1, NULL값이 아닐 때 0을 출력
SELECT ENAME || JOB "이름 직업" FROM EMP; -- ENAME과 JOB을 합침
SELECT ENAME || '의 직업은 ' || JOB || '입니다.' "이름 직업" FROM EMP;
SELECT DEPTNO || '번 부서의 지역은 ' || LOC ||' 입니다.' "부서 지역" FROM DEPT WHERE DEPTNO = 10; --10번 부서의 지역은 NEW YORK 입니다. => 부서 지역 별칭
--MGR이 NULL인 킹제외한 모든 사원 SELECT
--사원이름, 월급, 커미션(NULL=>0)으로 표시,
--연봉 = (월급*12) + 커미션
SELECT ENAME 사원이름, SAL 월급 , NVL(COMM, 0) 커미션, SAL*12 + NVL(COMM,0) 연봉 FROM EMP WHERE MGR is not null;
Alt + f10 : 계정전환
Ctrl + f7 : 보는법 전환
Ctrl + / : 해당 줄 주석처리