데이터베이스 사용기술 모음 (주요한 기술만 정리했음)
오늘은 데이터베이스에서 사용되는 여러기술들을 많이 배웠습니다. 그치만 너무 많아서 정리는 다못하고 그나마 많이쓰이고 어려웠던거 위주로 정리하겠습니다.
DB데이터 자료는 첨부자료에 올려두겠슴

기본적으로 위와같은 표데이터안에서 칼럼들을 위주로 분류를 하기도하고 안에 값들을 위주로 분류를 하기도하는데 그 용어들을 기본적으로 select from 그리고 where로 지정해주는듯합니다.
하나씩 보자면
SELECT : 각 테이블마다 존재하는 칼럼들이 있는데 지정을 해주면 그 지정값으로 분류를 해주고 아니면 전체적으로 불러들임.
SELECT * FROM emp; -- select는 조회할때 사용된다
SELECT empno, ename, job FROM emp; 넘버 이름 일을 emp라는 테이블에서 가져온다는것!
WHERE : 칼럼의 값들을 분류시켜주기위한 조건문이라고 생각하면 된다 where절에 사용되는용어는 밑과 같다

밑에 예시를 들어보면 student라는 책상안에서 반, 학년, 성적 등을 가지고 조건을 걸어 원하는 테이블데이터를 가져오는것을 보여줄 수 있다.
SELECT * FROM student WHERE grade = 2 OR grade = 3;
SELECT * FROM student WHERE grade >= 2 OR grade <= 3;
SELECT * FROM student WHERE grade IN(2,3); -- 2나 3안에 들어가면 조회해달라
SELECT * FROM student WHERE not grade = 4;
이제부터 하나씩 사용된 db용어들을 정리해보자
1. 날짝 형식의 비교연산
SELECT * FROM emp WHERE hiredate >= '1985-01-01';
SELECT * FROM student WHERE birthday >= '1976-01-01' AND birthday < '1977-01-01';
2. a와 b사이의 비교연산
SELECT * FROM student WHERE birthday BETWEEN '1976-01-01' ANDprofessor '1977-01-01';
SELECT * FROM professor WHERE pay BETWEEN 500 AND 599; -- 뒤에값이 포함이 된기 때문에 1을 빼거나 비교연산자로 계산해줘야 한다.
3. where절 말고 orderby 정렬 방법
SELECT * FROM emp ORDER BY sal asc; -- 오름차순이 기본
SELECT * FROM emp ORDER BY sal DESC; -- 내림차순;
SELECT * FROM emp WHERE deptno = 10 ORDER BY sal DESC;
4. 문자열 이어버리기 concat
-- concat : 문자열을 이을때 사용하는 함수
-- SMITH(CLERK)
SELECT CONCAT(ename, '(', job, ')') AS "Name and Job" FROM emp;
-- SMITH's sal is $800
SELECT CONCAT(ename,'''s sal is $', sal) FROM emp;
5. Like 연산자로 한글자라도 포함되있으면 가져오기
-- Like 연산자 : 칼럼의 문자열에 특정 문자열을 포함한 것을 거를 때 사용
-- 이름에 서로 시작하는 학생조회
SELECT * FROM student WHERE NAME LIKE '서%';
첫번째 글자를 찾고싶은경우 서%
두번째 글자를 찾고싶은 경우 % 서 % ( _으로 쓰는경우 : 한글자!)
세번째 글자를 찾고싶은경우 서 %
6. is null? is not null!

이렇게null이 존재하는 경우도 있는데 이조건도 존재한다
-- 컬럼의 갑이 null인지를 비교할 때는 is null 사용(= 사용하지 않는다)
SELECT * FROM professor WHERE bonus IS NULL;
SELECT * FROM professor WHERE bonus IS not NULL;
SELECT * FROM emp WHERE comm IS NOT NULL;
7. INSERT함수
insert의 정의는 이러하다
INSERT("http://naver.com" 처음에 시작할 위치의 숫자, 그 위치로부터 갯수, 대신할 문자)
이런식으로 적용을 하면 다음과 같다
http://naver.com --- > http://kosta.com
SELECT INSERT('http://naver.com', 8, 5, 'kosta');
8. instr, substr
instr 문자의 위치를 숫자로 변환해서 찾아주는 index같은 녀석
substr 문자 추출
-- instr 어디에 있는지 찾아주기 약간 index같은 느낌?
SELECT instr('http://naver.com', 'n');
-- student 테이블의 tel 컬럼에서 )의 위치
SELECT INSTR(tel, ')') FROM student;
-- substr
SELECT SUBSTR('http://naver.com', 8, 5);
-- 문자열에서 naver 문자열추출
9. length와 char_lenght의 차이점!
-- LENGTH 바이트수이다. 글자수 아님 한글로해보셈
SELECT ename, LENGTH(ename) FROM emp;
SELECT NAME, LENGTH(NAME) FROM student;
-- char_length : 글자 수
SELECT ename, CHAR_LENGTH(ename) FROM NAME;
SELECT NAME, CHAR_LENGTH(NAME) FROM student;
결과에서 차이가 난다 특히 영어는 큰차이없지만 한글로 출력이 되는경우에는 한글자당 3바이트로 출력이 되기에
length는 "천승현"이 9로 나오고 char_length는 3이 나온다 .