DB

· DB/Oracle
안녕하세요. 이번 포스팅에서는 oracle 관련 설치를 하지 않고 웹사이트에서 쿼리 연습을 할 수 있는 사이트를 소개해드리려고 합니다. 1. SQL Fiddle(http://sqlfiddle.com/)로 이동 후 표시된 곳을 클릭해 'Oracle 11g R2' 로 변경 2. 좌측 편집기에 테이블과 데이터를 삽입 후 표시된 버튼(Build Schema) 클릭 CREATE TABLE sql_test_a ( ID VARCHAR2(4000 BYTE), NAME VARCHAR2(200 BYTE), GROUP_ID VARCHAR2(200 BYTE), GENDER VARCHAR2(1 BYTE) ); INSERT INTO sql_test_a (ID, NAME, GROUP_ID, GENDER) VALUES ('ID_1'..
· DB/Oracle
안녕하세요 이번 포스팅에서는 아래 예제를 통해 group by와 having 절 사용 방법에 대해 알아보겠습니다. 0. GROUP BY, HAVING 설명 SELECTGROUP BY에서 지정된 컬럼, GROUP BY 별로 집계할 값 FROM테이블 WHERE 조건(집계함수 사용 불가능) GROUP BY 그룹으로 묶을 컬럼 HAVING 묶은 그룹의 조건(집계함수로 조건 설정 가능) Q : WHERE 절과 GROUP BY의 HAVING절의 차이는 무엇일까? A : WHERE 절은 해당 SELECT 쿼리 전체의 조건이고, HAVING 절은 WHERE 조건 이후 그룹화 한 데이터에 조건을 거는 것이다. 추가로 WHERE 절에서는 집계함수를 사용할 수 없으며 HAVING 절에서 사용 가능하다. SELECT 구문의 ..
· DB/Oracle
안녕하세요. 이번 포스팅에서는 게시판 같은 곳의 페이징 처리 시 자주 사용되는 ROWNUM 과 데이터의 정렬 순서를 지정할 때 사용되는 ORDER BY의 사용 유의점에 대해 알아보려고 합니다. ROWNUM : 조회된 순서대로 순번을 매기는 고유 변수입니다. ORDER BY : 데이터 정렬 시 사용되는 기능입니다. 유의점은 ORDER BY로 데이터 정렬이 되기 전에, ROWNUM이 매겨진다는 것입니다. 아래의 예제 쿼리들을 보며 알아보겠습니다. (아래의 쿼리는 서브쿼리를 이용하기 위해 비효율적으로 짠 쿼리입니다.) 1. 예제 테이블 확인 SELECT * FROM CLIENT; 2. FIRST_NAME, LAST_NAME 순서로 데이터를 정렬 한 후에, 3개까지만 조회한다. 2-1) ROWNUM(RNUM)과..
· DB/Oracle
SQL INJECTION을 방지하기 위해 prepareStatement 사용한다. prepareStatement 를 사용할 경우 변수를 ?로 지정해야 한다. 아래 소스를 통해 이해해보자. 위의 소스 처럼 변수를 ?로 치환해야함. 위의 소스는 SQL INJECTION에 노출
· DB/Oracle
Oracle에서 Insert문 or Select문을 칠 때 가끔 이러한 오류가 일어납니다. 이 오류의 원인은 문자열과 날짜타입을 비교 혹은 데이터로 넣으려고 해서 발생하는 오류입니다. 아래의 예를 통해 원인을 파악하고 해결방법을 알아보겠습니다. (SELECT 문도 동일하게 적용됩니다.) 1. 샘플 테이블 CREATE TABLE SAMPLE_TB ( DATE_COLUMN DATE, VARCHAR2_COLUMN VARCHAR2(20) ); 2. DATE 형식의 컬럼에 문자열 데이터를 넣는 경우 -- 오류 발생 : 리터럴이 형식 문자열과 일치하지 않음 -- 원인 : 문자열을 DATE형식의 컬럼에 넣으려고 해서 발생 INSERT INTOSAMPLE_TB(DATE_COLUMN) VALUES('2021-03-03 ..
· DB/Oracle
iBatis 변수 사용 방법 : #변수# or $변수$ myBatis 변수 사용 방법 : #{변수} or ${변수} 변수 사용 시에 #과 $를 사용할 수 있습니다. 그럼 이 두 가지의 차이점을 알아보겠습니다. 1. # 사용 // String param = "orange"; SELECT* FROMFRUIT_TABLE WHEREFRUIT_NAME = #param#; ▼ (쿼리 수행 시) SELECT* FROMFRUIT_TABLE WHEREFRUIT_NAME = ?; 위 처럼 쿼리가 수행되는 경우 ?에 bind 값이 들어가게 된다. 소프트 파싱으로 볼 수 있으며, 쿼리 재사용에 효율적이다. 즉, 자주 바뀌는 값이나 사용자에게 입력받는 경우 적합하다. 2. $ 사용 // String param = "orange..
· DB/Oracle
프로그래밍 언어처럼 조건문을 Oracle에서도 사용 할 수 있습니다. CASE WHEN ~ THEN ~ 구문입니다. Oracle에서 예제와 함께 사용방법을 알아보겠습니다. CASE WHEN [조건1] THEN [리턴값1] WHEN [조건2] THEN [리턴값2] ... ELSE [리턴값]-- ELSE 생략 가능 END 1. 샘플 테이블 생성 및 데이터 삽입 PAY_TYPE 은 현금을 냈는지, 카드를 사용했는지를 나타내는 컬럼 PAY_MONEY 는 얼마를 냈는지를 나타내는 컬럼입니다. CREATE TABLE CASEWHEN_TABLE ( PAY_TYPE VARCHAR2(10), PAY_MONEY NUMBER(10) ); INSERT INTO CASEWHEN_TABLE VALUES ('MONEY', 1000..
· DB/Oracle
Oracle 11g 기준으로 작성된 글입니다. oracle 11g 설치를 다 하신 후에 cmd와 sql developer에서 oracle에 접근해 계정 설정이 가능합니다. 1. cmd에서 계정 설정하기 1) cmd에서 접속하기 sqlplus 로 접속하시면 user-name과 password가 나오는데 user-name은 system, password는 oracle 설치 시 입력하신 비밀번호로 입력해주시면 됩니다. (password 입력할 때, cmd창에서 표시가 안되는게 정상입니다.) sqlplus 2) 관리자권한으로 접속 정상적으로 접속을 하시면, 관리자 권한으로 접속해야합니다. conn/as sysdba 3) 계정 생성 [id] [pw]는 자신이 생각하는 id와 pw로 입력하시면 됩니다. 저는 sam..
멍목
'DB' 카테고리의 글 목록 (4 Page)