ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • day02_1 - 오라클(alias, 연결 연산자, 오라클에서 '와 "의 차이, distinct, where 조건문 및 연산자)
    KIC/DB 오라클 2021. 6. 23. 02:31
    반응형

    [컬럼 이름 대신 리터럴 문자 사용]

    -> 문자나 숫자를 컬럼 네임이 아니라 컬럼 네임 있는 자리에 내가 원하는 문자열을 넣는 것

    -> ex) select name, position, '반갑습니다' from professor;

    -> '을 문자로 표시하고 싶으면 '''' '''' 이렇게 4개씩 쓰기

    -> "를 문자로 표기하고 싶으면 ' " ' (내용) ' " ' -> "(내용)" 

     

    [ex]

    select name||'-'|| position

    from professor;

     

    select name||'의 키는 '|| height ||'cm, 몸무게는 '|| weight||'kg입니다.' ",몸무게 정보"

    from student;

     

    [alias]

    -> 컬럼명의 별칭, 별명

    -> 오라클은 컬럼을 더하고 빼는 것도 가능한데 그러기 위해서 편의성을 위해 컬럼명에 별칭을 붙여주는 것

    -> 별칭 사이에 블랭크 있으면 안 되고 필요하면 “” 안에 넣어 사용할 것

     

    [alias에서 특수기호 사용하기]

    -> SELECT name 이름, birthday 생년월일, height "(cm)", weight "무게(kg)"

        from student;

    -> (cm) 처럼 특수문자를 alias로 사용하고 싶다면 인용부호(" ") 안에 묶어준다.

     

     

     

    [연결 연산자]

    -> 두개의 컬럼을 연결하는 연산자

    select name || position 교수 from PROFESSOR;

     

    기존 이름 컬럼과 직책 컬럼을 합쳐서 출력

     

     

     

    [Oracle에서 '"의 차이]

    (')홑따옴표: 문자열을 감싸주는 기호

    (")쌍따옴표: 컬럼명 등을 감싸주는 기호

    -> 컬럼명을 쓸 때는 쌍따옴표, 문자열은 홑따옴표

     

    [distinct]

    -> 중복을 제거하여 조회한다.

    -> 많이 쓰면 성능이 좋지 않다.

    -> 한번만 사용 가능

    select distinct deptno from professor;

    기존 중복해서 존재하던 detpno를 중복 제거해서 출력

     

    [where 조건문]

    -> select이 컬럼을 제어하는 구문이라면 whererow를 제어하는 조건문.

    -> 조회하고자 하는 레코드의 조건을 설정

     

    [기본 틀]

    select 조회하고자 하는 컬럼명

    from 테이블 명

    where 조회하고자 하는 레코드의 조건 설정

     

     

    --1.

    select ename, sal, deptno

    from emp

    where deptno = 10;

     

    --2. 

    select ename, sal

    from emp

    where sal>4000;

     

    [where 조건절에서 사용하는 연산자]

     

    --키가 180 이상인 사람 출력

    select name, height from student

    where height >= 180;

     

     

    --between 연산자를 사용해서 student 테이블에 몸무게 60~80인 사람의 이름과 체중 출력

    select name, weight from student

    where weight between 60 and 81;

     

     

    --비트윈 연산자를 아래처럼도 가능

    select name, weight from student

    where weight >= 60 and weight <=80;

     

     

    --IN 연산자를 사용해서 student 테이블에서 101번 학과 학생과 201번 학과 학생들을 모두 출력

    select name deptno1 from student

    where depno1 in(101,102);

     

     

    --like 연산자를 사용하여 student 테이블에서 성이 김 씨인 사람을 조회

    select name from student

    where name like '%%';

     

     

    --%: 글자수 무관, 모든 글자 가능

    --_: 글자수 한글자, 모든 글자 가능

    select name from student

    where name like '_%';

     

     

    is null/is not null

    -> 이 방법은 오라클 방법이고 mysql과는 다르다.

     

    --널 값만 출력하기

    select name, bonus

    from professor

    where bonus is null;

     

    --널 아닌 값만 출력하기

    select name, bonus

    from professor

    where bonus is not null;

     

     

     

    검색조건 두개 이상일 때

    -> and 연산자 사용 (조건 둘 다 충족)

    -- 검색조건 두개

    select name, grade, height

    from student

    where grade =4 and height > 170;

     

    -> or 연산자 사용(조건 둘 중 하나라도 충족)

    --or

    select name, grade, height, weight

    from student

    where grade =1 or weight > 80;

     

    --and and

    student 테이블 중2학년이면서 키가 180cm 보다 크면서 몸무게가 70kg 보다 큰 학생 출력

    select name, grade, height, weight

    from student

    where grade =2and height > 180 and weight > 70;

     

     

    andor 조건이 동시에 나오는 경우 우선순위에 주의할 것

    -> 가로로 해결하자.

    -- 연산자 우선순위는 가로로 해결

    select name, grade, height, weight

    from student

    where grade =2 and (height > 180  or weight > 70);

    300x250

    댓글

Designed by Tistory.