<SQL 연산자 - 합성(연결)연산자 >
: 문자열과 문자열을 연결
1. 함수를 사용할 때: CONCAT(str1 , str2)
2. 연산자를 사용할 때: str1 || str2
SELECT PLAYER_NAME, HEIGHT || 'cm' "선수 신장"
FROM player;
SELECT PLAYER_NAME, CONCAT(HEIGHT,'cm') "선수 신장"
FROM player;
만약 3개 이상이라면 CONCAT은 안됨
▷ 이런건 안됨, 그래서 이럴땐 '||' 요거 써야함
<SQL 연산자 - BETWEEN >
: 사이에 있는거 불러오기
BETWEEN 170 AND 180 : HEIGHT >=170 and HEIGHT <=180 임
SELECT PLAYER_NAME 선수이름, POSITION 포지션, HEIGHT 키
FROM PLAYER
WHERE HEIGHT BETWEEN 170 AND 180
SELECT PLAYER_NAME 선수이름, POSITION 포지션, HEIGHT 키
FROM PLAYER
WHERE HEIGHT NOT BETWEEN 170 AND 180
NOT을 써서 한다면 아래와 같은 결과
SELECT PLAYER_NAME 선수이름, POSITION 포지션, HEIGHT 키
FROM PLAYER
WHERE HEIGHT<170 OR HEIGHT >180;
이렇게 할 수 있음 : NOT은 AND 연산자를 OR로 바꿔줘야함
<SQL연산자 - IN>
:리스트 안에 있는 것 중에 해당되는 것을 조회하기
SELECT PLAYER_NAME, TEAM_ID
FROM PLAYER
WHERE TEAM_ID = 'K06' OR TEAM_ID = 'KO4'OR TEAM_ID='K10';
팀 ID가 K06이거나 K04거나 K10이면 불러와라
>> 조회 결과값
이거를 간단하게
이렇게 IN을 사용해서 쓸 수 있음
SELECT PLAYER_NAME, TEAM_ID
FROM PLAYER
WHERE TEAM_ID IN ('K06','K04','K10');
NOT IN을 사용한다면
SELECT PLAYER_NAME, TEAM_ID
FROM PLAYER
WHERE TEAM_ID <> 'K06' OR TEAM_ID <> 'K04'OR TEAM_ID <> 'K10';
SELECT PLAYER_NAME, TEAM_ID
FROM PLAYER
WHERE TEAM_ID NOT IN ('K06','K04','K10');
이렇게 아닌 걸로 나옴
아래와 같이 한가지가 아닌 여러가지의 컬럼 값의 IN을 사용할 수 있음
SELECT PLAYER_NAME 선수이름, TEAM_ID, POSITION
FROM PLAYER
WHERE (TEAM_ID, POSITION) IN (('K04','GK'),('K06','MF'));
2개의 결과가 더해져서 나옴, K04의 GK와 K06의 MF이 같이 나옴
<LIKE>
- 문자열 비교연산
- 와일드카드 사용가능
: % 임의의문자N개, _ 임의의문자1개
ex) %a% : a가 포함되면 다 됨 / _a_ : 중간글자가 a가 포함된 거
> 뒤에 _ 언더바 하나니까 뒤에 '김 + 한글자'만 나옴
SELECT PLAYER_NAME FROM PLAYER
WHERE PLAYER_NAME LIKE '%리%'
>
'리'가 포함된 글자는 모두 다 나옴
<ROWNUM>
- 사용자가 아닌 시스템이 관리하는 Pseudo Column
- TOP N개의 레코드 반환
SELECT PLAYER_NAME, ROWNUM
FROM PLAYER;
'ROWNUM'이라는 컬럼이 없지만,
시스템이 저장해놓은 ROW number를 관리하는데 이걸 출력해줌
: 번호를 가져올때, 출력 개수를 지정할 때 활용 가능 (ex 맨 위에서 10개 뽑아라)
: 출력 개수를 지정할때는 부등호를 써서 가져옴 (TOP N개의 레코드 반환)
SELECT PLAYER_NAME, ROWNUM
FROM PLAYER
WHERE ROWNUM < 4;
SELECT PLAYER_NAME, ROWNUM
FROM PLAYER
WHERE ROWNUM <= 3;
위 같이 쿼리문을 작성하면 3번까지만 나오지만
SELECT PLAYER_NAME, ROWNUM
FROM PLAYER
WHERE ROWNUM = 3;
SELECT PLAYER_NAME, ROWNUM
FROM PLAYER
WHERE ROWNUM >= 3;
같다, 같거나 크다는 사용할 수 없음.
하지만
SELECT PLAYER_NAME, ROWNUM
FROM PLAYER
WHERE ROWNUM = 1;
= 1은 된다!!!!!!!!!!
** 만약 등호 써서 하고 싶다면
ALTER TABLE PLAYER ADD (ROW_ID NUMBER);
UPDATE PLAYER SET ROW_ID = ROWNUM;
SELECT PLAYER_NAME FROM PLAYER WHERE ROW_ID = 3;
컬럼을 하나 추가해서 ROWNUM으로 값을 채워준다음에 등호 사용할 수 있음
'데이터베이스 > SQL' 카테고리의 다른 글
SQLD 를 위한 SQL기본문법 정리 4 - DDL, 테이블 생성 (0) | 2024.02.13 |
---|---|
SQLD 를 위한 SQL기본문법 정리 3 (0) | 2024.02.07 |
SQLD 를 위한 SQL기본문법 정리 1 (0) | 2024.02.05 |
SQL 서브쿼리 사용, 데이터 합치기 (0) | 2024.01.25 |
SQL 서브쿼리 사용, 데이터 삭제하기 (0) | 2024.01.23 |