반응형

연산자 우선순위

0 ( )
1 산술 연산자
2 연결 연산자
3 비교 연산자
4 IS NULL, LIKE, IN
5 BETWEEN AND
6 NOT
7 AND
8 OR

 

반응형
반응형

리터럴

임의로 지정한 문자열(홑따옴표)을 SELECT절에 기술 시 실제 그 테이블에 존재하는 데이터처럼 조회 가능하다

--EMPLOYEE테이블로부터 사번, 사원명, 급여, 단위(원) 조회하기
SELECT EMP_ID, EMP_NAME, SALARY, '원' 단위
FROM EMPLOYEE;

 

 

DISTINCT

조회할 컬럼에 중복된 값이 있는 경우 한번만 조회한다 (중복제거 효과)

SELECT절에서 단 한번만 사용이 가능하다

DISTINCT 컬럼명
--EMPLOYEE 테이블에서 부서코드들만 조회
SELECT DISTINCT DEPT_CODE
FROM EMPLOYEE;

SELECT DEPT_CODE
FROM EMPLOYEE;

--EMPLOYEE 테이블에서 직급코드들만 조회
SELECT DISTINCT JOB_CODE
FROM EMPLOYEE;

SELECT JOB_CODE
FROM EMPLOYEE;

--DEPT_CODE, JOB_CODE를 묶어서 중복판별
SELECT DISTINCT DEPT_CODE, JOB_CODE
FROM EMPLOYEE;

DEPT_CODE, JOB_CODE를 묶어서 중복판별

위의 결과물은 한 컬럼씩 보면 중복값이 있지만 두 컬럼을 묶어서 보았을때 1개의 조합만 조회되었다

반응형
반응형

SELECT 기본 정의

데이터 조회 또는 검색시 사용한다

SELECT 조회할컬럼명1, 컬럼명2, ... , 컬럼명n FROM 해당테이블명;

CF. RESULT SET : SELECT 구문을 통해 조회된 데이터 결과물. 조회된 행들의 집합

--EMPLOYEE 테이블의 전체 사원들의 사번, 이름, 급여 컬럼 조회
SELECT EMP_ID, EMP_NAME, SALARY
FROM EMPLOYEE;

--EMPLOYEE 테이블 전체 사원의 모든 컬럼 조회
SELECT *
FROM EMPLOYEE;

--EMPLOYEE 테이블의 전체 사원들의 이름, 이메일, 휴대폰번호 조회
SELECT EMP_NAME, EMAIL, PHONE
FROM EMPLOYEE;

컬럼값은 산술연산(+, -, /, *)이 가능하다

--EMPLOYEE 테이블로부터 직원, 월급, 연봉(==월급*12)
SELECT EMP_NAME, SALARY, SALARY*12
FROM EMPLOYEE;

--EMPLOYEE 테이블로부터 직원명, 월급, 보너스, 보너스가 포함된 연봉(==(월급+보너스*월급)*12)
SELECT EMP_NAME, SALARY, BONUS, (SALARY+BONUS*SALARY)*12
FROM EMPLOYEE;
--산술연산 과정에서 NULL값이 존재할 경우 산술연산 결과도 NULL이 된다.

 

컬럼명 별칭 부여

컬럼명 AS 별칭
컬럼명 AS "별칭"
컬럼명 별칭
컬럼명 "별칭

단, AS 유무 관계없이 별칭에 특수문자, 띄어쓰기가 포함될 경우엔 반드시 ""로 묶어서 표기해야 한다

--EMPLOYEE 테이블로부터 직원명, 월급, 연봉(==월급*12)
SELECT EMP_NAME AS 사원명, SALARY AS "급여(월)", SALARY*12 AS "연봉(보너스 미포함)"
FROM EMPLOYEE;

SELECT EMP_NAME 사원명, SALARY "급여(월)", SALARY*12 "연봉(보너스 미포함)"
FROM EMPLOYEE;
반응형

'DB(SQL)' 카테고리의 다른 글

[SQL] 연산자 우선순위  (0) 2022.03.26
[SQL] 리터럴, DISTINCT  (0) 2022.03.26
[SQL] DML구조 및 실행순서  (0) 2022.03.25
[SQL] DDL 계정 생성 및 권한 부여  (0) 2022.03.25
[SQL] ORACLE 설치  (0) 2022.03.25
반응형

DML

SELECT(DQL), INSERT, UPDATE, DELETE

 

DML 구조 및 실행순서

실행순서 구조
  SELECT 조회할 컬럼명 나열 /*/함수식/연산식
  FROM 조회할 테이블명 /가상테이블(DUAL)
  WHERE 조건식 (단, 그룹함수 불가)
  GROUP BY 그룹 기준에 해당하는 컬럼명/함수식
  HAVING 그룹함수식에 대한 조건식
  ORDER BY [정렬기준에 해당하는 컬럼명/별칭/컬럼의 순번]
                     [ASC/DESC] (생략가능)
                     [NULLS FIRST/NULLS LAST] (생략가능)

 

 

반응형

'DB(SQL)' 카테고리의 다른 글

[SQL] 연산자 우선순위  (0) 2022.03.26
[SQL] 리터럴, DISTINCT  (0) 2022.03.26
[SQL] SELECT 기본 정의, 컬럼명 별칭  (0) 2022.03.26
[SQL] DDL 계정 생성 및 권한 부여  (0) 2022.03.25
[SQL] ORACLE 설치  (0) 2022.03.25
반응형

접속할 사용자 생성

비밀저장 편의성을 위해 선택적으로 체크

정보 입력후 테스트 정상 확인 후 접속

 

 

계정 생성 및 권한 부여는 관리자 계정으로 가능하다

DDL 계정 생성

CREATE USER 유저명 IDENTIFIED BY 비밀번호;

 

최소한의 권한 부여

GRANT CONNECT, RESOURCE TO 유저명;

CONNECT : 접속권한

RESOURCE : 객체(생성, 수정, 삭제), 데이터(입력, 수정, 조회, 삭제) 권한

반응형

'DB(SQL)' 카테고리의 다른 글

[SQL] 연산자 우선순위  (0) 2022.03.26
[SQL] 리터럴, DISTINCT  (0) 2022.03.26
[SQL] SELECT 기본 정의, 컬럼명 별칭  (0) 2022.03.26
[SQL] DML구조 및 실행순서  (0) 2022.03.25
[SQL] ORACLE 설치  (0) 2022.03.25
반응형

교육용 다운로드 링크

https://www.oracle.com/database/technologies/xe-prior-release-downloads.html

Enter PW, Confirm PW : oracle

 

설치 후 아래와 같이 cmd 입력

Enter password: oracle (입력해도 표기안되므로 그냥 입력하고 엔터)

 

SQL디벨로퍼

사이트에서 다운

JDK 설치 되어있는 경우 Windows 32-bit/64-bit 버전으로 다운받으면 된다

 

 

반응형

'DB(SQL)' 카테고리의 다른 글

[SQL] 연산자 우선순위  (0) 2022.03.26
[SQL] 리터럴, DISTINCT  (0) 2022.03.26
[SQL] SELECT 기본 정의, 컬럼명 별칭  (0) 2022.03.26
[SQL] DML구조 및 실행순서  (0) 2022.03.25
[SQL] DDL 계정 생성 및 권한 부여  (0) 2022.03.25
반응형

기본 개념

- 객체

현실세계에 독립적으로 존재하는 모든 것이다.

 

- 클래스

구현하고자 하는 객체를 만들기 위해 클래스가 필요하다.

여기서 클래스란 각 객체들의 속성(정보, 기능) 등을 담아낸 틀이다.

클래스는 1단계로 추상화 과정을 거친 후 2단계 캡슐화 해준다.

 

추상화 과정

1. 내가 구현하고자 하는 프로그램에서 필요한 객체들을 생각

   예) 학생관리 프로그램 -> "학생"이라는 객체 필요. ex)아이유, 송강, 박민영, ...

2. 그 객체들이 가지고 있는 공통적인 속성, 기능들을 모두 추출

   예) 나이, 이름, 성별, 키, 성적, 학년, 학번, ...

3. 추출한 속성들을 내가 구현할 프로그램에 기준에 맞춰 불필요한 속성을 제거

   예) 발사이즈, 자가용유무, 자가유무, 형제자매, ...

4. 최종적으로 추려진 속성들을 가지고 클래스라는 틀을 만듬

   어떤 자료형으로 어떤 속성을 만들 것인가

 

클래스 구조

public class 클래스이름 {
   //필드부

   //생성자부

   //메소드부
}

 

필드부

- 형태

접근제한자 자료형 필드 이름;

 

- 접근제한자

해당 필드에 접근할 수 있는 범위 제한

클래스 안에서 필드 선언 시 반드시 작성

public > protected > default > private

 

/*Value Object*/

public class Student {	
	public String name;
	public int age;
	public char gender;
}
/*Run*/

public class Run {

	public static void main(String[] args) {
    	//Student 클래스 생성
		//클래스 타입
    	Student hb = new Student(); //Student클래스 틀로 학생 객체를 생성한것
		
		//Student 클래스에 있는 속성으로 직접 값을 대입하자
		hb.name = "김일등";
		hb.age = 20;
		hb.gender = '여';
		
		Student sh = new Student()
		sh.name = "최이등";
		sh.age = 28;
		sh.gender = '남';
		
		Student me = new Student();
		me.name = "이삼등";
		me.age = 23;
		me.gender = '여';
		
		System.out.println(hb.name + "님의 정보");
		System.out.println(hb.name);
		System.out.println(hb.age);
		System.out.println(hb.gender);
		
		System.out.println(sh.name + "님의 정보");
		System.out.println(sh.name);
		System.out.println(sh.age);
		System.out.println(sh.gender);
		
		System.out.println(me.name + "님의 정보");
		System.out.println(me.name);
		System.out.println(me.age);
		System.out.println(me.gender);
	}
}

출력값

김일등님의 정보
김일등
20

최이등님의 정보
최이등
28

이삼등님의 정보
이삼등
23

반응형

+ Recent posts