본문 바로가기

전체 글307

SQLD 를 위한 SQL기본문법 정리 2 : 문자열과 문자열을 연결 1. 함수를 사용할 때: CONCAT(str1 , str2) 2. 연산자를 사용할 때: str1 || str2 SELECT PLAYER_NAME, HEIGHT || 'cm' "선수 신장" FROM player; SELECT PLAYER_NAME, CONCAT(HEIGHT,'cm') "선수 신장" FROM player; 만약 3개 이상이라면 CONCAT은 안됨 ▷ 이런건 안됨, 그래서 이럴땐 '||' 요거 써야함 : 사이에 있는거 불러오기 BETWEEN 170 AND 180 : HEIGHT >=170 and HEIGHT > 조회 결과값 이거를 간단하게 이렇게 IN을 사용해서 쓸 수 있음 SELECT PLAYER_NAME, TEAM_ID FROM PLAYER WHERE TEAM_I.. 2024. 2. 5.
SQLD 를 위한 SQL기본문법 정리 1 CREATE USER 아이디 IDENTIFIED BY 비밀번호; GRANT CONNECT, DBA, RESOURCE TO 아이디 DROP TABLE 테이블이름 CASCADE CONSTRAINT; describe 테이블이름 desc 테이블이름 전체조회 - SELECT * FROM 테이블이름; 일부조회 - SELECT 원하는컬럼이름 FROM 테이블이름; 중복 데이터 모두 출력 - (이게 default) SELECT ALL 컬럼이름 FROM 테이블 이름; 중복 제거 하고 출력 - DISTINCT는 컷 컬럼 앞에 위치, NULL도 하나의 값으로 간주 SELECT DISTINCT 컬럼이름 FROM 테이블 이름; ▷ TEAM_ID 와 POSITION에 대한 조합에서 중복된 값을 제거하고 나옴 컬럼 리스트들 중에서 .. 2024. 2. 5.
Git-hub 업로드 후 Unable to render code block 일 때 깃허브에 jupyter 파일을 업로드 했는데 위와 같이 Unable to render code block 이라고 나올 때가 있다. 요것은 주피터 노트북 파일을 오픈 할 수 없을 때 발생한다 (파일이 작으면 되는데 큰 거는 주로 안되는 듯) 이럴 때 해결 방법은,,, 해당 git hub 파일의 URL 주소를 https://nbviewer.org/ nbviewer nbviewer A simple way to share Jupyter Notebooks Enter the location of a Jupyter Notebook to have it rendered here: Programming Languages Books Misc nbviewer.org 요기에 올려주면 된다. 물론 깃허브 유저이름이나, repos.. 2024. 2. 1.
SQL 서브쿼리 사용, 데이터 합치기 - MERGE 문의 USING 절에 서브 쿼리 사용 ▼ 부서 테이블에 숫자형으로 SUMSAL 컬럼을 추가하고 ▼ 사원 테이블을 이용, SUMSAL 컬럼의 데이터를 부서 테이블의 부서 번호별 토탈 월급으로 갱신 ▶ deptno 가 일치하는 것이 없으면 update가 되지 않기 때문에, 맨 마지막 deptno= 40 은 sumsal 이 null 값으로 남음 ▷ USING 절에 서브 쿼리를 사용해 출력하는 데이터로 dept 테이블을 merge함 여기서 부서 번호랑 부서별 토탈 월급을 알려줌 ▷ 13. 부서 번호와 사원 테이블의 부서 번호로 조인 조건을 주기 그리고 일치하는지 확인해서 일치하면 업뎃~! 만약 MERGE문으로 안하고 UPDATE 문으로 한다면 2024. 1. 25.
SQL 서브쿼리 사용, 데이터 삭제하기 -Delete 문의 where절에 서브쿼리를 사용 ▼ SCOTT보다 더 많은 월급을 받는 사원들을 삭제해보기 ▶ WHERE 절에 서브 쿼리를 사용해 SCOTT의 월급을 조회한 후 emp의 sal을 비교하여 삭제 ▷ 서브쿼리를 사용하지 않는다면 조회하고 / 삭제하고 2번을 진행해야함 ▼ 월급이 해당 사원이 속한 부서의 평균 월급보다 크면 삭제하기 (넘 슬픈거아닌가,,ㅠ) ▷ 같은 테이블 내에서 이루어질 때는 별칭을 사용해서 구분을 해주고 서브쿼리와 / 전체 쿼리문에서 사용하는 테이블이 다른 것처럼 해주면 될 듯 'm' 테이블의 avg(sal)을 조회한 후 e 테이블의 sal 과 하나씩 비교후 삭제! 2024. 1. 23.
SQL 서브 쿼리 사용해 데이터 수정하기 - 서브 쿼리를 사용해 데이터를 수정하자! ▼ 직업이 SALESMAN인 사원들의 월급을 ALLEN의 월급을 변경해보자 ▷ 12. SET절에 서브 쿼리를 사용해 ALLEN의 월급을 가져와서 13. 직업이 SALESMAN인 사원들의 월급을 11. emp 테이블에 UPDATE 하쟈 ▶ UPDATE 문은 모든 절에서 서브 쿼리를 사용할 수 있음 - UPDATE 절 - SET 절 - WHERE 절 모두 서브 쿼리 사용 가능 ▼ SET절에 한 개의 컬럼이 아닌 여러 개의 컬럼들도 한 꺼번에 갱신할 수 있음 2024. 1. 23.
SQL, Oracle ORA-01400 : NULL을 ~~ 오류 해결 서브 쿼리를 사용해 데이터를 한꺼번에 insert하는 과정에서 생긴 오류,, ORA-01400: NULL을 ("SCOTT"."EMP2"."LOC") 안에 삽입할 수 없습니다 라는 오류메시지가 떴는데, 꽤나 구체적으로 알려줬기 때문에 쉽게 해결할 수 있었다. ▶ ORA-01400 오류는 테이블에 NULLABLE이 NO컬럼이 있기 때문에 해당 컬럼에 값을 넣어줘야한다는 뜻이다. : NULLABLE 인 컬럼에 NULL로 주지말아라! 라는 뜻 PK는 empno로 알고 있는데 왜,,, 라는 의문이 들어 혹시나 싶어 확인해보니 LOC도 NULL값을 주면 안되는 것으로 설정해놨던게 뒤늦게 기억났다..ㅎ 해결방법은 1. NULL도 되는 컬럼으로 수정하거나 2. NULLABLE인 NO인 컬럼에도 값을 주거나. 넵 그래서.. 2024. 1. 19.
SQL 서브 쿼리를 사용해 데이터 입력하기 - 여러 개의 행을 한 번에 테이블에 입력하는 방법 - emp 테이블을 그대로 복제해 emp2라고 새로 만든다 - emp2 테이블에 부서 번호가 10인 사원들의 사원번호, 이름, 월급, 부서 번호, 위를 한 번에 입력하기 ▷ 기본 Insert 문은 한 번에 하나의 행만 입력되지만 서브쿼리를 사용한다면 여러 개의 행을 한 번에 테이블에 입력할 수 있음. ▲ 위 쿼리문은 부서번호 10번인 사원들의 데이터를 emp2에 입력하는 insert 문 * 위처럼 서브쿼리를 이용한다면 다른 테이블의 값들을 한꺼번에 테이블에 insert할 수 있다. 2024. 1. 19.
SQL 데이터 입력, 수정, 삭제 한번에 하기 MERGE - 테이블의 데이터를 입력, 수정, 삭제를 한 번에 수행하는 방법 ▼ 사원 테이블에 부서 위치 컬럼 추가하고, 부서 테이블을 이용해 해당 사원의 부서 위치 값을 갱신하기 & 만약 부서 테이블에는 존재하는데 사원테이블에 없는 부서 번호라면 새롭게 사원tbl에 입력되도록 하기 ▶ MERGE문은 데이터 입력과 수정, 삭제를 한 번에 수행할 수 있게 해줌 ▷ emp 테이블에 loc 컬럼에 d.loc로 값을 갱신할 수 있게 해주는 MERGE문. ▶ MERGE INTO 다음에 MERGE 대상이 되는 타겟 테이블명을 작성 (여기서는 emp) - USING절 다음에는 사용할 소스 테이블명 작성 > 여기서는 DEPT. DEPT 테이블의 데이터로 EMP 테이블을 MERGE함. - 3. 타겟 테이블과 소스 테이블을 조인함... 2024. 1. 16.