STUDY/DB SQL

STUDY/DB SQL

DBMS별 Schema(스키마), Database 개념 차이점

펌글 출처 : https://sidorl.tistory.com/10 DBMS별 Schema(스키마) 와 Database와 차이점 안녕하세요. 잇킹 시도르입니다. 최근에 회의를 하면서 저를 혼동시킨 용어가 있었습니다. 바로 '스키마!!!!' 원천 시스템의 데이터베이스 분석 미팅을 가지는데, 동료는 스키마라고 표현을 하다 sidorl.tistory.com 오라클 ▶ 오라클에서 스키마는 사용자(USER)가 생성한 모든 오브젝트(테이블, 인덱스, 프로시저 등)를 의미합니다. 사용자와 스키마가 같다고 보는 사람도 있는데, 엄밀히 말해서 다르다고 봐야 되겠죠. 그래서 스키마에 각각의 사용자에게 선택적인 권한을 줍니다. 오라클에서 데이터베이스는 실제 물리적인 데이터베이스를 의미합니다. Mysql/MariaDB ▶데이..

STUDY/DB SQL

[Oracle] SQL Developer 단축키

· 현재 쿼리 실행 ctrl + enter · 선택한 쿼리만 실행 마우스드래그 + ctrl + enter · commit; F11 · rollback; F12 · 자동정렬 ctrl+F7 · 쿼리 히스토리창 F8 · 일반 행 주석 ctrl + / -- select * from table; · 범위 주석 alt + shift + c /* SELECT * FROM TABLES; */ · 대소문자변경 alt + ' · 데이터베이스 접속 (커넥션 선택) alt + F10

STUDY/DB SQL

[Oracle] ORA-00984: 열을 사용할 수 없습니다.

보통 ORA-00984 에러 발생 이유는 아래와 같다. 1. insert 문에서 문자열에 작은따옴표(')를 하지 않은 경우 2. 작은따옴표 대신에 큰 따옴표를 사용한 경우 3. 내장함수 등의 이름이 오타로 잘못된 경우

STUDY/DB SQL

[SQL] NOT NULL ENABLE / NOT NULL DISABLE

NOT NULL ENABLE 의미 : NOT NULL CREATE TABLE FOO (PRIORITY_LEVEL NUMBER DEFAULT 42 NOT NULL ENABLE); -- 아래와 같다 CREATE TABLE FOO (PRIORITY_LEVEL NUMBER DEFAULT 42 NOT NULL); NOT NULL DISABLE 의미 : NULL CREATE TABLE FOO (PRIORITY_LEVEL NUMBER DEFAULT 42 NOT NULL DISABLE); -- 아래와 같다 CREATE TABLE FOO (PRIORITY_LEVEL NUMBER NULL); 출처 :https://stackoverflow.com/questions/20595008/is-there-a-difference-be..

STUDY/DB SQL

[MyBatis] ${} 와 #{} 차이점

${} 와 #{} 차이점 #{} 파라미터가 String형태로 들어와 자동적으로 파라미터 형태가 된다 = 값에 ' '가 자동으로 붙음 예를들어 #{username}의 username의 값이 abc라면 쿼리문에서는 USERNAME = 'abc'의 형태가 된다. PreparedStatement 통해 악의적인 쿼리주입을 예방할 수 있음 보완차원에서 유리 주로 사용자의 입력을 전달할때 사용 Mapper SELECT * FROM MEMBER WHERE ID = #{ID} and PW = #{PW} 매퍼에서 이러한 쿼리를 mysql로 보낸다고 가정하면 Mysql SELECT * FROM MEMBER WHERE ID = ? and PW = ? Mysql은 이런식으로 받아오게되고 컴파일한다 실제 실행시 SELECT * ..

STUDY/DB SQL

[MyBatis] resultType resultMap parameterType parameterMap

resultType resultMap parameterType parameterMap resultType : 비즈니스 로직으로 반환할, 결과값의 자료형 resultMap : 비즈니스 로직으로 반환할, 결과값을 담은 객체 parameterType : 비즈니스 로직으로부터 전달 받은, SQL 구문에 사용될 매개변수의 자료형 parameterMap : 비즈니스 로직으로부터 전달 받은, SQL 구문에 사용될 매개변수를 담은 객체 resultType 하나의 변수를 반환할 때 select name from testTable where 1=1 and use = 'Y' and seq = 52 select count(*) from testTable where 1=1 and use = 'Y' select * from te..

STUDY/DB SQL

[Oracle] 형식 코드가 두 번 나타났습니다

ORA-01810: 형식 코드가 두 번 나타났습니다(format code appears twice) 위와 같은 에러 발생시 해결방법 정리 원인 SELECT TO_DATE('2020-01-01', 'YYYY-MM-DD HH:mm:ss') FROM DUAL; 쿼리에서 month의 MM과 minute의 mm을 구분하지 못하고 동일하게 인식하여 발생하는 에러. 해결 SELECT TO_DATE('2020-01-01', 'YYYY-MM-DD HH:mi:ss') FROM DUAL; minute의 mm을 mi로 변경시켜 month와 구분시켜 줘야 함. 출처 : https://developing-move.tistory.com/22

STUDY/DB SQL

[Oracle] 오라클 날짜 검색 방법 총 정리

SELECT * FROM 테이블명 WHERE REGDATE BETWEEN #{startDate} AND #{endDate}; 조회가 안되서 찾아보니 여기에 문제점이 있다는 것을 확인했다. REGDATE의 자료형은 DATE이다. 자료형을 맞춰주기위해 DATE자료형을 문자열로 바꾸거나, 문자열을 DATE자료형으로 형변환 시켜주어야 한다. DATE자료형[컬럼]을 문자열로 변경하여 검색하는 방법 (권장x) SELECT * FROM 테이블명 WHERE TO_CHAR(REGDATE, 'YYYYMMDD') >= #{startDate} AND TO_CHAR(REGDATE, 'YYYYMMDD'

STUDY/DB SQL

[Oracle] 오라클 함수 생성·수정·삭제하기

인증 페이지에서 고객명을 뽑아내야하는데, 인증 페이지에는VERIFY_AUDIO , USER_VERIFY 테이블만 사용했다. 해당 테이블엔 CUSTOMNAME이라는 고객명 데이터가 있는 컬럼이 없으므로 USER_TRAIN이라는 테이블의 CUSTOMNAME이라는 컬럼에서 고객명을 가져오는 함수를 생성했다. 기존함수가 있으므로 그것을 바꿔서 사용하면 되었는데, 수정은 아래와 같이 create or replace function 을 사용하면 된다. CREATE [OR REPLACE] FUNCTION 함수명 (매개변수) RETURN 데이터타입 IS 주요 변수 선언(지역 번수) BEGIN 실행문; RETURN 값; END; 1.기존함수 조회 1-1) 현재 사용자가 소유한 모든 함수를 확인 -- 현재 사용자가 소유한..

STUDY/DB SQL

[SQL] 문자형(VARCHAR)을 숫자형(NUMBER)로 변환

오라클에서 SEQ 컬럼의 ORDER BY 절 결과가 이상하게 나와 살펴보니 SEQ 컬럼의 데이터타입이 숫자가 아니라 문자(VARCHAR2)였다. 데이터타입을 의심하지않고 계속 ORDER BY절이 안먹히는 것에 꽂혀서 문제를 푸는데 시간이 걸렸다. 항상 아는 것에, 포커싱을 어디에 두는지에 의심하는 버릇을 들여야겠다. TO _NUMBER() 변경 전 OERDER BY SEQ 변경 후 ORDER BY TO_NUMBER(SEQ) 문자컬럼을 숫자크기에 따라 정렬하려면 위와 같이 TO _NUMBER() 함수를 사용해 정렬하면 된다.

STUDY/DB SQL

[SQL] COUNT(), AVG() , SUM() 함수 정리

COUNT(), AVG() , SUM() COUNT() 구문 SELECT COUNT(column_name) FROM table_name WHERE condition; COUNT()함수는 지정된 기준과 일치하는 행 수를 반환합니다. 전체 행 갯수 가져오기 SELECT COUNT(*) FROM 테이블; 컬럼 데이터 갯수 가져오기 SELECT COUNT(컬럼) FROM 테이블; AVG() 구문 SELECT AVG(column_name) FROM table_name WHERE condition; AVG()함수는 숫자 열의 평균 값을 반환합니다. - 컬럼의 데이터 타입이 숫자일 때, 특정 컬럼 값이 NULL 인 값을 제외한 모든 데이터의 합을 리턴 SUM() 구문 SELECT SUM(column_name) FRO..

STUDY/DB SQL

[SQL] UNION, UNIONALL

SQL UNION 연산자 연산자 UNION는 둘 이상의 명령문의 결과 집합을 결합하는 데 사용됩니다 SELECT내의 모든 명령문에는 UNION동일한 수의 열이 있어야 합니다. 열의 데이터 유형도 유사해야 합니다. 모든 명령문의 열도 SELECT동일한 순서여야 합니다. UNION 각 쿼리의 결과 합을 반환하는 합집합 (중복제거) UNION ALL 각 쿼리의 모든 결과를 포함한 합집합 (중복제거 안함) UNION select 컬럼... from 테이블A union select 컬럼... from 테이블B UNION ALL select 컬럼이... from 테이블A union all select 컬럼... from 테이블B

ReCode.B
'STUDY/DB SQL' 카테고리의 글 목록 (4 Page)